From: <hez...@us...> - 2009-10-11 23:07:32
|
Revision: 10524 http://plplot.svn.sourceforge.net/plplot/?rev=10524&view=rev Author: hezekiahcarty Date: 2009-10-11 23:07:19 +0000 (Sun, 11 Oct 2009) Log Message: ----------- Change pltr1 and pltr2 to be curry-friendly (OCaml) This commit moves the (x, y) coordinates to the end of the parameter list for these two functions. It is now possible to use these functions in curried form with plset_pltr. The examples have been updated, and "mypltr" functions from the examples have been updated to follow this style as well. Modified Paths: -------------- trunk/bindings/ocaml/plplot.mli trunk/bindings/ocaml/plplot_core.idl trunk/bindings/ocaml/plplot_impl.c trunk/examples/ocaml/x09.ml trunk/examples/ocaml/x16.ml trunk/examples/ocaml/x20.ml trunk/examples/ocaml/x22.ml Modified: trunk/bindings/ocaml/plplot.mli =================================================================== --- trunk/bindings/ocaml/plplot.mli 2009-10-11 23:05:49 UTC (rev 10523) +++ trunk/bindings/ocaml/plplot.mli 2009-10-11 23:07:19 UTC (rev 10524) @@ -831,9 +831,9 @@ int array -> int array -> string array -> string -> string -> string -> int = "ml_plstripc_byte" "ml_plstripc" external pltr1 : - float -> float -> float array -> float array -> float * float = "ml_pltr1" + float array -> float array -> float -> float -> float * float = "ml_pltr1" external pltr2 : - float -> float -> float array array -> float array array -> float * float + float array array -> float array array -> float -> float -> float * float = "ml_pltr2" val plset_pltr : (float -> float -> float * float) -> unit val plunset_pltr : unit -> unit Modified: trunk/bindings/ocaml/plplot_core.idl =================================================================== --- trunk/bindings/ocaml/plplot_core.idl 2009-10-11 23:05:49 UTC (rev 10523) +++ trunk/bindings/ocaml/plplot_core.idl 2009-10-11 23:07:19 UTC (rev 10524) @@ -140,10 +140,10 @@ // pltr callback functions, hand-wrapped quote(mlmli, - "external pltr1 : float -> float -> float array -> float array -> float * float \ + "external pltr1 : float array -> float array -> float -> float -> float * float \ = \"ml_pltr1\""); quote(mlmli, - "external pltr2 : float -> float -> float array array -> float array array -> float * float \ + "external pltr2 : float array array -> float array array -> float -> float -> float * float \ = \"ml_pltr2\""); // Setting the translation function for the contouring and plotting functions Modified: trunk/bindings/ocaml/plplot_impl.c =================================================================== --- trunk/bindings/ocaml/plplot_impl.c 2009-10-11 23:05:49 UTC (rev 10523) +++ trunk/bindings/ocaml/plplot_impl.c 2009-10-11 23:07:19 UTC (rev 10524) @@ -623,8 +623,8 @@ pltr0(x, y, tx, ty, NULL); } -value ml_pltr1(value x, value y, value xg, value yg) { - CAMLparam4(x, y, xg, yg); +value ml_pltr1(value xg, value yg, value x, value y) { + CAMLparam4(xg, yg, x, y); CAMLlocal1(tx_ty); tx_ty = caml_alloc(2, 0); double tx; @@ -642,8 +642,8 @@ CAMLreturn(tx_ty); } -value ml_pltr2(value x, value y, value xg, value yg) { - CAMLparam4(x, y, xg, yg); +value ml_pltr2(value xg, value yg, value x, value y) { + CAMLparam4(xg, yg, x, y); CAMLlocal1(tx_ty); tx_ty = caml_alloc(2, 0); double** c_xg; Modified: trunk/examples/ocaml/x09.ml =================================================================== --- trunk/examples/ocaml/x09.ml 2009-10-11 23:05:49 UTC (rev 10523) +++ trunk/examples/ocaml/x09.ml 2009-10-11 23:07:19 UTC (rev 10524) @@ -87,7 +87,7 @@ let lev = Array.init 10 (fun i -> 0.05 +. 0.10 *. float_of_int i) in plcol0 2; - plset_pltr (fun x y -> pltr2 x y xg yg); + plset_pltr (pltr2 xg yg); plcont z 1 rpts 1 thetapts lev; plunset_pltr (); plcol0 1; @@ -211,7 +211,7 @@ plbox "" 0.0 0 "" 0.0 0; plcol0 ncollin; - plset_pltr (fun x y -> pltr2 x y xg yg); + plset_pltr (pltr2 xg yg); if !nlevelneg > 0 then ( (* Negative contours *) pllsty 2; @@ -310,7 +310,7 @@ (* Plot using 1d coordinate transform *) plenv (-1.0) 1.0 (-1.0) 1.0 0 0; plcol0 2; - plset_pltr (fun x y -> pltr1 x y cgrid1_xg cgrid1_yg); + plset_pltr (pltr1 cgrid1_xg cgrid1_yg); plcont z 1 xpts 1 ypts clevel; plstyl mark space; @@ -323,7 +323,7 @@ (* Plot using 2d coordinate transform *) plenv (-1.0) 1.0 (-1.0) 1.0 0 0; plcol0 2; - plset_pltr (fun x y -> pltr2 x y cgrid2_xg cgrid2_yg); + plset_pltr (pltr2 cgrid2_xg cgrid2_yg); plcont z 1 xpts 1 ypts clevel; plstyl mark space; Modified: trunk/examples/ocaml/x16.ml =================================================================== --- trunk/examples/ocaml/x16.ml 2009-10-11 23:05:49 UTC (rev 10523) +++ trunk/examples/ocaml/x16.ml 2009-10-11 23:07:19 UTC (rev 10524) @@ -150,7 +150,7 @@ plpsty 0; - plset_pltr (fun x y -> pltr1 x y xg1 yg1); + plset_pltr (pltr1 xg1 yg1); plshades z (-1.0) 1.0 (-1.0) 1.0 shedge fill_width cont_color cont_width true; plcol0 1; @@ -170,7 +170,7 @@ plpsty 0; - plset_pltr (fun x y -> pltr2 x y xg2 yg2); + plset_pltr (pltr2 xg2 yg2); plshades z (-1.0) 1.0 (-1.0) 1.0 shedge fill_width cont_color cont_width false; Modified: trunk/examples/ocaml/x20.ml =================================================================== --- trunk/examples/ocaml/x20.ml 2009-10-11 23:05:49 UTC (rev 10523) +++ trunk/examples/ocaml/x20.ml 2009-10-11 23:07:19 UTC (rev 10524) @@ -24,7 +24,7 @@ } (* Transformation function *) -let mypltr x y pltr_data = +let mypltr pltr_data x y = let x0 = (pltr_data.xmin +. pltr_data.xmax) *. 0.5 in let y0 = (pltr_data.ymin +. pltr_data.ymax) *. 0.5 in let dy = (pltr_data.ymax -. pltr_data.ymin) *. 0.5 in @@ -224,7 +224,7 @@ (* OCaml supports arbitrary coordinate transform callbacks, so take advantage of that to use mypltr directly and skip the use of pltr2. *) - plset_pltr (fun x y -> mypltr x y stretch); + plset_pltr (mypltr stretch); (* Comment the above line, and uncomment the following section to use pltr2 *) (* let xg = Array.make_matrix (int_of_float width + 1) (int_of_float height + 1) 0.0 in @@ -236,7 +236,7 @@ yg.(i).(j) <- yy; done done; - plset_pltr (fun x y -> pltr2 x y xg yg); + plset_pltr (pltr2 xg yg); *) plimagefr img_f 0.0 width 0.0 height 0.0 0.0 img_min img_max; Modified: trunk/examples/ocaml/x22.ml =================================================================== --- trunk/examples/ocaml/x22.ml 2009-10-11 23:05:49 UTC (rev 10523) +++ trunk/examples/ocaml/x22.ml 2009-10-11 23:07:19 UTC (rev 10524) @@ -74,7 +74,7 @@ plenv xmin xmax ymin ymax 0 0; pllab "(x)" "(y)" "#frPLplot Example 22 - circulation"; plcol0 2; - plset_pltr (fun x y -> pltr2 x y xg yg); + plset_pltr (pltr2 xg yg); plvect u v 0.0; plcol0 1; () @@ -121,7 +121,7 @@ plenv xmin xmax ymin ymax 0 0; pllab "(x)" "(y)" "#frPLplot Example 22 - constriction"; plcol0 2; - plset_pltr (fun x y -> pltr2 x y xg yg); + plset_pltr (pltr2 xg yg); plvect u v (-0.5); plcol0 1; () @@ -211,7 +211,7 @@ in plcol0 3; pllsty 2; - plset_pltr (fun x y -> pltr2 x y xg yg); + plset_pltr (pltr2 xg yg); plcont z 1 nr 1 ntheta clevel; pllsty 1; plcol0 1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |