PLplot  5.9.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
plplot_core_stubs.c
Go to the documentation of this file.
1 /* File generated from plplot_core.idl */
2 
3 #include <stddef.h>
4 #include <string.h>
5 #include <caml/mlvalues.h>
6 #include <caml/memory.h>
7 #include <caml/alloc.h>
8 #include <caml/fail.h>
9 #include <caml/callback.h>
10 #ifdef Custom_tag
11 #include <caml/custom.h>
12 #include <caml/bigarray.h>
13 #endif
14 #include <caml/camlidlruntime.h>
15 
16 
17 #include "plplot_core.h"
18 
20  PL_DIFFUSE,
29  PL_FACETED,
30  PL_MESH,
31 };
32 
34 {
35  int _c2;
36  _c2 = camlidl_transl_table_plplot_core_enum_1[Int_val(_v1)];
37  return _c2;
38 }
39 
41 {
42  value _v2;
43  _v2 = camlidl_find_enum(_c1, camlidl_transl_table_plplot_core_enum_1, 11, "enum plplot3d_style_enum: bad enum plplot3d_style_enum value");
44  return _v2;
45 }
46 
48 {
49  (*_c2) = convert_flag_list(_v1, camlidl_transl_table_plplot_core_enum_1);
50 }
51 
53 {
54 value _v1;
55  _v1 = camlidl_alloc_flag_list((*_c2), camlidl_transl_table_plplot_core_enum_1, 11);
56  return _v1;
57 }
58 
64 };
65 
67 {
68  int _c2;
69  _c2 = camlidl_transl_table_plplot_core_enum_2[Int_val(_v1)];
70  return _c2;
71 }
72 
74 {
75  value _v2;
76  switch(_c1) {
77  case PL_BIN_DEFAULT: _v2 = Val_int(0); break;
78  case PL_BIN_CENTRED: _v2 = Val_int(1); break;
79  case PL_BIN_NOEXPAND: _v2 = Val_int(2); break;
80  case PL_BIN_NOEMPTY: _v2 = Val_int(3); break;
81  default: invalid_argument("enum plplot_bin_enum: bad enum plplot_bin_enum value");
82  }
83  return _v2;
84 }
85 
87 {
88  (*_c2) = convert_flag_list(_v1, camlidl_transl_table_plplot_core_enum_2);
89 }
90 
92 {
93 value _v1;
94  _v1 = camlidl_alloc_flag_list((*_c2), camlidl_transl_table_plplot_core_enum_2, 4);
95  return _v1;
96 }
97 
104 };
105 
107 {
108  int _c2;
109  _c2 = camlidl_transl_table_plplot_core_enum_3[Int_val(_v1)];
110  return _c2;
111 }
112 
114 {
115  value _v2;
116  _v2 = camlidl_find_enum(_c1, camlidl_transl_table_plplot_core_enum_3, 5, "enum plplot_hist_enum: bad enum plplot_hist_enum value");
117  return _v2;
118 }
119 
121 {
122  (*_c2) = convert_flag_list(_v1, camlidl_transl_table_plplot_core_enum_3);
123 }
124 
126 {
127 value _v1;
128  _v1 = camlidl_alloc_flag_list((*_c2), camlidl_transl_table_plplot_core_enum_3, 5);
129  return _v1;
130 }
131 
137 };
138 
140 {
141  int _c2;
142  _c2 = camlidl_transl_table_plplot_core_enum_4[Int_val(_v1)];
143  return _c2;
144 }
145 
147 {
148  value _v2;
149  switch(_c1) {
150  case PL_UNINITIALIZED: _v2 = Val_int(0); break;
151  case PL_INITIALIZED: _v2 = Val_int(1); break;
152  case PL_VIEWPORT_DEFINED: _v2 = Val_int(2); break;
153  case PL_WORLD_COORDINATES_DEFINED: _v2 = Val_int(3); break;
154  default: invalid_argument("enum plplot_run_level_enum: bad enum plplot_run_level_enum value");
155  }
156  return _v2;
157 }
158 
160 {
162 }
163 
165 {
166 value _v1;
168  return _v1;
169 }
170 
180 };
181 
183 {
184  int _c2;
185  _c2 = camlidl_transl_table_plplot_core_enum_5[Int_val(_v1)];
186  return _c2;
187 }
188 
190 {
191  value _v2;
192  _v2 = camlidl_find_enum(_c1, camlidl_transl_table_plplot_core_enum_5, 8, "enum plplot_position_enum: bad enum plplot_position_enum value");
193  return _v2;
194 }
195 
197 {
198  (*_c2) = convert_flag_list(_v1, camlidl_transl_table_plplot_core_enum_5);
199 }
200 
202 {
203 value _v1;
204  _v1 = camlidl_alloc_flag_list((*_c2), camlidl_transl_table_plplot_core_enum_5, 8);
205  return _v1;
206 }
207 
217 };
218 
220 {
221  int _c2;
222  _c2 = camlidl_transl_table_plplot_core_enum_6[Int_val(_v1)];
223  return _c2;
224 }
225 
227 {
228  value _v2;
229  _v2 = camlidl_find_enum(_c1, camlidl_transl_table_plplot_core_enum_6, 8, "enum plplot_legend_enum: bad enum plplot_legend_enum value");
230  return _v2;
231 }
232 
234 {
235  (*_c2) = convert_flag_list(_v1, camlidl_transl_table_plplot_core_enum_6);
236 }
237 
239 {
240 value _v1;
241  _v1 = camlidl_alloc_flag_list((*_c2), camlidl_transl_table_plplot_core_enum_6, 8);
242  return _v1;
243 }
244 
263 };
264 
266 {
267  int _c2;
268  _c2 = camlidl_transl_table_plplot_core_enum_7[Int_val(_v1)];
269  return _c2;
270 }
271 
273 {
274  value _v2;
275  _v2 = camlidl_find_enum(_c1, camlidl_transl_table_plplot_core_enum_7, 17, "enum plplot_colorbar_enum: bad enum plplot_colorbar_enum value");
276  return _v2;
277 }
278 
280 {
281  (*_c2) = convert_flag_list(_v1, camlidl_transl_table_plplot_core_enum_7);
282 }
283 
285 {
286 value _v1;
287  _v1 = camlidl_alloc_flag_list((*_c2), camlidl_transl_table_plplot_core_enum_7, 17);
288  return _v1;
289 }
290 
293  PL_FCI_SANS,
294  PL_FCI_SERIF,
295  PL_FCI_MONO,
298 };
299 
301 {
302  int _c2;
303  _c2 = camlidl_transl_table_plplot_core_enum_8[Int_val(_v1)];
304  return _c2;
305 }
306 
308 {
309  value _v2;
310  _v2 = camlidl_find_enum(_c1, camlidl_transl_table_plplot_core_enum_8, 6, "enum plplot_fci_family_enum: bad enum plplot_fci_family_enum value");
311  return _v2;
312 }
313 
319 };
320 
322 {
323  int _c2;
324  _c2 = camlidl_transl_table_plplot_core_enum_9[Int_val(_v1)];
325  return _c2;
326 }
327 
329 {
330  value _v2;
331  switch(_c1) {
332  case PL_FCI_STYLE_UNCHANGED: _v2 = Val_int(0); break;
333  case PL_FCI_UPRIGHT: _v2 = Val_int(1); break;
334  case PL_FCI_ITALIC: _v2 = Val_int(2); break;
335  case PL_FCI_OBLIQUE: _v2 = Val_int(3); break;
336  default: invalid_argument("enum plplot_fci_style_enum: bad enum plplot_fci_style_enum value");
337  }
338  return _v2;
339 }
340 
344  PL_FCI_BOLD,
345 };
346 
348 {
349  int _c2;
350  _c2 = camlidl_transl_table_plplot_core_enum_10[Int_val(_v1)];
351  return _c2;
352 }
353 
355 {
356  value _v2;
357  switch(_c1) {
358  case PL_FCI_WEIGHT_UNCHANGED: _v2 = Val_int(0); break;
359  case PL_FCI_MEDIUM: _v2 = Val_int(1); break;
360  case PL_FCI_BOLD: _v2 = Val_int(2); break;
361  default: invalid_argument("enum plplot_fci_weight_enum: bad enum plplot_fci_weight_enum value");
362  }
363  return _v2;
364 }
365 
371 };
372 
374 {
375  int _c2;
376  _c2 = camlidl_transl_table_plplot_core_enum_11[Int_val(_v1)];
377  return _c2;
378 }
379 
381 {
382  value _v2;
383  switch(_c1) {
384  case PL_DRAWMODE_UNKNOWN: _v2 = Val_int(0); break;
385  case PL_DRAWMODE_DEFAULT: _v2 = Val_int(1); break;
386  case PL_DRAWMODE_REPLACE: _v2 = Val_int(2); break;
387  case PL_DRAWMODE_XOR: _v2 = Val_int(3); break;
388  default: invalid_argument("enum plplot_draw_mode_enum: bad enum plplot_draw_mode_enum value");
389  }
390  return _v2;
391 }
392 
394 {
395  (*_c2) = Int_val(_v1);
396 }
397 
399 {
400 value _v1;
401  _v1 = Val_int((*_c2));
402  return _v1;
403 }
404 
406  value _v_lexp,
407  value _v_sigdig)
408 {
409  int lexp; /*in*/
410  int sigdig; /*in*/
411  lexp = Int_val(_v_lexp);
412  sigdig = Int_val(_v_sigdig);
413  c_pl_setcontlabelformat(lexp, sigdig);
414  return Val_unit;
415 }
416 
418  value _v_offset,
419  value _v_size,
420  value _v_spacing,
421  value _v_active)
422 {
423  double offset; /*in*/
424  double size; /*in*/
425  double spacing; /*in*/
426  int active; /*in*/
427  offset = Double_val(_v_offset);
428  size = Double_val(_v_size);
429  spacing = Double_val(_v_spacing);
430  active = Int_val(_v_active);
431  c_pl_setcontlabelparam(offset, size, spacing, active);
432  return Val_unit;
433 }
434 
436  value _v_page)
437 {
438  int page; /*in*/
439  page = Int_val(_v_page);
440  c_pladv(page);
441  return Val_unit;
442 }
443 
445  value _v_x,
446  value _v_y,
447  value _v_a,
448  value _v_b,
449  value _v_angle1,
450  value _v_angle2,
451  value _v_rotate,
452  value _v_fill)
453 {
454  double x; /*in*/
455  double y; /*in*/
456  double a; /*in*/
457  double b; /*in*/
458  double angle1; /*in*/
459  double angle2; /*in*/
460  double rotate; /*in*/
461  int fill; /*in*/
462  x = Double_val(_v_x);
463  y = Double_val(_v_y);
464  a = Double_val(_v_a);
465  b = Double_val(_v_b);
466  angle1 = Double_val(_v_angle1);
467  angle2 = Double_val(_v_angle2);
468  rotate = Double_val(_v_rotate);
469  fill = Int_val(_v_fill);
470  c_plarc(x, y, a, b, angle1, angle2, rotate, fill);
471  return Val_unit;
472 }
473 
475 {
476  return camlidl_plplot_core_c_plarc(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7]);
477 }
478 
480  value _v_x0,
481  value _v_y0,
482  value _v_xopt,
483  value _v_xtick,
484  value _v_nxsub,
485  value _v_yopt,
486  value _v_ytick,
487  value _v_nysub)
488 {
489  double x0; /*in*/
490  double y0; /*in*/
491  char const *xopt; /*in*/
492  double xtick; /*in*/
493  int nxsub; /*in*/
494  char const *yopt; /*in*/
495  double ytick; /*in*/
496  int nysub; /*in*/
497  x0 = Double_val(_v_x0);
498  y0 = Double_val(_v_y0);
499  xopt = String_val(_v_xopt);
500  xtick = Double_val(_v_xtick);
501  nxsub = Int_val(_v_nxsub);
502  yopt = String_val(_v_yopt);
503  ytick = Double_val(_v_ytick);
504  nysub = Int_val(_v_nysub);
505  c_plaxes(x0, y0, xopt, xtick, nxsub, yopt, ytick, nysub);
506  return Val_unit;
507 }
508 
510 {
511  return camlidl_plplot_core_c_plaxes(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7]);
512 }
513 
515  value _v_x,
516  value _v_y,
517  value _v_opt)
518 {
519  int nbin; /*in*/
520  double *x; /*in*/
521  double *y; /*in*/
522  plplot_bin_style opt; /*in*/
523  mlsize_t _c1;
524  mlsize_t _c2;
525  mlsize_t _c3;
526  mlsize_t _c4;
527  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
528  camlidl_ctx _ctx = &_ctxs;
529  _c1 = Wosize_val(_v_x) / Double_wosize;
530  x = camlidl_malloc(_c1 * sizeof(double ), _ctx);
531  for (_c2 = 0; _c2 < _c1; _c2++) {
532  x[_c2] = Double_field(_v_x, _c2);
533  }
534  nbin = _c1;
535  _c3 = Wosize_val(_v_y) / Double_wosize;
536  y = camlidl_malloc(_c3 * sizeof(double ), _ctx);
537  for (_c4 = 0; _c4 < _c3; _c4++) {
538  y[_c4] = Double_field(_v_y, _c4);
539  }
540  nbin = _c3;
541  camlidl_ml2c_plplot_core_plplot_bin_style(_v_opt, &opt, _ctx);
542  c_plbin(nbin, x, y, opt);
543  camlidl_free(_ctx);
544  return Val_unit;
545 }
546 
548  value _v_ctime)
549 {
550  int *year; /*out*/
551  int *month; /*out*/
552  int *day; /*out*/
553  int *hour; /*out*/
554  int *min; /*out*/
555  double *sec; /*out*/
556  double ctime; /*in*/
557  int _c1;
558  int _c2;
559  int _c3;
560  int _c4;
561  int _c5;
562  double _c6;
563  value _vresult;
564  value _vres[6] = { 0, 0, 0, 0, 0, 0, };
565 
566  ctime = Double_val(_v_ctime);
567  year = &_c1;
568  month = &_c2;
569  day = &_c3;
570  hour = &_c4;
571  min = &_c5;
572  sec = &_c6;
573  c_plbtime(year, month, day, hour, min, sec, ctime);
574  Begin_roots_block(_vres, 6)
575  _vres[0] = Val_int(*year);
576  _vres[1] = Val_int(*month);
577  _vres[2] = Val_int(*day);
578  _vres[3] = Val_int(*hour);
579  _vres[4] = Val_int(*min);
580  _vres[5] = copy_double(*sec);
581  _vresult = camlidl_alloc_small(6, 0);
582  { mlsize_t _c7;
583  for (_c7 = 0; _c7 < 6; _c7++) Field(_vresult, _c7) = _vres[_c7];
584  }
585  End_roots()
586  return _vresult;
587 }
588 
590 {
591  c_plbop();
592  return Val_unit;
593 }
594 
596  value _v_xopt,
597  value _v_xtick,
598  value _v_nxsub,
599  value _v_yopt,
600  value _v_ytick,
601  value _v_nysub)
602 {
603  char const *xopt; /*in*/
604  double xtick; /*in*/
605  int nxsub; /*in*/
606  char const *yopt; /*in*/
607  double ytick; /*in*/
608  int nysub; /*in*/
609  xopt = String_val(_v_xopt);
610  xtick = Double_val(_v_xtick);
611  nxsub = Int_val(_v_nxsub);
612  yopt = String_val(_v_yopt);
613  ytick = Double_val(_v_ytick);
614  nysub = Int_val(_v_nysub);
615  c_plbox(xopt, xtick, nxsub, yopt, ytick, nysub);
616  return Val_unit;
617 }
618 
620 {
621  return camlidl_plplot_core_c_plbox(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]);
622 }
623 
625  value _v_xopt,
626  value _v_xlabel,
627  value _v_xtick,
628  value _v_nsubx,
629  value _v_yopt,
630  value _v_ylabel,
631  value _v_ytick,
632  value _v_nsuby,
633  value _v_zopt,
634  value _v_zlabel,
635  value _v_ztick,
636  value _v_nsubz)
637 {
638  char const *xopt; /*in*/
639  char const *xlabel; /*in*/
640  double xtick; /*in*/
641  int nsubx; /*in*/
642  char const *yopt; /*in*/
643  char const *ylabel; /*in*/
644  double ytick; /*in*/
645  int nsuby; /*in*/
646  char const *zopt; /*in*/
647  char const *zlabel; /*in*/
648  double ztick; /*in*/
649  int nsubz; /*in*/
650  xopt = String_val(_v_xopt);
651  xlabel = String_val(_v_xlabel);
652  xtick = Double_val(_v_xtick);
653  nsubx = Int_val(_v_nsubx);
654  yopt = String_val(_v_yopt);
655  ylabel = String_val(_v_ylabel);
656  ytick = Double_val(_v_ytick);
657  nsuby = Int_val(_v_nsuby);
658  zopt = String_val(_v_zopt);
659  zlabel = String_val(_v_zlabel);
660  ztick = Double_val(_v_ztick);
661  nsubz = Int_val(_v_nsubz);
662  c_plbox3(xopt, xlabel, xtick, nsubx, yopt, ylabel, ytick, nsuby, zopt, zlabel, ztick, nsubz);
663  return Val_unit;
664 }
665 
667 {
668  return camlidl_plplot_core_c_plbox3(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11]);
669 }
670 
672  value _v_rx,
673  value _v_ry)
674 {
675  double rx; /*in*/
676  double ry; /*in*/
677  double *wx; /*out*/
678  double *wy; /*out*/
679  int *window; /*out*/
680  double _c1;
681  double _c2;
682  int _c3;
683  value _vresult;
684  value _vres[3] = { 0, 0, 0, };
685 
686  rx = Double_val(_v_rx);
687  ry = Double_val(_v_ry);
688  wx = &_c1;
689  wy = &_c2;
690  window = &_c3;
691  c_plcalc_world(rx, ry, wx, wy, window);
692  Begin_roots_block(_vres, 3)
693  _vres[0] = copy_double(*wx);
694  _vres[1] = copy_double(*wy);
695  _vres[2] = Val_int(*window);
696  _vresult = camlidl_alloc_small(3, 0);
697  Field(_vresult, 0) = _vres[0];
698  Field(_vresult, 1) = _vres[1];
699  Field(_vresult, 2) = _vres[2];
700  End_roots()
701  return _vresult;
702 }
703 
705 {
706  c_plclear();
707  return Val_unit;
708 }
709 
711  value _v_icol0)
712 {
713  int icol0; /*in*/
714  icol0 = Int_val(_v_icol0);
715  c_plcol0(icol0);
716  return Val_unit;
717 }
718 
720  value _v_col1)
721 {
722  double col1; /*in*/
723  col1 = Double_val(_v_col1);
724  c_plcol1(col1);
725  return Val_unit;
726 }
727 
729  value _v_scale,
730  value _v_offset1,
731  value _v_offset2,
732  value _v_ccontrol,
733  value _v_ifbtime_offset,
734  value _v_year,
735  value _v_month,
736  value _v_day,
737  value _v_hour,
738  value _v_min,
739  value _v_sec)
740 {
741  double scale; /*in*/
742  double offset1; /*in*/
743  double offset2; /*in*/
744  int ccontrol; /*in*/
745  int ifbtime_offset; /*in*/
746  int year; /*in*/
747  int month; /*in*/
748  int day; /*in*/
749  int hour; /*in*/
750  int min; /*in*/
751  double sec; /*in*/
752  scale = Double_val(_v_scale);
753  offset1 = Double_val(_v_offset1);
754  offset2 = Double_val(_v_offset2);
755  ccontrol = Int_val(_v_ccontrol);
756  ifbtime_offset = Int_val(_v_ifbtime_offset);
757  year = Int_val(_v_year);
758  month = Int_val(_v_month);
759  day = Int_val(_v_day);
760  hour = Int_val(_v_hour);
761  min = Int_val(_v_min);
762  sec = Double_val(_v_sec);
763  c_plconfigtime(scale, offset1, offset2, ccontrol, ifbtime_offset, year, month, day, hour, min, sec);
764  return Val_unit;
765 }
766 
768 {
769  return camlidl_plplot_core_c_plconfigtime(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10]);
770 }
771 
773  value _v_iplsr,
774  value _v_flags)
775 {
776  int iplsr; /*in*/
777  int flags; /*in*/
778  iplsr = Int_val(_v_iplsr);
779  flags = Int_val(_v_flags);
780  c_plcpstrm(iplsr, flags);
781  return Val_unit;
782 }
783 
785  value _v_year,
786  value _v_month,
787  value _v_day,
788  value _v_hour,
789  value _v_min,
790  value _v_sec)
791 {
792  int year; /*in*/
793  int month; /*in*/
794  int day; /*in*/
795  int hour; /*in*/
796  int min; /*in*/
797  double sec; /*in*/
798  double *ctime; /*out*/
799  double _c1;
800  value _vres;
801 
802  year = Int_val(_v_year);
803  month = Int_val(_v_month);
804  day = Int_val(_v_day);
805  hour = Int_val(_v_hour);
806  min = Int_val(_v_min);
807  sec = Double_val(_v_sec);
808  ctime = &_c1;
809  c_plctime(year, month, day, hour, min, sec, ctime);
810  _vres = copy_double(*ctime);
811  return _vres;
812 }
813 
815 {
816  return camlidl_plplot_core_c_plctime(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]);
817 }
818 
820 {
821  c_plend();
822  return Val_unit;
823 }
824 
826 {
827  c_plend1();
828  return Val_unit;
829 }
830 
832  value _v_xmin,
833  value _v_xmax,
834  value _v_ymin,
835  value _v_ymax,
836  value _v_just,
837  value _v_axis)
838 {
839  double xmin; /*in*/
840  double xmax; /*in*/
841  double ymin; /*in*/
842  double ymax; /*in*/
843  int just; /*in*/
844  int axis; /*in*/
845  xmin = Double_val(_v_xmin);
846  xmax = Double_val(_v_xmax);
847  ymin = Double_val(_v_ymin);
848  ymax = Double_val(_v_ymax);
849  just = Int_val(_v_just);
850  axis = Int_val(_v_axis);
851  c_plenv(xmin, xmax, ymin, ymax, just, axis);
852  return Val_unit;
853 }
854 
856 {
857  return camlidl_plplot_core_c_plenv(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]);
858 }
859 
861  value _v_xmin,
862  value _v_xmax,
863  value _v_ymin,
864  value _v_ymax,
865  value _v_just,
866  value _v_axis)
867 {
868  double xmin; /*in*/
869  double xmax; /*in*/
870  double ymin; /*in*/
871  double ymax; /*in*/
872  int just; /*in*/
873  int axis; /*in*/
874  xmin = Double_val(_v_xmin);
875  xmax = Double_val(_v_xmax);
876  ymin = Double_val(_v_ymin);
877  ymax = Double_val(_v_ymax);
878  just = Int_val(_v_just);
879  axis = Int_val(_v_axis);
880  c_plenv0(xmin, xmax, ymin, ymax, just, axis);
881  return Val_unit;
882 }
883 
885 {
886  return camlidl_plplot_core_c_plenv0(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]);
887 }
888 
890 {
891  c_pleop();
892  return Val_unit;
893 }
894 
896  value _v_xmin,
897  value _v_xmax,
898  value _v_y)
899 {
900  int n; /*in*/
901  double *xmin; /*in*/
902  double *xmax; /*in*/
903  double *y; /*in*/
904  mlsize_t _c1;
905  mlsize_t _c2;
906  mlsize_t _c3;
907  mlsize_t _c4;
908  mlsize_t _c5;
909  mlsize_t _c6;
910  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
911  camlidl_ctx _ctx = &_ctxs;
912  _c1 = Wosize_val(_v_xmin) / Double_wosize;
913  xmin = camlidl_malloc(_c1 * sizeof(double ), _ctx);
914  for (_c2 = 0; _c2 < _c1; _c2++) {
915  xmin[_c2] = Double_field(_v_xmin, _c2);
916  }
917  n = _c1;
918  _c3 = Wosize_val(_v_xmax) / Double_wosize;
919  xmax = camlidl_malloc(_c3 * sizeof(double ), _ctx);
920  for (_c4 = 0; _c4 < _c3; _c4++) {
921  xmax[_c4] = Double_field(_v_xmax, _c4);
922  }
923  n = _c3;
924  _c5 = Wosize_val(_v_y) / Double_wosize;
925  y = camlidl_malloc(_c5 * sizeof(double ), _ctx);
926  for (_c6 = 0; _c6 < _c5; _c6++) {
927  y[_c6] = Double_field(_v_y, _c6);
928  }
929  n = _c5;
930  c_plerrx(n, xmin, xmax, y);
931  camlidl_free(_ctx);
932  return Val_unit;
933 }
934 
936  value _v_x,
937  value _v_ymin,
938  value _v_ymax)
939 {
940  int n; /*in*/
941  double *x; /*in*/
942  double *ymin; /*in*/
943  double *ymax; /*in*/
944  mlsize_t _c1;
945  mlsize_t _c2;
946  mlsize_t _c3;
947  mlsize_t _c4;
948  mlsize_t _c5;
949  mlsize_t _c6;
950  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
951  camlidl_ctx _ctx = &_ctxs;
952  _c1 = Wosize_val(_v_x) / Double_wosize;
953  x = camlidl_malloc(_c1 * sizeof(double ), _ctx);
954  for (_c2 = 0; _c2 < _c1; _c2++) {
955  x[_c2] = Double_field(_v_x, _c2);
956  }
957  n = _c1;
958  _c3 = Wosize_val(_v_ymin) / Double_wosize;
959  ymin = camlidl_malloc(_c3 * sizeof(double ), _ctx);
960  for (_c4 = 0; _c4 < _c3; _c4++) {
961  ymin[_c4] = Double_field(_v_ymin, _c4);
962  }
963  n = _c3;
964  _c5 = Wosize_val(_v_ymax) / Double_wosize;
965  ymax = camlidl_malloc(_c5 * sizeof(double ), _ctx);
966  for (_c6 = 0; _c6 < _c5; _c6++) {
967  ymax[_c6] = Double_field(_v_ymax, _c6);
968  }
969  n = _c5;
970  c_plerry(n, x, ymin, ymax);
971  camlidl_free(_ctx);
972  return Val_unit;
973 }
974 
976 {
977  c_plfamadv();
978  return Val_unit;
979 }
980 
982  value _v_x,
983  value _v_y)
984 {
985  int n; /*in*/
986  double *x; /*in*/
987  double *y; /*in*/
988  mlsize_t _c1;
989  mlsize_t _c2;
990  mlsize_t _c3;
991  mlsize_t _c4;
992  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
993  camlidl_ctx _ctx = &_ctxs;
994  _c1 = Wosize_val(_v_x) / Double_wosize;
995  x = camlidl_malloc(_c1 * sizeof(double ), _ctx);
996  for (_c2 = 0; _c2 < _c1; _c2++) {
997  x[_c2] = Double_field(_v_x, _c2);
998  }
999  n = _c1;
1000  _c3 = Wosize_val(_v_y) / Double_wosize;
1001  y = camlidl_malloc(_c3 * sizeof(double ), _ctx);
1002  for (_c4 = 0; _c4 < _c3; _c4++) {
1003  y[_c4] = Double_field(_v_y, _c4);
1004  }
1005  n = _c3;
1006  c_plfill(n, x, y);
1007  camlidl_free(_ctx);
1008  return Val_unit;
1009 }
1010 
1012  value _v_x,
1013  value _v_y,
1014  value _v_z)
1015 {
1016  int n; /*in*/
1017  double *x; /*in*/
1018  double *y; /*in*/
1019  double *z; /*in*/
1020  mlsize_t _c1;
1021  mlsize_t _c2;
1022  mlsize_t _c3;
1023  mlsize_t _c4;
1024  mlsize_t _c5;
1025  mlsize_t _c6;
1026  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
1027  camlidl_ctx _ctx = &_ctxs;
1028  _c1 = Wosize_val(_v_x) / Double_wosize;
1029  x = camlidl_malloc(_c1 * sizeof(double ), _ctx);
1030  for (_c2 = 0; _c2 < _c1; _c2++) {
1031  x[_c2] = Double_field(_v_x, _c2);
1032  }
1033  n = _c1;
1034  _c3 = Wosize_val(_v_y) / Double_wosize;
1035  y = camlidl_malloc(_c3 * sizeof(double ), _ctx);
1036  for (_c4 = 0; _c4 < _c3; _c4++) {
1037  y[_c4] = Double_field(_v_y, _c4);
1038  }
1039  n = _c3;
1040  _c5 = Wosize_val(_v_z) / Double_wosize;
1041  z = camlidl_malloc(_c5 * sizeof(double ), _ctx);
1042  for (_c6 = 0; _c6 < _c5; _c6++) {
1043  z[_c6] = Double_field(_v_z, _c6);
1044  }
1045  n = _c5;
1046  c_plfill3(n, x, y, z);
1047  camlidl_free(_ctx);
1048  return Val_unit;
1049 }
1050 
1052 {
1053  c_plflush();
1054  return Val_unit;
1055 }
1056 
1058  value _v_ifont)
1059 {
1060  int ifont; /*in*/
1061  ifont = Int_val(_v_ifont);
1062  c_plfont(ifont);
1063  return Val_unit;
1064 }
1065 
1067  value _v_fnt)
1068 {
1069  int fnt; /*in*/
1070  fnt = Int_val(_v_fnt);
1071  c_plfontld(fnt);
1072  return Val_unit;
1073 }
1074 
1076 {
1077  double *p_def; /*out*/
1078  double *p_ht; /*out*/
1079  double _c1;
1080  double _c2;
1081  value _vresult;
1082  value _vres[2] = { 0, 0, };
1083 
1084  p_def = &_c1;
1085  p_ht = &_c2;
1086  c_plgchr(p_def, p_ht);
1087  Begin_roots_block(_vres, 2)
1088  _vres[0] = copy_double(*p_def);
1089  _vres[1] = copy_double(*p_ht);
1090  _vresult = camlidl_alloc_small(2, 0);
1091  Field(_vresult, 0) = _vres[0];
1092  Field(_vresult, 1) = _vres[1];
1093  End_roots()
1094  return _vresult;
1095 }
1096 
1098 {
1099  double *min_color; /*out*/
1100  double *max_color; /*out*/
1101  double _c1;
1102  double _c2;
1103  value _vresult;
1104  value _vres[2] = { 0, 0, };
1105 
1106  min_color = &_c1;
1107  max_color = &_c2;
1108  c_plgcmap1_range(min_color, max_color);
1109  Begin_roots_block(_vres, 2)
1110  _vres[0] = copy_double(*min_color);
1111  _vres[1] = copy_double(*max_color);
1112  _vresult = camlidl_alloc_small(2, 0);
1113  Field(_vresult, 0) = _vres[0];
1114  Field(_vresult, 1) = _vres[1];
1115  End_roots()
1116  return _vresult;
1117 }
1118 
1120  value _v_icol0)
1121 {
1122  int icol0; /*in*/
1123  int *r; /*out*/
1124  int *g; /*out*/
1125  int *b; /*out*/
1126  int _c1;
1127  int _c2;
1128  int _c3;
1129  value _vresult;
1130  value _vres[3] = { 0, 0, 0, };
1131 
1132  icol0 = Int_val(_v_icol0);
1133  r = &_c1;
1134  g = &_c2;
1135  b = &_c3;
1136  c_plgcol0(icol0, r, g, b);
1137  Begin_roots_block(_vres, 3)
1138  _vres[0] = Val_int(*r);
1139  _vres[1] = Val_int(*g);
1140  _vres[2] = Val_int(*b);
1141  _vresult = camlidl_alloc_small(3, 0);
1142  Field(_vresult, 0) = _vres[0];
1143  Field(_vresult, 1) = _vres[1];
1144  Field(_vresult, 2) = _vres[2];
1145  End_roots()
1146  return _vresult;
1147 }
1148 
1150  value _v_icol0)
1151 {
1152  int icol0; /*in*/
1153  int *r; /*out*/
1154  int *g; /*out*/
1155  int *b; /*out*/
1156  double *a; /*out*/
1157  int _c1;
1158  int _c2;
1159  int _c3;
1160  double _c4;
1161  value _vresult;
1162  value _vres[4] = { 0, 0, 0, 0, };
1163 
1164  icol0 = Int_val(_v_icol0);
1165  r = &_c1;
1166  g = &_c2;
1167  b = &_c3;
1168  a = &_c4;
1169  c_plgcol0a(icol0, r, g, b, a);
1170  Begin_roots_block(_vres, 4)
1171  _vres[0] = Val_int(*r);
1172  _vres[1] = Val_int(*g);
1173  _vres[2] = Val_int(*b);
1174  _vres[3] = copy_double(*a);
1175  _vresult = camlidl_alloc_small(4, 0);
1176  Field(_vresult, 0) = _vres[0];
1177  Field(_vresult, 1) = _vres[1];
1178  Field(_vresult, 2) = _vres[2];
1179  Field(_vresult, 3) = _vres[3];
1180  End_roots()
1181  return _vresult;
1182 }
1183 
1185 {
1186  int *r; /*out*/
1187  int *g; /*out*/
1188  int *b; /*out*/
1189  int _c1;
1190  int _c2;
1191  int _c3;
1192  value _vresult;
1193  value _vres[3] = { 0, 0, 0, };
1194 
1195  r = &_c1;
1196  g = &_c2;
1197  b = &_c3;
1198  c_plgcolbg(r, g, b);
1199  Begin_roots_block(_vres, 3)
1200  _vres[0] = Val_int(*r);
1201  _vres[1] = Val_int(*g);
1202  _vres[2] = Val_int(*b);
1203  _vresult = camlidl_alloc_small(3, 0);
1204  Field(_vresult, 0) = _vres[0];
1205  Field(_vresult, 1) = _vres[1];
1206  Field(_vresult, 2) = _vres[2];
1207  End_roots()
1208  return _vresult;
1209 }
1210 
1212 {
1213  int *r; /*out*/
1214  int *g; /*out*/
1215  int *b; /*out*/
1216  double *a; /*out*/
1217  int _c1;
1218  int _c2;
1219  int _c3;
1220  double _c4;
1221  value _vresult;
1222  value _vres[4] = { 0, 0, 0, 0, };
1223 
1224  r = &_c1;
1225  g = &_c2;
1226  b = &_c3;
1227  a = &_c4;
1228  c_plgcolbga(r, g, b, a);
1229  Begin_roots_block(_vres, 4)
1230  _vres[0] = Val_int(*r);
1231  _vres[1] = Val_int(*g);
1232  _vres[2] = Val_int(*b);
1233  _vres[3] = copy_double(*a);
1234  _vresult = camlidl_alloc_small(4, 0);
1235  Field(_vresult, 0) = _vres[0];
1236  Field(_vresult, 1) = _vres[1];
1237  Field(_vresult, 2) = _vres[2];
1238  Field(_vresult, 3) = _vres[3];
1239  End_roots()
1240  return _vresult;
1241 }
1242 
1244 {
1245  int *compression; /*out*/
1246  int _c1;
1247  value _vres;
1248 
1249  compression = &_c1;
1250  c_plgcompression(compression);
1251  _vres = Val_int(*compression);
1252  return _vres;
1253 }
1254 
1256 {
1257  char *p_dev; /*out*/
1258  value _vres;
1259 
1260  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
1261  camlidl_ctx _ctx = &_ctxs;
1262  p_dev = camlidl_malloc(1024 * sizeof(char ), _ctx);
1263  c_plgdev(p_dev);
1264  _vres = copy_string(p_dev);
1265  camlidl_free(_ctx);
1266  return _vres;
1267 }
1268 
1270 {
1271  double *p_mar; /*out*/
1272  double *p_aspect; /*out*/
1273  double *p_jx; /*out*/
1274  double *p_jy; /*out*/
1275  double _c1;
1276  double _c2;
1277  double _c3;
1278  double _c4;
1279  value _vresult;
1280  value _vres[4] = { 0, 0, 0, 0, };
1281 
1282  p_mar = &_c1;
1283  p_aspect = &_c2;
1284  p_jx = &_c3;
1285  p_jy = &_c4;
1286  c_plgdidev(p_mar, p_aspect, p_jx, p_jy);
1287  Begin_roots_block(_vres, 4)
1288  _vres[0] = copy_double(*p_mar);
1289  _vres[1] = copy_double(*p_aspect);
1290  _vres[2] = copy_double(*p_jx);
1291  _vres[3] = copy_double(*p_jy);
1292  _vresult = camlidl_alloc_small(4, 0);
1293  Field(_vresult, 0) = _vres[0];
1294  Field(_vresult, 1) = _vres[1];
1295  Field(_vresult, 2) = _vres[2];
1296  Field(_vresult, 3) = _vres[3];
1297  End_roots()
1298  return _vresult;
1299 }
1300 
1302 {
1303  double *p_rot; /*out*/
1304  double _c1;
1305  value _vres;
1306 
1307  p_rot = &_c1;
1308  c_plgdiori(p_rot);
1309  _vres = copy_double(*p_rot);
1310  return _vres;
1311 }
1312 
1314 {
1315  double *p_xmin; /*out*/
1316  double *p_ymin; /*out*/
1317  double *p_xmax; /*out*/
1318  double *p_ymax; /*out*/
1319  double _c1;
1320  double _c2;
1321  double _c3;
1322  double _c4;
1323  value _vresult;
1324  value _vres[4] = { 0, 0, 0, 0, };
1325 
1326  p_xmin = &_c1;
1327  p_ymin = &_c2;
1328  p_xmax = &_c3;
1329  p_ymax = &_c4;
1330  c_plgdiplt(p_xmin, p_ymin, p_xmax, p_ymax);
1331  Begin_roots_block(_vres, 4)
1332  _vres[0] = copy_double(*p_xmin);
1333  _vres[1] = copy_double(*p_ymin);
1334  _vres[2] = copy_double(*p_xmax);
1335  _vres[3] = copy_double(*p_ymax);
1336  _vresult = camlidl_alloc_small(4, 0);
1337  Field(_vresult, 0) = _vres[0];
1338  Field(_vresult, 1) = _vres[1];
1339  Field(_vresult, 2) = _vres[2];
1340  Field(_vresult, 3) = _vres[3];
1341  End_roots()
1342  return _vresult;
1343 }
1344 
1346 {
1347  int _res;
1348  value _vres;
1349 
1350  _res = c_plgdrawmode();
1352  return _vres;
1353 }
1354 
1356 {
1357  long long *pfci; /*out*/
1358  long long _c1;
1359  value _vres;
1360 
1361  pfci = &_c1;
1362  c_plgfci(pfci);
1363  _vres = copy_int64(*pfci);
1364  return _vres;
1365 }
1366 
1368 {
1369  int *p_fam; /*out*/
1370  int *p_num; /*out*/
1371  int *p_bmax; /*out*/
1372  int _c1;
1373  int _c2;
1374  int _c3;
1375  value _vresult;
1376  value _vres[3] = { 0, 0, 0, };
1377 
1378  p_fam = &_c1;
1379  p_num = &_c2;
1380  p_bmax = &_c3;
1381  c_plgfam(p_fam, p_num, p_bmax);
1382  Begin_roots_block(_vres, 3)
1383  _vres[0] = Val_int(*p_fam);
1384  _vres[1] = Val_int(*p_num);
1385  _vres[2] = Val_int(*p_bmax);
1386  _vresult = camlidl_alloc_small(3, 0);
1387  Field(_vresult, 0) = _vres[0];
1388  Field(_vresult, 1) = _vres[1];
1389  Field(_vresult, 2) = _vres[2];
1390  End_roots()
1391  return _vresult;
1392 }
1393 
1395 {
1396  char *fnam; /*out*/
1397  value _vres;
1398 
1399  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
1400  camlidl_ctx _ctx = &_ctxs;
1401  fnam = camlidl_malloc(1024 * sizeof(char ), _ctx);
1402  c_plgfnam(fnam);
1403  _vres = copy_string(fnam);
1404  camlidl_free(_ctx);
1405  return _vres;
1406 }
1407 
1409 {
1410  int *p_family; /*out*/
1411  int *p_style; /*out*/
1412  int *p_weight; /*out*/
1413  int _c1;
1414  int _c2;
1415  int _c3;
1416  value _vresult;
1417  value _vres[3] = { 0, 0, 0, };
1418 
1419  p_family = &_c1;
1420  p_style = &_c2;
1421  p_weight = &_c3;
1422  c_plgfont(p_family, p_style, p_weight);
1423  Begin_roots_block(_vres, 3)
1424  _vres[0] = Val_int(*p_family);
1425  _vres[1] = Val_int(*p_style);
1426  _vres[2] = Val_int(*p_weight);
1427  _vresult = camlidl_alloc_small(3, 0);
1428  Field(_vresult, 0) = _vres[0];
1429  Field(_vresult, 1) = _vres[1];
1430  Field(_vresult, 2) = _vres[2];
1431  End_roots()
1432  return _vresult;
1433 }
1434 
1436 {
1437  plplot_run_level *p_level; /*out*/
1438  plplot_run_level _c1;
1439  value _vres;
1440 
1441  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
1442  camlidl_ctx _ctx = &_ctxs;
1443  p_level = &_c1;
1444  c_plglevel(p_level);
1445  _vres = camlidl_c2ml_plplot_core_plplot_run_level(&*p_level, _ctx);
1446  camlidl_free(_ctx);
1447  return _vres;
1448 }
1449 
1451 {
1452  double *p_xp; /*out*/
1453  double *p_yp; /*out*/
1454  int *p_xleng; /*out*/
1455  int *p_yleng; /*out*/
1456  int *p_xoff; /*out*/
1457  int *p_yoff; /*out*/
1458  double _c1;
1459  double _c2;
1460  int _c3;
1461  int _c4;
1462  int _c5;
1463  int _c6;
1464  value _vresult;
1465  value _vres[6] = { 0, 0, 0, 0, 0, 0, };
1466 
1467  p_xp = &_c1;
1468  p_yp = &_c2;
1469  p_xleng = &_c3;
1470  p_yleng = &_c4;
1471  p_xoff = &_c5;
1472  p_yoff = &_c6;
1473  c_plgpage(p_xp, p_yp, p_xleng, p_yleng, p_xoff, p_yoff);
1474  Begin_roots_block(_vres, 6)
1475  _vres[0] = copy_double(*p_xp);
1476  _vres[1] = copy_double(*p_yp);
1477  _vres[2] = Val_int(*p_xleng);
1478  _vres[3] = Val_int(*p_yleng);
1479  _vres[4] = Val_int(*p_xoff);
1480  _vres[5] = Val_int(*p_yoff);
1481  _vresult = camlidl_alloc_small(6, 0);
1482  { mlsize_t _c7;
1483  for (_c7 = 0; _c7 < 6; _c7++) Field(_vresult, _c7) = _vres[_c7];
1484  }
1485  End_roots()
1486  return _vresult;
1487 }
1488 
1490 {
1491  c_plgra();
1492  return Val_unit;
1493 }
1494 
1496  value _v_x,
1497  value _v_y,
1498  value _v_angle)
1499 {
1500  int n; /*in*/
1501  double *x; /*in*/
1502  double *y; /*in*/
1503  double angle; /*in*/
1504  mlsize_t _c1;
1505  mlsize_t _c2;
1506  mlsize_t _c3;
1507  mlsize_t _c4;
1508  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
1509  camlidl_ctx _ctx = &_ctxs;
1510  _c1 = Wosize_val(_v_x) / Double_wosize;
1511  x = camlidl_malloc(_c1 * sizeof(double ), _ctx);
1512  for (_c2 = 0; _c2 < _c1; _c2++) {
1513  x[_c2] = Double_field(_v_x, _c2);
1514  }
1515  n = _c1;
1516  _c3 = Wosize_val(_v_y) / Double_wosize;
1517  y = camlidl_malloc(_c3 * sizeof(double ), _ctx);
1518  for (_c4 = 0; _c4 < _c3; _c4++) {
1519  y[_c4] = Double_field(_v_y, _c4);
1520  }
1521  n = _c3;
1522  angle = Double_val(_v_angle);
1523  c_plgradient(n, x, y, angle);
1524  camlidl_free(_ctx);
1525  return Val_unit;
1526 }
1527 
1529 {
1530  double *xmin; /*out*/
1531  double *xmax; /*out*/
1532  double *ymin; /*out*/
1533  double *ymax; /*out*/
1534  double _c1;
1535  double _c2;
1536  double _c3;
1537  double _c4;
1538  value _vresult;
1539  value _vres[4] = { 0, 0, 0, 0, };
1540 
1541  xmin = &_c1;
1542  xmax = &_c2;
1543  ymin = &_c3;
1544  ymax = &_c4;
1545  c_plgspa(xmin, xmax, ymin, ymax);
1546  Begin_roots_block(_vres, 4)
1547  _vres[0] = copy_double(*xmin);
1548  _vres[1] = copy_double(*xmax);
1549  _vres[2] = copy_double(*ymin);
1550  _vres[3] = copy_double(*ymax);
1551  _vresult = camlidl_alloc_small(4, 0);
1552  Field(_vresult, 0) = _vres[0];
1553  Field(_vresult, 1) = _vres[1];
1554  Field(_vresult, 2) = _vres[2];
1555  Field(_vresult, 3) = _vres[3];
1556  End_roots()
1557  return _vresult;
1558 }
1559 
1561 {
1562  int *p_strm; /*out*/
1563  int _c1;
1564  value _vres;
1565 
1566  p_strm = &_c1;
1567  c_plgstrm(p_strm);
1568  _vres = Val_int(*p_strm);
1569  return _vres;
1570 }
1571 
1573 {
1574  char *p_ver; /*out*/
1575  value _vres;
1576 
1577  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
1578  camlidl_ctx _ctx = &_ctxs;
1579  p_ver = camlidl_malloc(1024 * sizeof(char ), _ctx);
1580  c_plgver(p_ver);
1581  _vres = copy_string(p_ver);
1582  camlidl_free(_ctx);
1583  return _vres;
1584 }
1585 
1587 {
1588  double *p_xmin; /*out*/
1589  double *p_xmax; /*out*/
1590  double *p_ymin; /*out*/
1591  double *p_ymax; /*out*/
1592  double _c1;
1593  double _c2;
1594  double _c3;
1595  double _c4;
1596  value _vresult;
1597  value _vres[4] = { 0, 0, 0, 0, };
1598 
1599  p_xmin = &_c1;
1600  p_xmax = &_c2;
1601  p_ymin = &_c3;
1602  p_ymax = &_c4;
1603  c_plgvpd(p_xmin, p_xmax, p_ymin, p_ymax);
1604  Begin_roots_block(_vres, 4)
1605  _vres[0] = copy_double(*p_xmin);
1606  _vres[1] = copy_double(*p_xmax);
1607  _vres[2] = copy_double(*p_ymin);
1608  _vres[3] = copy_double(*p_ymax);
1609  _vresult = camlidl_alloc_small(4, 0);
1610  Field(_vresult, 0) = _vres[0];
1611  Field(_vresult, 1) = _vres[1];
1612  Field(_vresult, 2) = _vres[2];
1613  Field(_vresult, 3) = _vres[3];
1614  End_roots()
1615  return _vresult;
1616 }
1617 
1619 {
1620  double *p_xmin; /*out*/
1621  double *p_xmax; /*out*/
1622  double *p_ymin; /*out*/
1623  double *p_ymax; /*out*/
1624  double _c1;
1625  double _c2;
1626  double _c3;
1627  double _c4;
1628  value _vresult;
1629  value _vres[4] = { 0, 0, 0, 0, };
1630 
1631  p_xmin = &_c1;
1632  p_xmax = &_c2;
1633  p_ymin = &_c3;
1634  p_ymax = &_c4;
1635  c_plgvpw(p_xmin, p_xmax, p_ymin, p_ymax);
1636  Begin_roots_block(_vres, 4)
1637  _vres[0] = copy_double(*p_xmin);
1638  _vres[1] = copy_double(*p_xmax);
1639  _vres[2] = copy_double(*p_ymin);
1640  _vres[3] = copy_double(*p_ymax);
1641  _vresult = camlidl_alloc_small(4, 0);
1642  Field(_vresult, 0) = _vres[0];
1643  Field(_vresult, 1) = _vres[1];
1644  Field(_vresult, 2) = _vres[2];
1645  Field(_vresult, 3) = _vres[3];
1646  End_roots()
1647  return _vresult;
1648 }
1649 
1651 {
1652  int *p_digmax; /*out*/
1653  int *p_digits; /*out*/
1654  int _c1;
1655  int _c2;
1656  value _vresult;
1657  value _vres[2] = { 0, 0, };
1658 
1659  p_digmax = &_c1;
1660  p_digits = &_c2;
1661  c_plgxax(p_digmax, p_digits);
1662  Begin_roots_block(_vres, 2)
1663  _vres[0] = Val_int(*p_digmax);
1664  _vres[1] = Val_int(*p_digits);
1665  _vresult = camlidl_alloc_small(2, 0);
1666  Field(_vresult, 0) = _vres[0];
1667  Field(_vresult, 1) = _vres[1];
1668  End_roots()
1669  return _vresult;
1670 }
1671 
1673 {
1674  int *p_digmax; /*out*/
1675  int *p_digits; /*out*/
1676  int _c1;
1677  int _c2;
1678  value _vresult;
1679  value _vres[2] = { 0, 0, };
1680 
1681  p_digmax = &_c1;
1682  p_digits = &_c2;
1683  c_plgyax(p_digmax, p_digits);
1684  Begin_roots_block(_vres, 2)
1685  _vres[0] = Val_int(*p_digmax);
1686  _vres[1] = Val_int(*p_digits);
1687  _vresult = camlidl_alloc_small(2, 0);
1688  Field(_vresult, 0) = _vres[0];
1689  Field(_vresult, 1) = _vres[1];
1690  End_roots()
1691  return _vresult;
1692 }
1693 
1695 {
1696  int *p_digmax; /*out*/
1697  int *p_digits; /*out*/
1698  int _c1;
1699  int _c2;
1700  value _vresult;
1701  value _vres[2] = { 0, 0, };
1702 
1703  p_digmax = &_c1;
1704  p_digits = &_c2;
1705  c_plgzax(p_digmax, p_digits);
1706  Begin_roots_block(_vres, 2)
1707  _vres[0] = Val_int(*p_digmax);
1708  _vres[1] = Val_int(*p_digits);
1709  _vresult = camlidl_alloc_small(2, 0);
1710  Field(_vresult, 0) = _vres[0];
1711  Field(_vresult, 1) = _vres[1];
1712  End_roots()
1713  return _vresult;
1714 }
1715 
1717  value _v_data,
1718  value _v_datmin,
1719  value _v_datmax,
1720  value _v_nbin,
1721  value _v_opt)
1722 {
1723  int n; /*in*/
1724  double *data; /*in*/
1725  double datmin; /*in*/
1726  double datmax; /*in*/
1727  int nbin; /*in*/
1728  plplot_hist_style opt; /*in*/
1729  mlsize_t _c1;
1730  mlsize_t _c2;
1731  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
1732  camlidl_ctx _ctx = &_ctxs;
1733  _c1 = Wosize_val(_v_data) / Double_wosize;
1734  data = camlidl_malloc(_c1 * sizeof(double ), _ctx);
1735  for (_c2 = 0; _c2 < _c1; _c2++) {
1736  data[_c2] = Double_field(_v_data, _c2);
1737  }
1738  n = _c1;
1739  datmin = Double_val(_v_datmin);
1740  datmax = Double_val(_v_datmax);
1741  nbin = Int_val(_v_nbin);
1742  camlidl_ml2c_plplot_core_plplot_hist_style(_v_opt, &opt, _ctx);
1743  c_plhist(n, data, datmin, datmax, nbin, opt);
1744  camlidl_free(_ctx);
1745  return Val_unit;
1746 }
1747 
1749  value _v_h,
1750  value _v_l,
1751  value _v_s)
1752 {
1753  double h; /*in*/
1754  double l; /*in*/
1755  double s; /*in*/
1756  double *p_r; /*out*/
1757  double *p_g; /*out*/
1758  double *p_b; /*out*/
1759  double _c1;
1760  double _c2;
1761  double _c3;
1762  value _vresult;
1763  value _vres[3] = { 0, 0, 0, };
1764 
1765  h = Double_val(_v_h);
1766  l = Double_val(_v_l);
1767  s = Double_val(_v_s);
1768  p_r = &_c1;
1769  p_g = &_c2;
1770  p_b = &_c3;
1771  c_plhlsrgb(h, l, s, p_r, p_g, p_b);
1772  Begin_roots_block(_vres, 3)
1773  _vres[0] = copy_double(*p_r);
1774  _vres[1] = copy_double(*p_g);
1775  _vres[2] = copy_double(*p_b);
1776  _vresult = camlidl_alloc_small(3, 0);
1777  Field(_vresult, 0) = _vres[0];
1778  Field(_vresult, 1) = _vres[1];
1779  Field(_vresult, 2) = _vres[2];
1780  End_roots()
1781  return _vresult;
1782 }
1783 
1785 {
1786  c_plinit();
1787  return Val_unit;
1788 }
1789 
1791  value _v_x1,
1792  value _v_y1,
1793  value _v_x2,
1794  value _v_y2)
1795 {
1796  double x1; /*in*/
1797  double y1; /*in*/
1798  double x2; /*in*/
1799  double y2; /*in*/
1800  x1 = Double_val(_v_x1);
1801  y1 = Double_val(_v_y1);
1802  x2 = Double_val(_v_x2);
1803  y2 = Double_val(_v_y2);
1804  c_pljoin(x1, y1, x2, y2);
1805  return Val_unit;
1806 }
1807 
1809  value _v_xlabel,
1810  value _v_ylabel,
1811  value _v_tlabel)
1812 {
1813  char const *xlabel; /*in*/
1814  char const *ylabel; /*in*/
1815  char const *tlabel; /*in*/
1816  xlabel = String_val(_v_xlabel);
1817  ylabel = String_val(_v_ylabel);
1818  tlabel = String_val(_v_tlabel);
1819  c_pllab(xlabel, ylabel, tlabel);
1820  return Val_unit;
1821 }
1822 
1824  value _v_x,
1825  value _v_y,
1826  value _v_z)
1827 {
1828  double x; /*in*/
1829  double y; /*in*/
1830  double z; /*in*/
1831  x = Double_val(_v_x);
1832  y = Double_val(_v_y);
1833  z = Double_val(_v_z);
1834  c_pllightsource(x, y, z);
1835  return Val_unit;
1836 }
1837 
1839  value _v_x,
1840  value _v_y)
1841 {
1842  int n; /*in*/
1843  double *x; /*in*/
1844  double *y; /*in*/
1845  mlsize_t _c1;
1846  mlsize_t _c2;
1847  mlsize_t _c3;
1848  mlsize_t _c4;
1849  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
1850  camlidl_ctx _ctx = &_ctxs;
1851  _c1 = Wosize_val(_v_x) / Double_wosize;
1852  x = camlidl_malloc(_c1 * sizeof(double ), _ctx);
1853  for (_c2 = 0; _c2 < _c1; _c2++) {
1854  x[_c2] = Double_field(_v_x, _c2);
1855  }
1856  n = _c1;
1857  _c3 = Wosize_val(_v_y) / Double_wosize;
1858  y = camlidl_malloc(_c3 * sizeof(double ), _ctx);
1859  for (_c4 = 0; _c4 < _c3; _c4++) {
1860  y[_c4] = Double_field(_v_y, _c4);
1861  }
1862  n = _c3;
1863  c_plline(n, x, y);
1864  camlidl_free(_ctx);
1865  return Val_unit;
1866 }
1867 
1869  value _v_x,
1870  value _v_y,
1871  value _v_z)
1872 {
1873  int n; /*in*/
1874  double *x; /*in*/
1875  double *y; /*in*/
1876  double *z; /*in*/
1877  mlsize_t _c1;
1878  mlsize_t _c2;
1879  mlsize_t _c3;
1880  mlsize_t _c4;
1881  mlsize_t _c5;
1882  mlsize_t _c6;
1883  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
1884  camlidl_ctx _ctx = &_ctxs;
1885  _c1 = Wosize_val(_v_x) / Double_wosize;
1886  x = camlidl_malloc(_c1 * sizeof(double ), _ctx);
1887  for (_c2 = 0; _c2 < _c1; _c2++) {
1888  x[_c2] = Double_field(_v_x, _c2);
1889  }
1890  n = _c1;
1891  _c3 = Wosize_val(_v_y) / Double_wosize;
1892  y = camlidl_malloc(_c3 * sizeof(double ), _ctx);
1893  for (_c4 = 0; _c4 < _c3; _c4++) {
1894  y[_c4] = Double_field(_v_y, _c4);
1895  }
1896  n = _c3;
1897  _c5 = Wosize_val(_v_z) / Double_wosize;
1898  z = camlidl_malloc(_c5 * sizeof(double ), _ctx);
1899  for (_c6 = 0; _c6 < _c5; _c6++) {
1900  z[_c6] = Double_field(_v_z, _c6);
1901  }
1902  n = _c5;
1903  c_plline3(n, x, y, z);
1904  camlidl_free(_ctx);
1905  return Val_unit;
1906 }
1907 
1909  value _v_lin)
1910 {
1911  int lin; /*in*/
1912  lin = Int_val(_v_lin);
1913  c_pllsty(lin);
1914  return Val_unit;
1915 }
1916 
1918  value _v_x,
1919  value _v_y,
1920  value _v_z,
1921  value _v_opt)
1922 {
1923  double *x; /*in*/
1924  double *y; /*in*/
1925  double **z; /*in*/
1926  int nx; /*in*/
1927  int ny; /*in*/
1928  plplot3d_style opt; /*in*/
1929  mlsize_t _c1;
1930  mlsize_t _c2;
1931  mlsize_t _c3;
1932  mlsize_t _c4;
1933  mlsize_t _c5;
1934  mlsize_t _c6;
1935  value _v7;
1936  mlsize_t _c8;
1937  mlsize_t _c9;
1938  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
1939  camlidl_ctx _ctx = &_ctxs;
1940  _c1 = Wosize_val(_v_x) / Double_wosize;
1941  x = camlidl_malloc(_c1 * sizeof(double ), _ctx);
1942  for (_c2 = 0; _c2 < _c1; _c2++) {
1943  x[_c2] = Double_field(_v_x, _c2);
1944  }
1945  nx = _c1;
1946  _c3 = Wosize_val(_v_y) / Double_wosize;
1947  y = camlidl_malloc(_c3 * sizeof(double ), _ctx);
1948  for (_c4 = 0; _c4 < _c3; _c4++) {
1949  y[_c4] = Double_field(_v_y, _c4);
1950  }
1951  ny = _c3;
1952  _c5 = Wosize_val(_v_z);
1953  z = camlidl_malloc(_c5 * sizeof(double *), _ctx);
1954  for (_c6 = 0; _c6 < _c5; _c6++) {
1955  _v7 = Field(_v_z, _c6);
1956  _c8 = Wosize_val(_v7) / Double_wosize;
1957  z[_c6] = camlidl_malloc(_c8 * sizeof(double ), _ctx);
1958  for (_c9 = 0; _c9 < _c8; _c9++) {
1959  z[_c6][_c9] = Double_field(_v7, _c9);
1960  }
1961  ny = _c8;
1962  }
1963  nx = _c5;
1964  camlidl_ml2c_plplot_core_plplot3d_style(_v_opt, &opt, _ctx);
1965  c_plmesh(x, y, z, nx, ny, opt);
1966  camlidl_free(_ctx);
1967  return Val_unit;
1968 }
1969 
1971  value _v_x,
1972  value _v_y,
1973  value _v_z,
1974  value _v_opt,
1975  value _v_clevel)
1976 {
1977  double *x; /*in*/
1978  double *y; /*in*/
1979  double **z; /*in*/
1980  int nx; /*in*/
1981  int ny; /*in*/
1982  plplot3d_style opt; /*in*/
1983  double *clevel; /*in*/
1984  int nlevel; /*in*/
1985  mlsize_t _c1;
1986  mlsize_t _c2;
1987  mlsize_t _c3;
1988  mlsize_t _c4;
1989  mlsize_t _c5;
1990  mlsize_t _c6;
1991  value _v7;
1992  mlsize_t _c8;
1993  mlsize_t _c9;
1994  mlsize_t _c10;
1995  mlsize_t _c11;
1996  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
1997  camlidl_ctx _ctx = &_ctxs;
1998  _c1 = Wosize_val(_v_x) / Double_wosize;
1999  x = camlidl_malloc(_c1 * sizeof(double ), _ctx);
2000  for (_c2 = 0; _c2 < _c1; _c2++) {
2001  x[_c2] = Double_field(_v_x, _c2);
2002  }
2003  nx = _c1;
2004  _c3 = Wosize_val(_v_y) / Double_wosize;
2005  y = camlidl_malloc(_c3 * sizeof(double ), _ctx);
2006  for (_c4 = 0; _c4 < _c3; _c4++) {
2007  y[_c4] = Double_field(_v_y, _c4);
2008  }
2009  ny = _c3;
2010  _c5 = Wosize_val(_v_z);
2011  z = camlidl_malloc(_c5 * sizeof(double *), _ctx);
2012  for (_c6 = 0; _c6 < _c5; _c6++) {
2013  _v7 = Field(_v_z, _c6);
2014  _c8 = Wosize_val(_v7) / Double_wosize;
2015  z[_c6] = camlidl_malloc(_c8 * sizeof(double ), _ctx);
2016  for (_c9 = 0; _c9 < _c8; _c9++) {
2017  z[_c6][_c9] = Double_field(_v7, _c9);
2018  }
2019  ny = _c8;
2020  }
2021  nx = _c5;
2022  camlidl_ml2c_plplot_core_plplot3d_style(_v_opt, &opt, _ctx);
2023  _c10 = Wosize_val(_v_clevel) / Double_wosize;
2024  clevel = camlidl_malloc(_c10 * sizeof(double ), _ctx);
2025  for (_c11 = 0; _c11 < _c10; _c11++) {
2026  clevel[_c11] = Double_field(_v_clevel, _c11);
2027  }
2028  nlevel = _c10;
2029  c_plmeshc(x, y, z, nx, ny, opt, clevel, nlevel);
2030  camlidl_free(_ctx);
2031  return Val_unit;
2032 }
2033 
2035 {
2036  int *p_strm; /*out*/
2037  int _c1;
2038  value _vres;
2039 
2040  p_strm = &_c1;
2041  c_plmkstrm(p_strm);
2042  _vres = Val_int(*p_strm);
2043  return _vres;
2044 }
2045 
2047  value _v_side,
2048  value _v_disp,
2049  value _v_pos,
2050  value _v_just,
2051  value _v_text)
2052 {
2053  char const *side; /*in*/
2054  double disp; /*in*/
2055  double pos; /*in*/
2056  double just; /*in*/
2057  char const *text; /*in*/
2058  side = String_val(_v_side);
2059  disp = Double_val(_v_disp);
2060  pos = Double_val(_v_pos);
2061  just = Double_val(_v_just);
2062  text = String_val(_v_text);
2063  c_plmtex(side, disp, pos, just, text);
2064  return Val_unit;
2065 }
2066 
2068  value _v_side,
2069  value _v_disp,
2070  value _v_pos,
2071  value _v_just,
2072  value _v_text)
2073 {
2074  char const *side; /*in*/
2075  double disp; /*in*/
2076  double pos; /*in*/
2077  double just; /*in*/
2078  char const *text; /*in*/
2079  side = String_val(_v_side);
2080  disp = Double_val(_v_disp);
2081  pos = Double_val(_v_pos);
2082  just = Double_val(_v_just);
2083  text = String_val(_v_text);
2084  c_plmtex3(side, disp, pos, just, text);
2085  return Val_unit;
2086 }
2087 
2089  value _v_x,
2090  value _v_y,
2091  value _v_z,
2092  value _v_opt,
2093  value _v_side)
2094 {
2095  double *x; /*in*/
2096  double *y; /*in*/
2097  double **z; /*in*/
2098  int nx; /*in*/
2099  int ny; /*in*/
2100  plplot3d_style opt; /*in*/
2101  int side; /*in*/
2102  mlsize_t _c1;
2103  mlsize_t _c2;
2104  mlsize_t _c3;
2105  mlsize_t _c4;
2106  mlsize_t _c5;
2107  mlsize_t _c6;
2108  value _v7;
2109  mlsize_t _c8;
2110  mlsize_t _c9;
2111  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
2112  camlidl_ctx _ctx = &_ctxs;
2113  _c1 = Wosize_val(_v_x) / Double_wosize;
2114  x = camlidl_malloc(_c1 * sizeof(double ), _ctx);
2115  for (_c2 = 0; _c2 < _c1; _c2++) {
2116  x[_c2] = Double_field(_v_x, _c2);
2117  }
2118  nx = _c1;
2119  _c3 = Wosize_val(_v_y) / Double_wosize;
2120  y = camlidl_malloc(_c3 * sizeof(double ), _ctx);
2121  for (_c4 = 0; _c4 < _c3; _c4++) {
2122  y[_c4] = Double_field(_v_y, _c4);
2123  }
2124  ny = _c3;
2125  _c5 = Wosize_val(_v_z);
2126  z = camlidl_malloc(_c5 * sizeof(double *), _ctx);
2127  for (_c6 = 0; _c6 < _c5; _c6++) {
2128  _v7 = Field(_v_z, _c6);
2129  _c8 = Wosize_val(_v7) / Double_wosize;
2130  z[_c6] = camlidl_malloc(_c8 * sizeof(double ), _ctx);
2131  for (_c9 = 0; _c9 < _c8; _c9++) {
2132  z[_c6][_c9] = Double_field(_v7, _c9);
2133  }
2134  ny = _c8;
2135  }
2136  nx = _c5;
2137  camlidl_ml2c_plplot_core_plplot3d_style(_v_opt, &opt, _ctx);
2138  side = Int_val(_v_side);
2139  c_plot3d(x, y, z, nx, ny, opt, side);
2140  camlidl_free(_ctx);
2141  return Val_unit;
2142 }
2143 
2145  value _v_x,
2146  value _v_y,
2147  value _v_z,
2148  value _v_opt,
2149  value _v_clevel)
2150 {
2151  double *x; /*in*/
2152  double *y; /*in*/
2153  double **z; /*in*/
2154  int nx; /*in*/
2155  int ny; /*in*/
2156  plplot3d_style opt; /*in*/
2157  double *clevel; /*in*/
2158  int nlevel; /*in*/
2159  mlsize_t _c1;
2160  mlsize_t _c2;
2161  mlsize_t _c3;
2162  mlsize_t _c4;
2163  mlsize_t _c5;
2164  mlsize_t _c6;
2165  value _v7;
2166  mlsize_t _c8;
2167  mlsize_t _c9;
2168  mlsize_t _c10;
2169  mlsize_t _c11;
2170  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
2171  camlidl_ctx _ctx = &_ctxs;
2172  _c1 = Wosize_val(_v_x) / Double_wosize;
2173  x = camlidl_malloc(_c1 * sizeof(double ), _ctx);
2174  for (_c2 = 0; _c2 < _c1; _c2++) {
2175  x[_c2] = Double_field(_v_x, _c2);
2176  }
2177  nx = _c1;
2178  _c3 = Wosize_val(_v_y) / Double_wosize;
2179  y = camlidl_malloc(_c3 * sizeof(double ), _ctx);
2180  for (_c4 = 0; _c4 < _c3; _c4++) {
2181  y[_c4] = Double_field(_v_y, _c4);
2182  }
2183  ny = _c3;
2184  _c5 = Wosize_val(_v_z);
2185  z = camlidl_malloc(_c5 * sizeof(double *), _ctx);
2186  for (_c6 = 0; _c6 < _c5; _c6++) {
2187  _v7 = Field(_v_z, _c6);
2188  _c8 = Wosize_val(_v7) / Double_wosize;
2189  z[_c6] = camlidl_malloc(_c8 * sizeof(double ), _ctx);
2190  for (_c9 = 0; _c9 < _c8; _c9++) {
2191  z[_c6][_c9] = Double_field(_v7, _c9);
2192  }
2193  ny = _c8;
2194  }
2195  nx = _c5;
2196  camlidl_ml2c_plplot_core_plplot3d_style(_v_opt, &opt, _ctx);
2197  _c10 = Wosize_val(_v_clevel) / Double_wosize;
2198  clevel = camlidl_malloc(_c10 * sizeof(double ), _ctx);
2199  for (_c11 = 0; _c11 < _c10; _c11++) {
2200  clevel[_c11] = Double_field(_v_clevel, _c11);
2201  }
2202  nlevel = _c10;
2203  c_plot3dc(x, y, z, nx, ny, opt, clevel, nlevel);
2204  camlidl_free(_ctx);
2205  return Val_unit;
2206 }
2207 
2209  value _v_inc,
2210  value _v_del)
2211 {
2212  int nlin; /*in*/
2213  int *inc; /*in*/
2214  int *del; /*in*/
2215  mlsize_t _c1;
2216  mlsize_t _c2;
2217  value _v3;
2218  mlsize_t _c4;
2219  mlsize_t _c5;
2220  value _v6;
2221  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
2222  camlidl_ctx _ctx = &_ctxs;
2223  _c1 = Wosize_val(_v_inc);
2224  inc = camlidl_malloc(_c1 * sizeof(int ), _ctx);
2225  for (_c2 = 0; _c2 < _c1; _c2++) {
2226  _v3 = Field(_v_inc, _c2);
2227  inc[_c2] = Int_val(_v3);
2228  }
2229  nlin = _c1;
2230  _c4 = Wosize_val(_v_del);
2231  del = camlidl_malloc(_c4 * sizeof(int ), _ctx);
2232  for (_c5 = 0; _c5 < _c4; _c5++) {
2233  _v6 = Field(_v_del, _c5);
2234  del[_c5] = Int_val(_v6);
2235  }
2236  nlin = _c4;
2237  c_plpat(nlin, inc, del);
2238  camlidl_free(_ctx);
2239  return Val_unit;
2240 }
2241 
2243  value _v_n,
2244  value _v_x1,
2245  value _v_y1,
2246  value _v_x2,
2247  value _v_y2)
2248 {
2249  int n; /*in*/
2250  double x1; /*in*/
2251  double y1; /*in*/
2252  double x2; /*in*/
2253  double y2; /*in*/
2254  n = Int_val(_v_n);
2255  x1 = Double_val(_v_x1);
2256  y1 = Double_val(_v_y1);
2257  x2 = Double_val(_v_x2);
2258  y2 = Double_val(_v_y2);
2259  c_plpath(n, x1, y1, x2, y2);
2260  return Val_unit;
2261 }
2262 
2264  value _v_x,
2265  value _v_y,
2266  value _v_code)
2267 {
2268  int n; /*in*/
2269  double *x; /*in*/
2270  double *y; /*in*/
2271  int code; /*in*/
2272  mlsize_t _c1;
2273  mlsize_t _c2;
2274  mlsize_t _c3;
2275  mlsize_t _c4;
2276  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
2277  camlidl_ctx _ctx = &_ctxs;
2278  _c1 = Wosize_val(_v_x) / Double_wosize;
2279  x = camlidl_malloc(_c1 * sizeof(double ), _ctx);
2280  for (_c2 = 0; _c2 < _c1; _c2++) {
2281  x[_c2] = Double_field(_v_x, _c2);
2282  }
2283  n = _c1;
2284  _c3 = Wosize_val(_v_y) / Double_wosize;
2285  y = camlidl_malloc(_c3 * sizeof(double ), _ctx);
2286  for (_c4 = 0; _c4 < _c3; _c4++) {
2287  y[_c4] = Double_field(_v_y, _c4);
2288  }
2289  n = _c3;
2290  code = Int_val(_v_code);
2291  c_plpoin(n, x, y, code);
2292  camlidl_free(_ctx);
2293  return Val_unit;
2294 }
2295 
2297  value _v_x,
2298  value _v_y,
2299  value _v_z,
2300  value _v_code)
2301 {
2302  int n; /*in*/
2303  double *x; /*in*/
2304  double *y; /*in*/
2305  double *z; /*in*/
2306  int code; /*in*/
2307  mlsize_t _c1;
2308  mlsize_t _c2;
2309  mlsize_t _c3;
2310  mlsize_t _c4;
2311  mlsize_t _c5;
2312  mlsize_t _c6;
2313  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
2314  camlidl_ctx _ctx = &_ctxs;
2315  _c1 = Wosize_val(_v_x) / Double_wosize;
2316  x = camlidl_malloc(_c1 * sizeof(double ), _ctx);
2317  for (_c2 = 0; _c2 < _c1; _c2++) {
2318  x[_c2] = Double_field(_v_x, _c2);
2319  }
2320  n = _c1;
2321  _c3 = Wosize_val(_v_y) / Double_wosize;
2322  y = camlidl_malloc(_c3 * sizeof(double ), _ctx);
2323  for (_c4 = 0; _c4 < _c3; _c4++) {
2324  y[_c4] = Double_field(_v_y, _c4);
2325  }
2326  n = _c3;
2327  _c5 = Wosize_val(_v_z) / Double_wosize;
2328  z = camlidl_malloc(_c5 * sizeof(double ), _ctx);
2329  for (_c6 = 0; _c6 < _c5; _c6++) {
2330  z[_c6] = Double_field(_v_z, _c6);
2331  }
2332  n = _c5;
2333  code = Int_val(_v_code);
2334  c_plpoin3(n, x, y, z, code);
2335  camlidl_free(_ctx);
2336  return Val_unit;
2337 }
2338 
2340  value _v_setp,
2341  value _v_prec)
2342 {
2343  int setp; /*in*/
2344  int prec; /*in*/
2345  setp = Int_val(_v_setp);
2346  prec = Int_val(_v_prec);
2347  c_plprec(setp, prec);
2348  return Val_unit;
2349 }
2350 
2352  value _v_patt)
2353 {
2354  int patt; /*in*/
2355  patt = Int_val(_v_patt);
2356  c_plpsty(patt);
2357  return Val_unit;
2358 }
2359 
2361  value _v_x,
2362  value _v_y,
2363  value _v_dx,
2364  value _v_dy,
2365  value _v_just,
2366  value _v_text)
2367 {
2368  double x; /*in*/
2369  double y; /*in*/
2370  double dx; /*in*/
2371  double dy; /*in*/
2372  double just; /*in*/
2373  char const *text; /*in*/
2374  x = Double_val(_v_x);
2375  y = Double_val(_v_y);
2376  dx = Double_val(_v_dx);
2377  dy = Double_val(_v_dy);
2378  just = Double_val(_v_just);
2379  text = String_val(_v_text);
2380  c_plptex(x, y, dx, dy, just, text);
2381  return Val_unit;
2382 }
2383 
2385 {
2386  return camlidl_plplot_core_c_plptex(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]);
2387 }
2388 
2390  value _v_wx,
2391  value _v_wy,
2392  value _v_wz,
2393  value _v_dx,
2394  value _v_dy,
2395  value _v_dz,
2396  value _v_sx,
2397  value _v_sy,
2398  value _v_sz,
2399  value _v_just,
2400  value _v_text)
2401 {
2402  double wx; /*in*/
2403  double wy; /*in*/
2404  double wz; /*in*/
2405  double dx; /*in*/
2406  double dy; /*in*/
2407  double dz; /*in*/
2408  double sx; /*in*/
2409  double sy; /*in*/
2410  double sz; /*in*/
2411  double just; /*in*/
2412  char const *text; /*in*/
2413  wx = Double_val(_v_wx);
2414  wy = Double_val(_v_wy);
2415  wz = Double_val(_v_wz);
2416  dx = Double_val(_v_dx);
2417  dy = Double_val(_v_dy);
2418  dz = Double_val(_v_dz);
2419  sx = Double_val(_v_sx);
2420  sy = Double_val(_v_sy);
2421  sz = Double_val(_v_sz);
2422  just = Double_val(_v_just);
2423  text = String_val(_v_text);
2424  c_plptex3(wx, wy, wz, dx, dy, dz, sx, sy, sz, just, text);
2425  return Val_unit;
2426 }
2427 
2429 {
2430  return camlidl_plplot_core_c_plptex3(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10]);
2431 }
2432 
2434 {
2435  double _res;
2436  value _vres;
2437 
2438  _res = c_plrandd();
2439  _vres = copy_double(_res);
2440  return _vres;
2441 }
2442 
2444 {
2445  c_plreplot();
2446  return Val_unit;
2447 }
2448 
2450  value _v_r,
2451  value _v_g,
2452  value _v_b)
2453 {
2454  double r; /*in*/
2455  double g; /*in*/
2456  double b; /*in*/
2457  double *p_h; /*out*/
2458  double *p_l; /*out*/
2459  double *p_s; /*out*/
2460  double _c1;
2461  double _c2;
2462  double _c3;
2463  value _vresult;
2464  value _vres[3] = { 0, 0, 0, };
2465 
2466  r = Double_val(_v_r);
2467  g = Double_val(_v_g);
2468  b = Double_val(_v_b);
2469  p_h = &_c1;
2470  p_l = &_c2;
2471  p_s = &_c3;
2472  c_plrgbhls(r, g, b, p_h, p_l, p_s);
2473  Begin_roots_block(_vres, 3)
2474  _vres[0] = copy_double(*p_h);
2475  _vres[1] = copy_double(*p_l);
2476  _vres[2] = copy_double(*p_s);
2477  _vresult = camlidl_alloc_small(3, 0);
2478  Field(_vresult, 0) = _vres[0];
2479  Field(_vresult, 1) = _vres[1];
2480  Field(_vresult, 2) = _vres[2];
2481  End_roots()
2482  return _vresult;
2483 }
2484 
2486  value _v_def,
2487  value _v_scale)
2488 {
2489  double def; /*in*/
2490  double scale; /*in*/
2491  def = Double_val(_v_def);
2492  scale = Double_val(_v_scale);
2493  c_plschr(def, scale);
2494  return Val_unit;
2495 }
2496 
2498  value _v_r,
2499  value _v_g,
2500  value _v_b)
2501 {
2502  int *r; /*in*/
2503  int *g; /*in*/
2504  int *b; /*in*/
2505  int ncol0; /*in*/
2506  mlsize_t _c1;
2507  mlsize_t _c2;
2508  value _v3;
2509  mlsize_t _c4;
2510  mlsize_t _c5;
2511  value _v6;
2512  mlsize_t _c7;
2513  mlsize_t _c8;
2514  value _v9;
2515  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
2516  camlidl_ctx _ctx = &_ctxs;
2517  _c1 = Wosize_val(_v_r);
2518  r = camlidl_malloc(_c1 * sizeof(int ), _ctx);
2519  for (_c2 = 0; _c2 < _c1; _c2++) {
2520  _v3 = Field(_v_r, _c2);
2521  r[_c2] = Int_val(_v3);
2522  }
2523  ncol0 = _c1;
2524  _c4 = Wosize_val(_v_g);
2525  g = camlidl_malloc(_c4 * sizeof(int ), _ctx);
2526  for (_c5 = 0; _c5 < _c4; _c5++) {
2527  _v6 = Field(_v_g, _c5);
2528  g[_c5] = Int_val(_v6);
2529  }
2530  ncol0 = _c4;
2531  _c7 = Wosize_val(_v_b);
2532  b = camlidl_malloc(_c7 * sizeof(int ), _ctx);
2533  for (_c8 = 0; _c8 < _c7; _c8++) {
2534  _v9 = Field(_v_b, _c8);
2535  b[_c8] = Int_val(_v9);
2536  }
2537  ncol0 = _c7;
2538  c_plscmap0(r, g, b, ncol0);
2539  camlidl_free(_ctx);
2540  return Val_unit;
2541 }
2542 
2544  value _v_r,
2545  value _v_g,
2546  value _v_b,
2547  value _v_a)
2548 {
2549  int *r; /*in*/
2550  int *g; /*in*/
2551  int *b; /*in*/
2552  double *a; /*in*/
2553  int ncol0; /*in*/
2554  mlsize_t _c1;
2555  mlsize_t _c2;
2556  value _v3;
2557  mlsize_t _c4;
2558  mlsize_t _c5;
2559  value _v6;
2560  mlsize_t _c7;
2561  mlsize_t _c8;
2562  value _v9;
2563  mlsize_t _c10;
2564  mlsize_t _c11;
2565  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
2566  camlidl_ctx _ctx = &_ctxs;
2567  _c1 = Wosize_val(_v_r);
2568  r = camlidl_malloc(_c1 * sizeof(int ), _ctx);
2569  for (_c2 = 0; _c2 < _c1; _c2++) {
2570  _v3 = Field(_v_r, _c2);
2571  r[_c2] = Int_val(_v3);
2572  }
2573  ncol0 = _c1;
2574  _c4 = Wosize_val(_v_g);
2575  g = camlidl_malloc(_c4 * sizeof(int ), _ctx);
2576  for (_c5 = 0; _c5 < _c4; _c5++) {
2577  _v6 = Field(_v_g, _c5);
2578  g[_c5] = Int_val(_v6);
2579  }
2580  ncol0 = _c4;
2581  _c7 = Wosize_val(_v_b);
2582  b = camlidl_malloc(_c7 * sizeof(int ), _ctx);
2583  for (_c8 = 0; _c8 < _c7; _c8++) {
2584  _v9 = Field(_v_b, _c8);
2585  b[_c8] = Int_val(_v9);
2586  }
2587  ncol0 = _c7;
2588  _c10 = Wosize_val(_v_a) / Double_wosize;
2589  a = camlidl_malloc(_c10 * sizeof(double ), _ctx);
2590  for (_c11 = 0; _c11 < _c10; _c11++) {
2591  a[_c11] = Double_field(_v_a, _c11);
2592  }
2593  ncol0 = _c10;
2594  c_plscmap0a(r, g, b, a, ncol0);
2595  camlidl_free(_ctx);
2596  return Val_unit;
2597 }
2598 
2600  value _v_ncol0)
2601 {
2602  int ncol0; /*in*/
2603  ncol0 = Int_val(_v_ncol0);
2604  c_plscmap0n(ncol0);
2605  return Val_unit;
2606 }
2607 
2609  value _v_r,
2610  value _v_g,
2611  value _v_b)
2612 {
2613  int *r; /*in*/
2614  int *g; /*in*/
2615  int *b; /*in*/
2616  int ncol1; /*in*/
2617  mlsize_t _c1;
2618  mlsize_t _c2;
2619  value _v3;
2620  mlsize_t _c4;
2621  mlsize_t _c5;
2622  value _v6;
2623  mlsize_t _c7;
2624  mlsize_t _c8;
2625  value _v9;
2626  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
2627  camlidl_ctx _ctx = &_ctxs;
2628  _c1 = Wosize_val(_v_r);
2629  r = camlidl_malloc(_c1 * sizeof(int ), _ctx);
2630  for (_c2 = 0; _c2 < _c1; _c2++) {
2631  _v3 = Field(_v_r, _c2);
2632  r[_c2] = Int_val(_v3);
2633  }
2634  ncol1 = _c1;
2635  _c4 = Wosize_val(_v_g);
2636  g = camlidl_malloc(_c4 * sizeof(int ), _ctx);
2637  for (_c5 = 0; _c5 < _c4; _c5++) {
2638  _v6 = Field(_v_g, _c5);
2639  g[_c5] = Int_val(_v6);
2640  }
2641  ncol1 = _c4;
2642  _c7 = Wosize_val(_v_b);
2643  b = camlidl_malloc(_c7 * sizeof(int ), _ctx);
2644  for (_c8 = 0; _c8 < _c7; _c8++) {
2645  _v9 = Field(_v_b, _c8);
2646  b[_c8] = Int_val(_v9);
2647  }
2648  ncol1 = _c7;
2649  c_plscmap1(r, g, b, ncol1);
2650  camlidl_free(_ctx);
2651  return Val_unit;
2652 }
2653 
2655  value _v_r,
2656  value _v_g,
2657  value _v_b,
2658  value _v_a)
2659 {
2660  int *r; /*in*/
2661  int *g; /*in*/
2662  int *b; /*in*/
2663  double *a; /*in*/
2664  int ncol1; /*in*/
2665  mlsize_t _c1;
2666  mlsize_t _c2;
2667  value _v3;
2668  mlsize_t _c4;
2669  mlsize_t _c5;
2670  value _v6;
2671  mlsize_t _c7;
2672  mlsize_t _c8;
2673  value _v9;
2674  mlsize_t _c10;
2675  mlsize_t _c11;
2676  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
2677  camlidl_ctx _ctx = &_ctxs;
2678  _c1 = Wosize_val(_v_r);
2679  r = camlidl_malloc(_c1 * sizeof(int ), _ctx);
2680  for (_c2 = 0; _c2 < _c1; _c2++) {
2681  _v3 = Field(_v_r, _c2);
2682  r[_c2] = Int_val(_v3);
2683  }
2684  ncol1 = _c1;
2685  _c4 = Wosize_val(_v_g);
2686  g = camlidl_malloc(_c4 * sizeof(int ), _ctx);
2687  for (_c5 = 0; _c5 < _c4; _c5++) {
2688  _v6 = Field(_v_g, _c5);
2689  g[_c5] = Int_val(_v6);
2690  }
2691  ncol1 = _c4;
2692  _c7 = Wosize_val(_v_b);
2693  b = camlidl_malloc(_c7 * sizeof(int ), _ctx);
2694  for (_c8 = 0; _c8 < _c7; _c8++) {
2695  _v9 = Field(_v_b, _c8);
2696  b[_c8] = Int_val(_v9);
2697  }
2698  ncol1 = _c7;
2699  _c10 = Wosize_val(_v_a) / Double_wosize;
2700  a = camlidl_malloc(_c10 * sizeof(double ), _ctx);
2701  for (_c11 = 0; _c11 < _c10; _c11++) {
2702  a[_c11] = Double_field(_v_a, _c11);
2703  }
2704  ncol1 = _c10;
2705  c_plscmap1a(r, g, b, a, ncol1);
2706  camlidl_free(_ctx);
2707  return Val_unit;
2708 }
2709 
2711  value _v_itype,
2712  value _v_intensity,
2713  value _v_coord1,
2714  value _v_coord2,
2715  value _v_coord3,
2716  value _v_alt_hue_path)
2717 {
2718  int itype; /*in*/
2719  int npts; /*in*/
2720  double *intensity; /*in*/
2721  double *coord1; /*in*/
2722  double *coord2; /*in*/
2723  double *coord3; /*in*/
2724  int *alt_hue_path; /*in*/
2725  mlsize_t _c1;
2726  mlsize_t _c2;
2727  mlsize_t _c3;
2728  mlsize_t _c4;
2729  mlsize_t _c5;
2730  mlsize_t _c6;
2731  mlsize_t _c7;
2732  mlsize_t _c8;
2733  value _v9;
2734  mlsize_t _c10;
2735  mlsize_t _c11;
2736  value _v12;
2737  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
2738  camlidl_ctx _ctx = &_ctxs;
2739  itype = Int_val(_v_itype);
2740  _c1 = Wosize_val(_v_intensity) / Double_wosize;
2741  intensity = camlidl_malloc(_c1 * sizeof(double ), _ctx);
2742  for (_c2 = 0; _c2 < _c1; _c2++) {
2743  intensity[_c2] = Double_field(_v_intensity, _c2);
2744  }
2745  npts = _c1;
2746  _c3 = Wosize_val(_v_coord1) / Double_wosize;
2747  coord1 = camlidl_malloc(_c3 * sizeof(double ), _ctx);
2748  for (_c4 = 0; _c4 < _c3; _c4++) {
2749  coord1[_c4] = Double_field(_v_coord1, _c4);
2750  }
2751  npts = _c3;
2752  _c5 = Wosize_val(_v_coord2) / Double_wosize;
2753  coord2 = camlidl_malloc(_c5 * sizeof(double ), _ctx);
2754  for (_c6 = 0; _c6 < _c5; _c6++) {
2755  coord2[_c6] = Double_field(_v_coord2, _c6);
2756  }
2757  npts = _c5;
2758  _c7 = Wosize_val(_v_coord3) / Double_wosize;
2759  coord3 = camlidl_malloc(_c7 * sizeof(double ), _ctx);
2760  for (_c8 = 0; _c8 < _c7; _c8++) {
2761  coord3[_c8] = Double_field(_v_coord3, _c8);
2762  }
2763  npts = _c7;
2764  if (_v_alt_hue_path == Val_int(0)) {
2765  alt_hue_path = NULL;
2766  } else {
2767  _v9 = Field(_v_alt_hue_path, 0);
2768  _c10 = Wosize_val(_v9);
2769  alt_hue_path = camlidl_malloc(_c10 * sizeof(int ), _ctx);
2770  for (_c11 = 0; _c11 < _c10; _c11++) {
2771  _v12 = Field(_v9, _c11);
2772  alt_hue_path[_c11] = Int_val(_v12);
2773  }
2774  npts = _c10;
2775  }
2776  c_plscmap1l(itype, npts, intensity, coord1, coord2, coord3, alt_hue_path);
2777  camlidl_free(_ctx);
2778  return Val_unit;
2779 }
2780 
2782 {
2783  return camlidl_plplot_core_c_plscmap1l(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]);
2784 }
2785 
2787  value _v_itype,
2788  value _v_intensity,
2789  value _v_coord1,
2790  value _v_coord2,
2791  value _v_coord3,
2792  value _v_a,
2793  value _v_alt_hue_path)
2794 {
2795  int itype; /*in*/
2796  int npts; /*in*/
2797  double *intensity; /*in*/
2798  double *coord1; /*in*/
2799  double *coord2; /*in*/
2800  double *coord3; /*in*/
2801  double *a; /*in*/
2802  int *alt_hue_path; /*in*/
2803  mlsize_t _c1;
2804  mlsize_t _c2;
2805  mlsize_t _c3;
2806  mlsize_t _c4;
2807  mlsize_t _c5;
2808  mlsize_t _c6;
2809  mlsize_t _c7;
2810  mlsize_t _c8;
2811  mlsize_t _c9;
2812  mlsize_t _c10;
2813  value _v11;
2814  mlsize_t _c12;
2815  mlsize_t _c13;
2816  value _v14;
2817  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
2818  camlidl_ctx _ctx = &_ctxs;
2819  itype = Int_val(_v_itype);
2820  _c1 = Wosize_val(_v_intensity) / Double_wosize;
2821  intensity = camlidl_malloc(_c1 * sizeof(double ), _ctx);
2822  for (_c2 = 0; _c2 < _c1; _c2++) {
2823  intensity[_c2] = Double_field(_v_intensity, _c2);
2824  }
2825  npts = _c1;
2826  _c3 = Wosize_val(_v_coord1) / Double_wosize;
2827  coord1 = camlidl_malloc(_c3 * sizeof(double ), _ctx);
2828  for (_c4 = 0; _c4 < _c3; _c4++) {
2829  coord1[_c4] = Double_field(_v_coord1, _c4);
2830  }
2831  npts = _c3;
2832  _c5 = Wosize_val(_v_coord2) / Double_wosize;
2833  coord2 = camlidl_malloc(_c5 * sizeof(double ), _ctx);
2834  for (_c6 = 0; _c6 < _c5; _c6++) {
2835  coord2[_c6] = Double_field(_v_coord2, _c6);
2836  }
2837  npts = _c5;
2838  _c7 = Wosize_val(_v_coord3) / Double_wosize;
2839  coord3 = camlidl_malloc(_c7 * sizeof(double ), _ctx);
2840  for (_c8 = 0; _c8 < _c7; _c8++) {
2841  coord3[_c8] = Double_field(_v_coord3, _c8);
2842  }
2843  npts = _c7;
2844  _c9 = Wosize_val(_v_a) / Double_wosize;
2845  a = camlidl_malloc(_c9 * sizeof(double ), _ctx);
2846  for (_c10 = 0; _c10 < _c9; _c10++) {
2847  a[_c10] = Double_field(_v_a, _c10);
2848  }
2849  npts = _c9;
2850  if (_v_alt_hue_path == Val_int(0)) {
2851  alt_hue_path = NULL;
2852  } else {
2853  _v11 = Field(_v_alt_hue_path, 0);
2854  _c12 = Wosize_val(_v11);
2855  alt_hue_path = camlidl_malloc(_c12 * sizeof(int ), _ctx);
2856  for (_c13 = 0; _c13 < _c12; _c13++) {
2857  _v14 = Field(_v11, _c13);
2858  alt_hue_path[_c13] = Int_val(_v14);
2859  }
2860  npts = _c12;
2861  }
2862  c_plscmap1la(itype, npts, intensity, coord1, coord2, coord3, a, alt_hue_path);
2863  camlidl_free(_ctx);
2864  return Val_unit;
2865 }
2866 
2868 {
2869  return camlidl_plplot_core_c_plscmap1la(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6]);
2870 }
2871 
2873  value _v_ncol1)
2874 {
2875  int ncol1; /*in*/
2876  ncol1 = Int_val(_v_ncol1);
2877  c_plscmap1n(ncol1);
2878  return Val_unit;
2879 }
2880 
2882  value _v_min_color,
2883  value _v_max_color)
2884 {
2885  double min_color; /*in*/
2886  double max_color; /*in*/
2887  min_color = Double_val(_v_min_color);
2888  max_color = Double_val(_v_max_color);
2889  c_plscmap1_range(min_color, max_color);
2890  return Val_unit;
2891 }
2892 
2894  value _v_icol0,
2895  value _v_r,
2896  value _v_g,
2897  value _v_b)
2898 {
2899  int icol0; /*in*/
2900  int r; /*in*/
2901  int g; /*in*/
2902  int b; /*in*/
2903  icol0 = Int_val(_v_icol0);
2904  r = Int_val(_v_r);
2905  g = Int_val(_v_g);
2906  b = Int_val(_v_b);
2907  c_plscol0(icol0, r, g, b);
2908  return Val_unit;
2909 }
2910 
2912  value _v_icol0,
2913  value _v_r,
2914  value _v_g,
2915  value _v_b,
2916  value _v_a)
2917 {
2918  int icol0; /*in*/
2919  int r; /*in*/
2920  int g; /*in*/
2921  int b; /*in*/
2922  double a; /*in*/
2923  icol0 = Int_val(_v_icol0);
2924  r = Int_val(_v_r);
2925  g = Int_val(_v_g);
2926  b = Int_val(_v_b);
2927  a = Double_val(_v_a);
2928  c_plscol0a(icol0, r, g, b, a);
2929  return Val_unit;
2930 }
2931 
2933  value _v_r,
2934  value _v_g,
2935  value _v_b)
2936 {
2937  int r; /*in*/
2938  int g; /*in*/
2939  int b; /*in*/
2940  r = Int_val(_v_r);
2941  g = Int_val(_v_g);
2942  b = Int_val(_v_b);
2943  c_plscolbg(r, g, b);
2944  return Val_unit;
2945 }
2946 
2948  value _v_r,
2949  value _v_g,
2950  value _v_b,
2951  value _v_a)
2952 {
2953  int r; /*in*/
2954  int g; /*in*/
2955  int b; /*in*/
2956  double a; /*in*/
2957  r = Int_val(_v_r);
2958  g = Int_val(_v_g);
2959  b = Int_val(_v_b);
2960  a = Double_val(_v_a);
2961  c_plscolbga(r, g, b, a);
2962  return Val_unit;
2963 }
2964 
2966  value _v_color)
2967 {
2968  int color; /*in*/
2969  color = Int_val(_v_color);
2970  c_plscolor(color);
2971  return Val_unit;
2972 }
2973 
2975  value _v_compression)
2976 {
2977  int compression; /*in*/
2978  compression = Int_val(_v_compression);
2979  c_plscompression(compression);
2980  return Val_unit;
2981 }
2982 
2984  value _v_devname)
2985 {
2986  char const *devname; /*in*/
2987  devname = String_val(_v_devname);
2988  c_plsdev(devname);
2989  return Val_unit;
2990 }
2991 
2993  value _v_mar,
2994  value _v_aspect,
2995  value _v_jx,
2996  value _v_jy)
2997 {
2998  double mar; /*in*/
2999  double aspect; /*in*/
3000  double jx; /*in*/
3001  double jy; /*in*/
3002  mar = Double_val(_v_mar);
3003  aspect = Double_val(_v_aspect);
3004  jx = Double_val(_v_jx);
3005  jy = Double_val(_v_jy);
3006  c_plsdidev(mar, aspect, jx, jy);
3007  return Val_unit;
3008 }
3009 
3011  value _v_dimxmin,
3012  value _v_dimxmax,
3013  value _v_dimymin,
3014  value _v_dimymax,
3015  value _v_dimxpmm,
3016  value _v_dimypmm)
3017 {
3018  int dimxmin; /*in*/
3019  int dimxmax; /*in*/
3020  int dimymin; /*in*/
3021  int dimymax; /*in*/
3022  double dimxpmm; /*in*/
3023  double dimypmm; /*in*/
3024  dimxmin = Int_val(_v_dimxmin);
3025  dimxmax = Int_val(_v_dimxmax);
3026  dimymin = Int_val(_v_dimymin);
3027  dimymax = Int_val(_v_dimymax);
3028  dimxpmm = Double_val(_v_dimxpmm);
3029  dimypmm = Double_val(_v_dimypmm);
3030  c_plsdimap(dimxmin, dimxmax, dimymin, dimymax, dimxpmm, dimypmm);
3031  return Val_unit;
3032 }
3033 
3035 {
3036  return camlidl_plplot_core_c_plsdimap(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]);
3037 }
3038 
3040  value _v_rot)
3041 {
3042  double rot; /*in*/
3043  rot = Double_val(_v_rot);
3044  c_plsdiori(rot);
3045  return Val_unit;
3046 }
3047 
3049  value _v_xmin,
3050  value _v_ymin,
3051  value _v_xmax,
3052  value _v_ymax)
3053 {
3054  double xmin; /*in*/
3055  double ymin; /*in*/
3056  double xmax; /*in*/
3057  double ymax; /*in*/
3058  xmin = Double_val(_v_xmin);
3059  ymin = Double_val(_v_ymin);
3060  xmax = Double_val(_v_xmax);
3061  ymax = Double_val(_v_ymax);
3062  c_plsdiplt(xmin, ymin, xmax, ymax);
3063  return Val_unit;
3064 }
3065 
3067  value _v_xmin,
3068  value _v_ymin,
3069  value _v_xmax,
3070  value _v_ymax)
3071 {
3072  double xmin; /*in*/
3073  double ymin; /*in*/
3074  double xmax; /*in*/
3075  double ymax; /*in*/
3076  xmin = Double_val(_v_xmin);
3077  ymin = Double_val(_v_ymin);
3078  xmax = Double_val(_v_xmax);
3079  ymax = Double_val(_v_ymax);
3080  c_plsdiplz(xmin, ymin, xmax, ymax);
3081  return Val_unit;
3082 }
3083 
3085  value _v_s)
3086 {
3087  unsigned int s; /*in*/
3088  s = Int64_val(_v_s);
3089  c_plseed(s);
3090  return Val_unit;
3091 }
3092 
3094  value _v_esc)
3095 {
3096  char esc; /*in*/
3097  esc = Int_val(_v_esc);
3098  c_plsesc(esc);
3099  return Val_unit;
3100 }
3101 
3103  value _v_fam,
3104  value _v_num,
3105  value _v_bmax)
3106 {
3107  int fam; /*in*/
3108  int num; /*in*/
3109  int bmax; /*in*/
3110  fam = Int_val(_v_fam);
3111  num = Int_val(_v_num);
3112  bmax = Int_val(_v_bmax);
3113  c_plsfam(fam, num, bmax);
3114  return Val_unit;
3115 }
3116 
3118  value _v_fci)
3119 {
3120  long long fci; /*in*/
3121  fci = Int64_val(_v_fci);
3122  c_plsfci(fci);
3123  return Val_unit;
3124 }
3125 
3127  value _v_fnam)
3128 {
3129  char const *fnam; /*in*/
3130  fnam = String_val(_v_fnam);
3131  c_plsfnam(fnam);
3132  return Val_unit;
3133 }
3134 
3136  value _v_family,
3137  value _v_style,
3138  value _v_weight)
3139 {
3140  int family; /*in*/
3141  int style; /*in*/
3142  int weight; /*in*/
3146  c_plsfont(family, style, weight);
3147  return Val_unit;
3148 }
3149 
3151  value _v_def,
3152  value _v_scale)
3153 {
3154  double def; /*in*/
3155  double scale; /*in*/
3156  def = Double_val(_v_def);
3157  scale = Double_val(_v_scale);
3158  c_plsmaj(def, scale);
3159  return Val_unit;
3160 }
3161 
3163  value _v_def,
3164  value _v_scale)
3165 {
3166  double def; /*in*/
3167  double scale; /*in*/
3168  def = Double_val(_v_def);
3169  scale = Double_val(_v_scale);
3170  c_plsmin(def, scale);
3171  return Val_unit;
3172 }
3173 
3175  value _v_mode)
3176 {
3177  int mode; /*in*/
3179  c_plsdrawmode(mode);
3180  return Val_unit;
3181 }
3182 
3184  value _v_ori)
3185 {
3186  int ori; /*in*/
3187  ori = Int_val(_v_ori);
3188  c_plsori(ori);
3189  return Val_unit;
3190 }
3191 
3193  value _v_xp,
3194  value _v_yp,
3195  value _v_xleng,
3196  value _v_yleng,
3197  value _v_xoff,
3198  value _v_yoff)
3199 {
3200  double xp; /*in*/
3201  double yp; /*in*/
3202  int xleng; /*in*/
3203  int yleng; /*in*/
3204  int xoff; /*in*/
3205  int yoff; /*in*/
3206  xp = Double_val(_v_xp);
3207  yp = Double_val(_v_yp);
3208  xleng = Int_val(_v_xleng);
3209  yleng = Int_val(_v_yleng);
3210  xoff = Int_val(_v_xoff);
3211  yoff = Int_val(_v_yoff);
3212  c_plspage(xp, yp, xleng, yleng, xoff, yoff);
3213  return Val_unit;
3214 }
3215 
3217 {
3218  return camlidl_plplot_core_c_plspage(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]);
3219 }
3220 
3222  value _v_filename)
3223 {
3224  char const *filename; /*in*/
3225  filename = String_val(_v_filename);
3226  c_plspal0(filename);
3227  return Val_unit;
3228 }
3229 
3231  value _v_filename,
3232  value _v_interpolate)
3233 {
3234  char const *filename; /*in*/
3235  int interpolate; /*in*/
3236  filename = String_val(_v_filename);
3237  interpolate = Int_val(_v_interpolate);
3238  c_plspal1(filename, interpolate);
3239  return Val_unit;
3240 }
3241 
3243  value _v_pause)
3244 {
3245  int pause; /*in*/
3246  pause = Int_val(_v_pause);
3247  c_plspause(pause);
3248  return Val_unit;
3249 }
3250 
3252  value _v_strm)
3253 {
3254  int strm; /*in*/
3255  strm = Int_val(_v_strm);
3256  c_plsstrm(strm);
3257  return Val_unit;
3258 }
3259 
3261  value _v_nx,
3262  value _v_ny)
3263 {
3264  int nx; /*in*/
3265  int ny; /*in*/
3266  nx = Int_val(_v_nx);
3267  ny = Int_val(_v_ny);
3268  c_plssub(nx, ny);
3269  return Val_unit;
3270 }
3271 
3273  value _v_def,
3274  value _v_scale)
3275 {
3276  double def; /*in*/
3277  double scale; /*in*/
3278  def = Double_val(_v_def);
3279  scale = Double_val(_v_scale);
3280  c_plssym(def, scale);
3281  return Val_unit;
3282 }
3283 
3285  value _v_nx,
3286  value _v_ny)
3287 {
3288  int nx; /*in*/
3289  int ny; /*in*/
3290  nx = Int_val(_v_nx);
3291  ny = Int_val(_v_ny);
3292  c_plstar(nx, ny);
3293  return Val_unit;
3294 }
3295 
3297  value _v_devname,
3298  value _v_nx,
3299  value _v_ny)
3300 {
3301  char const *devname; /*in*/
3302  int nx; /*in*/
3303  int ny; /*in*/
3304  devname = String_val(_v_devname);
3305  nx = Int_val(_v_nx);
3306  ny = Int_val(_v_ny);
3307  c_plstart(devname, nx, ny);
3308  return Val_unit;
3309 }
3310 
3312  value _v_x,
3313  value _v_y,
3314  value _v_string)
3315 {
3316  int n; /*in*/
3317  double *x; /*in*/
3318  double *y; /*in*/
3319  char const *string; /*in*/
3320  mlsize_t _c1;
3321  mlsize_t _c2;
3322  mlsize_t _c3;
3323  mlsize_t _c4;
3324  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
3325  camlidl_ctx _ctx = &_ctxs;
3326  _c1 = Wosize_val(_v_x) / Double_wosize;
3327  x = camlidl_malloc(_c1 * sizeof(double ), _ctx);
3328  for (_c2 = 0; _c2 < _c1; _c2++) {
3329  x[_c2] = Double_field(_v_x, _c2);
3330  }
3331  n = _c1;
3332  _c3 = Wosize_val(_v_y) / Double_wosize;
3333  y = camlidl_malloc(_c3 * sizeof(double ), _ctx);
3334  for (_c4 = 0; _c4 < _c3; _c4++) {
3335  y[_c4] = Double_field(_v_y, _c4);
3336  }
3337  n = _c3;
3338  string = String_val(_v_string);
3339  c_plstring(n, x, y, string);
3340  camlidl_free(_ctx);
3341  return Val_unit;
3342 }
3343 
3345  value _v_x,
3346  value _v_y,
3347  value _v_z,
3348  value _v_string)
3349 {
3350  int n; /*in*/
3351  double *x; /*in*/
3352  double *y; /*in*/
3353  double *z; /*in*/
3354  char const *string; /*in*/
3355  mlsize_t _c1;
3356  mlsize_t _c2;
3357  mlsize_t _c3;
3358  mlsize_t _c4;
3359  mlsize_t _c5;
3360  mlsize_t _c6;
3361  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
3362  camlidl_ctx _ctx = &_ctxs;
3363  _c1 = Wosize_val(_v_x) / Double_wosize;
3364  x = camlidl_malloc(_c1 * sizeof(double ), _ctx);
3365  for (_c2 = 0; _c2 < _c1; _c2++) {
3366  x[_c2] = Double_field(_v_x, _c2);
3367  }
3368  n = _c1;
3369  _c3 = Wosize_val(_v_y) / Double_wosize;
3370  y = camlidl_malloc(_c3 * sizeof(double ), _ctx);
3371  for (_c4 = 0; _c4 < _c3; _c4++) {
3372  y[_c4] = Double_field(_v_y, _c4);
3373  }
3374  n = _c3;
3375  _c5 = Wosize_val(_v_z) / Double_wosize;
3376  z = camlidl_malloc(_c5 * sizeof(double ), _ctx);
3377  for (_c6 = 0; _c6 < _c5; _c6++) {
3378  z[_c6] = Double_field(_v_z, _c6);
3379  }
3380  n = _c5;
3381  string = String_val(_v_string);
3382  c_plstring3(n, x, y, z, string);
3383  camlidl_free(_ctx);
3384  return Val_unit;
3385 }
3386 
3388  value _v_id,
3389  value _v_pen,
3390  value _v_x,
3391  value _v_y)
3392 {
3393  int id; /*in*/
3394  int pen; /*in*/
3395  double x; /*in*/
3396  double y; /*in*/
3397  id = Int_val(_v_id);
3398  pen = Int_val(_v_pen);
3399  x = Double_val(_v_x);
3400  y = Double_val(_v_y);
3401  c_plstripa(id, pen, x, y);
3402  return Val_unit;
3403 }
3404 
3406  value _v_id)
3407 {
3408  int id; /*in*/
3409  id = Int_val(_v_id);
3410  c_plstripd(id);
3411  return Val_unit;
3412 }
3413 
3415  value _v_idata,
3416  value _v_xmin,
3417  value _v_xmax,
3418  value _v_ymin,
3419  value _v_ymax,
3420  value _v_zmin,
3421  value _v_zmax,
3422  value _v_Dxmin,
3423  value _v_Dxmax,
3424  value _v_Dymin,
3425  value _v_Dymax)
3426 {
3427  double **idata; /*in*/
3428  int nx; /*in*/
3429  int ny; /*in*/
3430  double xmin; /*in*/
3431  double xmax; /*in*/
3432  double ymin; /*in*/
3433  double ymax; /*in*/
3434  double zmin; /*in*/
3435  double zmax; /*in*/
3436  double Dxmin; /*in*/
3437  double Dxmax; /*in*/
3438  double Dymin; /*in*/
3439  double Dymax; /*in*/
3440  mlsize_t _c1;
3441  mlsize_t _c2;
3442  value _v3;
3443  mlsize_t _c4;
3444  mlsize_t _c5;
3445  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
3446  camlidl_ctx _ctx = &_ctxs;
3447  _c1 = Wosize_val(_v_idata);
3448  idata = camlidl_malloc(_c1 * sizeof(double *), _ctx);
3449  for (_c2 = 0; _c2 < _c1; _c2++) {
3450  _v3 = Field(_v_idata, _c2);
3451  _c4 = Wosize_val(_v3) / Double_wosize;
3452  idata[_c2] = camlidl_malloc(_c4 * sizeof(double ), _ctx);
3453  for (_c5 = 0; _c5 < _c4; _c5++) {
3454  idata[_c2][_c5] = Double_field(_v3, _c5);
3455  }
3456  ny = _c4;
3457  }
3458  nx = _c1;
3459  xmin = Double_val(_v_xmin);
3460  xmax = Double_val(_v_xmax);
3461  ymin = Double_val(_v_ymin);
3462  ymax = Double_val(_v_ymax);
3463  zmin = Double_val(_v_zmin);
3464  zmax = Double_val(_v_zmax);
3465  Dxmin = Double_val(_v_Dxmin);
3466  Dxmax = Double_val(_v_Dxmax);
3467  Dymin = Double_val(_v_Dymin);
3468  Dymax = Double_val(_v_Dymax);
3469  c_plimage(idata, nx, ny, xmin, xmax, ymin, ymax, zmin, zmax, Dxmin, Dxmax, Dymin, Dymax);
3470  camlidl_free(_ctx);
3471  return Val_unit;
3472 }
3473 
3475 {
3476  return camlidl_plplot_core_c_plimage(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10]);
3477 }
3478 
3480  value _v_mark,
3481  value _v_space)
3482 {
3483  int nms; /*in*/
3484  int *mark; /*in*/
3485  int *space; /*in*/
3486  mlsize_t _c1;
3487  mlsize_t _c2;
3488  value _v3;
3489  mlsize_t _c4;
3490  mlsize_t _c5;
3491  value _v6;
3492  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
3493  camlidl_ctx _ctx = &_ctxs;
3494  _c1 = Wosize_val(_v_mark);
3495  mark = camlidl_malloc(_c1 * sizeof(int ), _ctx);
3496  for (_c2 = 0; _c2 < _c1; _c2++) {
3497  _v3 = Field(_v_mark, _c2);
3498  mark[_c2] = Int_val(_v3);
3499  }
3500  nms = _c1;
3501  _c4 = Wosize_val(_v_space);
3502  space = camlidl_malloc(_c4 * sizeof(int ), _ctx);
3503  for (_c5 = 0; _c5 < _c4; _c5++) {
3504  _v6 = Field(_v_space, _c5);
3505  space[_c5] = Int_val(_v6);
3506  }
3507  nms = _c4;
3508  c_plstyl(nms, mark, space);
3509  camlidl_free(_ctx);
3510  return Val_unit;
3511 }
3512 
3514  value _v_x,
3515  value _v_y,
3516  value _v_z,
3517  value _v_opt,
3518  value _v_clevel)
3519 {
3520  double *x; /*in*/
3521  double *y; /*in*/
3522  double **z; /*in*/
3523  int nx; /*in*/
3524  int ny; /*in*/
3525  plplot3d_style opt; /*in*/
3526  double *clevel; /*in*/
3527  int nlevel; /*in*/
3528  mlsize_t _c1;
3529  mlsize_t _c2;
3530  mlsize_t _c3;
3531  mlsize_t _c4;
3532  mlsize_t _c5;
3533  mlsize_t _c6;
3534  value _v7;
3535  mlsize_t _c8;
3536  mlsize_t _c9;
3537  mlsize_t _c10;
3538  mlsize_t _c11;
3539  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
3540  camlidl_ctx _ctx = &_ctxs;
3541  _c1 = Wosize_val(_v_x) / Double_wosize;
3542  x = camlidl_malloc(_c1 * sizeof(double ), _ctx);
3543  for (_c2 = 0; _c2 < _c1; _c2++) {
3544  x[_c2] = Double_field(_v_x, _c2);
3545  }
3546  nx = _c1;
3547  _c3 = Wosize_val(_v_y) / Double_wosize;
3548  y = camlidl_malloc(_c3 * sizeof(double ), _ctx);
3549  for (_c4 = 0; _c4 < _c3; _c4++) {
3550  y[_c4] = Double_field(_v_y, _c4);
3551  }
3552  ny = _c3;
3553  _c5 = Wosize_val(_v_z);
3554  z = camlidl_malloc(_c5 * sizeof(double *), _ctx);
3555  for (_c6 = 0; _c6 < _c5; _c6++) {
3556  _v7 = Field(_v_z, _c6);
3557  _c8 = Wosize_val(_v7) / Double_wosize;
3558  z[_c6] = camlidl_malloc(_c8 * sizeof(double ), _ctx);
3559  for (_c9 = 0; _c9 < _c8; _c9++) {
3560  z[_c6][_c9] = Double_field(_v7, _c9);
3561  }
3562  ny = _c8;
3563  }
3564  nx = _c5;
3565  camlidl_ml2c_plplot_core_plplot3d_style(_v_opt, &opt, _ctx);
3566  _c10 = Wosize_val(_v_clevel) / Double_wosize;
3567  clevel = camlidl_malloc(_c10 * sizeof(double ), _ctx);
3568  for (_c11 = 0; _c11 < _c10; _c11++) {
3569  clevel[_c11] = Double_field(_v_clevel, _c11);
3570  }
3571  nlevel = _c10;
3572  c_plsurf3d(x, y, z, nx, ny, opt, clevel, nlevel);
3573  camlidl_free(_ctx);
3574  return Val_unit;
3575 }
3576 
3578  value _v_arrowx,
3579  value _v_arrowy,
3580  value _v_fill)
3581 {
3582  double *arrowx; /*in*/
3583  double *arrowy; /*in*/
3584  int npts; /*in*/
3585  int fill; /*in*/
3586  mlsize_t _c1;
3587  mlsize_t _c2;
3588  mlsize_t _c3;
3589  mlsize_t _c4;
3590  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
3591  camlidl_ctx _ctx = &_ctxs;
3592  _c1 = Wosize_val(_v_arrowx) / Double_wosize;
3593  arrowx = camlidl_malloc(_c1 * sizeof(double ), _ctx);
3594  for (_c2 = 0; _c2 < _c1; _c2++) {
3595  arrowx[_c2] = Double_field(_v_arrowx, _c2);
3596  }
3597  npts = _c1;
3598  _c3 = Wosize_val(_v_arrowy) / Double_wosize;
3599  arrowy = camlidl_malloc(_c3 * sizeof(double ), _ctx);
3600  for (_c4 = 0; _c4 < _c3; _c4++) {
3601  arrowy[_c4] = Double_field(_v_arrowy, _c4);
3602  }
3603  npts = _c3;
3604  fill = Int_val(_v_fill);
3605  c_plsvect(arrowx, arrowy, npts, fill);
3606  camlidl_free(_ctx);
3607  return Val_unit;
3608 }
3609 
3611  value _v_xmin,
3612  value _v_xmax,
3613  value _v_ymin,
3614  value _v_ymax)
3615 {
3616  double xmin; /*in*/
3617  double xmax; /*in*/
3618  double ymin; /*in*/
3619  double ymax; /*in*/
3620  xmin = Double_val(_v_xmin);
3621  xmax = Double_val(_v_xmax);
3622  ymin = Double_val(_v_ymin);
3623  ymax = Double_val(_v_ymax);
3624  c_plsvpa(xmin, xmax, ymin, ymax);
3625  return Val_unit;
3626 }
3627 
3629  value _v_digmax,
3630  value _v_digits)
3631 {
3632  int digmax; /*in*/
3633  int digits; /*in*/
3634  digmax = Int_val(_v_digmax);
3635  digits = Int_val(_v_digits);
3636  c_plsxax(digmax, digits);
3637  return Val_unit;
3638 }
3639 
3641  value _v_window_id)
3642 {
3643  int window_id; /*in*/
3644  window_id = Int_val(_v_window_id);
3645  plsxwin(window_id);
3646  return Val_unit;
3647 }
3648 
3650  value _v_digmax,
3651  value _v_digits)
3652 {
3653  int digmax; /*in*/
3654  int digits; /*in*/
3655  digmax = Int_val(_v_digmax);
3656  digits = Int_val(_v_digits);
3657  c_plsyax(digmax, digits);
3658  return Val_unit;
3659 }
3660 
3662  value _v_x,
3663  value _v_y,
3664  value _v_code)
3665 {
3666  int n; /*in*/
3667  double *x; /*in*/
3668  double *y; /*in*/
3669  int code; /*in*/
3670  mlsize_t _c1;
3671  mlsize_t _c2;
3672  mlsize_t _c3;
3673  mlsize_t _c4;
3674  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
3675  camlidl_ctx _ctx = &_ctxs;
3676  _c1 = Wosize_val(_v_x) / Double_wosize;
3677  x = camlidl_malloc(_c1 * sizeof(double ), _ctx);
3678  for (_c2 = 0; _c2 < _c1; _c2++) {
3679  x[_c2] = Double_field(_v_x, _c2);
3680  }
3681  n = _c1;
3682  _c3 = Wosize_val(_v_y) / Double_wosize;
3683  y = camlidl_malloc(_c3 * sizeof(double ), _ctx);
3684  for (_c4 = 0; _c4 < _c3; _c4++) {
3685  y[_c4] = Double_field(_v_y, _c4);
3686  }
3687  n = _c3;
3688  code = Int_val(_v_code);
3689  c_plsym(n, x, y, code);
3690  camlidl_free(_ctx);
3691  return Val_unit;
3692 }
3693 
3695  value _v_digmax,
3696  value _v_digits)
3697 {
3698  int digmax; /*in*/
3699  int digits; /*in*/
3700  digmax = Int_val(_v_digmax);
3701  digits = Int_val(_v_digits);
3702  c_plszax(digmax, digits);
3703  return Val_unit;
3704 }
3705 
3707 {
3708  c_pltext();
3709  return Val_unit;
3710 }
3711 
3713  value _v_fmt)
3714 {
3715  char const *fmt; /*in*/
3716  fmt = String_val(_v_fmt);
3717  c_pltimefmt(fmt);
3718  return Val_unit;
3719 }
3720 
3722  value _v_aspect)
3723 {
3724  double aspect; /*in*/
3725  aspect = Double_val(_v_aspect);
3726  c_plvasp(aspect);
3727  return Val_unit;
3728 }
3729 
3731  value _v_xmin,
3732  value _v_xmax,
3733  value _v_ymin,
3734  value _v_ymax,
3735  value _v_aspect)
3736 {
3737  double xmin; /*in*/
3738  double xmax; /*in*/
3739  double ymin; /*in*/
3740  double ymax; /*in*/
3741  double aspect; /*in*/
3742  xmin = Double_val(_v_xmin);
3743  xmax = Double_val(_v_xmax);
3744  ymin = Double_val(_v_ymin);
3745  ymax = Double_val(_v_ymax);
3746  aspect = Double_val(_v_aspect);
3747  c_plvpas(xmin, xmax, ymin, ymax, aspect);
3748  return Val_unit;
3749 }
3750 
3752  value _v_xmin,
3753  value _v_xmax,
3754  value _v_ymin,
3755  value _v_ymax)
3756 {
3757  double xmin; /*in*/
3758  double xmax; /*in*/
3759  double ymin; /*in*/
3760  double ymax; /*in*/
3761  xmin = Double_val(_v_xmin);
3762  xmax = Double_val(_v_xmax);
3763  ymin = Double_val(_v_ymin);
3764  ymax = Double_val(_v_ymax);
3765  c_plvpor(xmin, xmax, ymin, ymax);
3766  return Val_unit;
3767 }
3768 
3770 {
3771  c_plvsta();
3772  return Val_unit;
3773 }
3774 
3776  value _v_basex,
3777  value _v_basey,
3778  value _v_height,
3779  value _v_xmin0,
3780  value _v_xmax0,
3781  value _v_ymin0,
3782  value _v_ymax0,
3783  value _v_zmin0,
3784  value _v_zmax0,
3785  value _v_alt,
3786  value _v_az)
3787 {
3788  double basex; /*in*/
3789  double basey; /*in*/
3790  double height; /*in*/
3791  double xmin0; /*in*/
3792  double xmax0; /*in*/
3793  double ymin0; /*in*/
3794  double ymax0; /*in*/
3795  double zmin0; /*in*/
3796  double zmax0; /*in*/
3797  double alt; /*in*/
3798  double az; /*in*/
3799  basex = Double_val(_v_basex);
3800  basey = Double_val(_v_basey);
3801  height = Double_val(_v_height);
3802  xmin0 = Double_val(_v_xmin0);
3803  xmax0 = Double_val(_v_xmax0);
3804  ymin0 = Double_val(_v_ymin0);
3805  ymax0 = Double_val(_v_ymax0);
3806  zmin0 = Double_val(_v_zmin0);
3807  zmax0 = Double_val(_v_zmax0);
3808  alt = Double_val(_v_alt);
3809  az = Double_val(_v_az);
3810  c_plw3d(basex, basey, height, xmin0, xmax0, ymin0, ymax0, zmin0, zmax0, alt, az);
3811  return Val_unit;
3812 }
3813 
3815 {
3816  return camlidl_plplot_core_c_plw3d(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10]);
3817 }
3818 
3820  value _v_width)
3821 {
3822  double width; /*in*/
3823  width = Double_val(_v_width);
3824  c_plwidth(width);
3825  return Val_unit;
3826 }
3827 
3829  value _v_xmin,
3830  value _v_xmax,
3831  value _v_ymin,
3832  value _v_ymax)
3833 {
3834  double xmin; /*in*/
3835  double xmax; /*in*/
3836  double ymin; /*in*/
3837  double ymax; /*in*/
3838  xmin = Double_val(_v_xmin);
3839  xmax = Double_val(_v_xmax);
3840  ymin = Double_val(_v_ymin);
3841  ymax = Double_val(_v_ymax);
3842  c_plwind(xmin, xmax, ymin, ymax);
3843  return Val_unit;
3844 }
3845 
3847  value _v_mode)
3848 {
3849  int mode; /*in*/
3850  int *status; /*out*/
3851  int _c1;
3852  value _vres;
3853 
3854  mode = Int_val(_v_mode);
3855  status = &_c1;
3856  c_plxormod(mode, status);
3857  _vres = Val_int(*status);
3858  return _vres;
3859 }
3860 
3862  value _v_opt,
3863  value _v_optarg)
3864 {
3865  char const *opt; /*in*/
3866  char const *optarg; /*in*/
3867  nonzero_error_int _res;
3868  opt = String_val(_v_opt);
3869  optarg = String_val(_v_optarg);
3870  _res = c_plsetopt(opt, optarg);
3872  return Val_unit;
3873 }
3874 
3876  value _v_f)
3877 {
3878  double **f; /*in*/
3879  int nx; /*in*/
3880  int ny; /*in*/
3881  double *fmax; /*out*/
3882  double *fmin; /*out*/
3883  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
3884  camlidl_ctx _ctx = &_ctxs;
3885  mlsize_t _c1;
3886  mlsize_t _c2;
3887  value _v3;
3888  mlsize_t _c4;
3889  mlsize_t _c5;
3890  double _c6;
3891  double _c7;
3892  value _vresult;
3893  value _vres[2] = { 0, 0, };
3894 
3895  _c1 = Wosize_val(_v_f);
3896  f = camlidl_malloc(_c1 * sizeof(double *), _ctx);
3897  for (_c2 = 0; _c2 < _c1; _c2++) {
3898  _v3 = Field(_v_f, _c2);
3899  _c4 = Wosize_val(_v3) / Double_wosize;
3900  f[_c2] = camlidl_malloc(_c4 * sizeof(double ), _ctx);
3901  for (_c5 = 0; _c5 < _c4; _c5++) {
3902  f[_c2][_c5] = Double_field(_v3, _c5);
3903  }
3904  ny = _c4;
3905  }
3906  nx = _c1;
3907  fmax = &_c6;
3908  fmin = &_c7;
3909  plMinMax2dGrid(f, nx, ny, fmax, fmin);
3910  Begin_roots_block(_vres, 2)
3911  _vres[0] = copy_double(*fmax);
3912  _vres[1] = copy_double(*fmin);
3913  _vresult = camlidl_alloc_small(2, 0);
3914  Field(_vresult, 0) = _vres[0];
3915  Field(_vresult, 1) = _vres[1];
3916  End_roots()
3917  camlidl_free(_ctx);
3918  return _vresult;
3919 }
3920 
3922  value _v_f,
3923  value _v_kx,
3924  value _v_lx,
3925  value _v_ky,
3926  value _v_ly,
3927  value _v_clevel)
3928 {
3929  double **f; /*in*/
3930  int nx; /*in*/
3931  int ny; /*in*/
3932  int kx; /*in*/
3933  int lx; /*in*/
3934  int ky; /*in*/
3935  int ly; /*in*/
3936  double *clevel; /*in*/
3937  int nlevel; /*in*/
3938  mlsize_t _c1;
3939  mlsize_t _c2;
3940  value _v3;
3941  mlsize_t _c4;
3942  mlsize_t _c5;
3943  mlsize_t _c6;
3944  mlsize_t _c7;
3945  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
3946  camlidl_ctx _ctx = &_ctxs;
3947  _c1 = Wosize_val(_v_f);
3948  f = camlidl_malloc(_c1 * sizeof(double *), _ctx);
3949  for (_c2 = 0; _c2 < _c1; _c2++) {
3950  _v3 = Field(_v_f, _c2);
3951  _c4 = Wosize_val(_v3) / Double_wosize;
3952  f[_c2] = camlidl_malloc(_c4 * sizeof(double ), _ctx);
3953  for (_c5 = 0; _c5 < _c4; _c5++) {
3954  f[_c2][_c5] = Double_field(_v3, _c5);
3955  }
3956  ny = _c4;
3957  }
3958  nx = _c1;
3959  kx = Int_val(_v_kx);
3960  lx = Int_val(_v_lx);
3961  ky = Int_val(_v_ky);
3962  ly = Int_val(_v_ly);
3963  _c6 = Wosize_val(_v_clevel) / Double_wosize;
3964  clevel = camlidl_malloc(_c6 * sizeof(double ), _ctx);
3965  for (_c7 = 0; _c7 < _c6; _c7++) {
3966  clevel[_c7] = Double_field(_v_clevel, _c7);
3967  }
3968  nlevel = _c6;
3969  ml_plcont(f, nx, ny, kx, lx, ky, ly, clevel, nlevel);
3970  camlidl_free(_ctx);
3971  return Val_unit;
3972 }
3973 
3975 {
3976  return camlidl_plplot_core_ml_plcont(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]);
3977 }
3978 
3980  value _v_a,
3981  value _v_left,
3982  value _v_right,
3983  value _v_bottom,
3984  value _v_top,
3985  value _v_shade_min,
3986  value _v_shade_max,
3987  value _v_sh_cmap,
3988  value _v_sh_color,
3989  value _v_sh_width,
3990  value _v_min_color,
3991  value _v_min_width,
3992  value _v_max_color,
3993  value _v_max_width,
3994  value _v_rectangular)
3995 {
3996  double **a; /*in*/
3997  int nx; /*in*/
3998  int ny; /*in*/
3999  double left; /*in*/
4000  double right; /*in*/
4001  double bottom; /*in*/
4002  double top; /*in*/
4003  double shade_min; /*in*/
4004  double shade_max; /*in*/
4005  int sh_cmap; /*in*/
4006  double sh_color; /*in*/
4007  double sh_width; /*in*/
4008  int min_color; /*in*/
4009  double min_width; /*in*/
4010  int max_color; /*in*/
4011  double max_width; /*in*/
4012  int rectangular; /*in*/
4013  mlsize_t _c1;
4014  mlsize_t _c2;
4015  value _v3;
4016  mlsize_t _c4;
4017  mlsize_t _c5;
4018  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
4019  camlidl_ctx _ctx = &_ctxs;
4020  _c1 = Wosize_val(_v_a);
4021  a = camlidl_malloc(_c1 * sizeof(double *), _ctx);
4022  for (_c2 = 0; _c2 < _c1; _c2++) {
4023  _v3 = Field(_v_a, _c2);
4024  _c4 = Wosize_val(_v3) / Double_wosize;
4025  a[_c2] = camlidl_malloc(_c4 * sizeof(double ), _ctx);
4026  for (_c5 = 0; _c5 < _c4; _c5++) {
4027  a[_c2][_c5] = Double_field(_v3, _c5);
4028  }
4029  ny = _c4;
4030  }
4031  nx = _c1;
4032  left = Double_val(_v_left);
4033  right = Double_val(_v_right);
4034  bottom = Double_val(_v_bottom);
4035  top = Double_val(_v_top);
4036  shade_min = Double_val(_v_shade_min);
4037  shade_max = Double_val(_v_shade_max);
4038  sh_cmap = Int_val(_v_sh_cmap);
4039  sh_color = Double_val(_v_sh_color);
4040  sh_width = Double_val(_v_sh_width);
4041  min_color = Int_val(_v_min_color);
4042  min_width = Double_val(_v_min_width);
4043  max_color = Int_val(_v_max_color);
4044  max_width = Double_val(_v_max_width);
4045  rectangular = Int_val(_v_rectangular);
4046  ml_plshade(a, nx, ny, left, right, bottom, top, shade_min, shade_max, sh_cmap, sh_color, sh_width, min_color, min_width, max_color, max_width, rectangular);
4047  camlidl_free(_ctx);
4048  return Val_unit;
4049 }
4050 
4052 {
4053  return camlidl_plplot_core_ml_plshade(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12], argv[13], argv[14]);
4054 }
4055 
4057  value _v_a,
4058  value _v_xmin,
4059  value _v_xmax,
4060  value _v_ymin,
4061  value _v_ymax,
4062  value _v_clevel,
4063  value _v_fill_width,
4064  value _v_cont_color,
4065  value _v_cont_width,
4066  value _v_rectangular)
4067 {
4068  double **a; /*in*/
4069  int nx; /*in*/
4070  int ny; /*in*/
4071  double xmin; /*in*/
4072  double xmax; /*in*/
4073  double ymin; /*in*/
4074  double ymax; /*in*/
4075  double *clevel; /*in*/
4076  int nlevel; /*in*/
4077  double fill_width; /*in*/
4078  int cont_color; /*in*/
4079  double cont_width; /*in*/
4080  int rectangular; /*in*/
4081  mlsize_t _c1;
4082  mlsize_t _c2;
4083  value _v3;
4084  mlsize_t _c4;
4085  mlsize_t _c5;
4086  mlsize_t _c6;
4087  mlsize_t _c7;
4088  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
4089  camlidl_ctx _ctx = &_ctxs;
4090  _c1 = Wosize_val(_v_a);
4091  a = camlidl_malloc(_c1 * sizeof(double *), _ctx);
4092  for (_c2 = 0; _c2 < _c1; _c2++) {
4093  _v3 = Field(_v_a, _c2);
4094  _c4 = Wosize_val(_v3) / Double_wosize;
4095  a[_c2] = camlidl_malloc(_c4 * sizeof(double ), _ctx);
4096  for (_c5 = 0; _c5 < _c4; _c5++) {
4097  a[_c2][_c5] = Double_field(_v3, _c5);
4098  }
4099  ny = _c4;
4100  }
4101  nx = _c1;
4102  xmin = Double_val(_v_xmin);
4103  xmax = Double_val(_v_xmax);
4104  ymin = Double_val(_v_ymin);
4105  ymax = Double_val(_v_ymax);
4106  _c6 = Wosize_val(_v_clevel) / Double_wosize;
4107  clevel = camlidl_malloc(_c6 * sizeof(double ), _ctx);
4108  for (_c7 = 0; _c7 < _c6; _c7++) {
4109  clevel[_c7] = Double_field(_v_clevel, _c7);
4110  }
4111  nlevel = _c6;
4112  fill_width = Double_val(_v_fill_width);
4113  cont_color = Int_val(_v_cont_color);
4114  cont_width = Double_val(_v_cont_width);
4115  rectangular = Int_val(_v_rectangular);
4116  ml_plshades(a, nx, ny, xmin, xmax, ymin, ymax, clevel, nlevel, fill_width, cont_color, cont_width, rectangular);
4117  camlidl_free(_ctx);
4118  return Val_unit;
4119 }
4120 
4122 {
4123  return camlidl_plplot_core_ml_plshades(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9]);
4124 }
4125 
4127  value _v_idata,
4128  value _v_xmin,
4129  value _v_xmax,
4130  value _v_ymin,
4131  value _v_ymax,
4132  value _v_zmin,
4133  value _v_zmax,
4134  value _v_valuemin,
4135  value _v_valuemax)
4136 {
4137  double **idata; /*in*/
4138  int nx; /*in*/
4139  int ny; /*in*/
4140  double xmin; /*in*/
4141  double xmax; /*in*/
4142  double ymin; /*in*/
4143  double ymax; /*in*/
4144  double zmin; /*in*/
4145  double zmax; /*in*/
4146  double valuemin; /*in*/
4147  double valuemax; /*in*/
4148  mlsize_t _c1;
4149  mlsize_t _c2;
4150  value _v3;
4151  mlsize_t _c4;
4152  mlsize_t _c5;
4153  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
4154  camlidl_ctx _ctx = &_ctxs;
4155  _c1 = Wosize_val(_v_idata);
4156  idata = camlidl_malloc(_c1 * sizeof(double *), _ctx);
4157  for (_c2 = 0; _c2 < _c1; _c2++) {
4158  _v3 = Field(_v_idata, _c2);
4159  _c4 = Wosize_val(_v3) / Double_wosize;
4160  idata[_c2] = camlidl_malloc(_c4 * sizeof(double ), _ctx);
4161  for (_c5 = 0; _c5 < _c4; _c5++) {
4162  idata[_c2][_c5] = Double_field(_v3, _c5);
4163  }
4164  ny = _c4;
4165  }
4166  nx = _c1;
4167  xmin = Double_val(_v_xmin);
4168  xmax = Double_val(_v_xmax);
4169  ymin = Double_val(_v_ymin);
4170  ymax = Double_val(_v_ymax);
4171  zmin = Double_val(_v_zmin);
4172  zmax = Double_val(_v_zmax);
4173  valuemin = Double_val(_v_valuemin);
4174  valuemax = Double_val(_v_valuemax);
4175  ml_plimagefr(idata, nx, ny, xmin, xmax, ymin, ymax, zmin, zmax, valuemin, valuemax);
4176  camlidl_free(_ctx);
4177  return Val_unit;
4178 }
4179 
4181 {
4182  return camlidl_plplot_core_ml_plimagefr(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8]);
4183 }
4184 
4186  value _v_u,
4187  value _v_v,
4188  value _v_scale)
4189 {
4190  double **u; /*in*/
4191  double **v; /*in*/
4192  int nx; /*in*/
4193  int ny; /*in*/
4194  double scale; /*in*/
4195  mlsize_t _c1;
4196  mlsize_t _c2;
4197  value _v3;
4198  mlsize_t _c4;
4199  mlsize_t _c5;
4200  mlsize_t _c6;
4201  mlsize_t _c7;
4202  value _v8;
4203  mlsize_t _c9;
4204  mlsize_t _c10;
4205  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
4206  camlidl_ctx _ctx = &_ctxs;
4207  _c1 = Wosize_val(_v_u);
4208  u = camlidl_malloc(_c1 * sizeof(double *), _ctx);
4209  for (_c2 = 0; _c2 < _c1; _c2++) {
4210  _v3 = Field(_v_u, _c2);
4211  _c4 = Wosize_val(_v3) / Double_wosize;
4212  u[_c2] = camlidl_malloc(_c4 * sizeof(double ), _ctx);
4213  for (_c5 = 0; _c5 < _c4; _c5++) {
4214  u[_c2][_c5] = Double_field(_v3, _c5);
4215  }
4216  ny = _c4;
4217  }
4218  nx = _c1;
4219  _c6 = Wosize_val(_v_v);
4220  v = camlidl_malloc(_c6 * sizeof(double *), _ctx);
4221  for (_c7 = 0; _c7 < _c6; _c7++) {
4222  _v8 = Field(_v_v, _c7);
4223  _c9 = Wosize_val(_v8) / Double_wosize;
4224  v[_c7] = camlidl_malloc(_c9 * sizeof(double ), _ctx);
4225  for (_c10 = 0; _c10 < _c9; _c10++) {
4226  v[_c7][_c10] = Double_field(_v8, _c10);
4227  }
4228  ny = _c9;
4229  }
4230  nx = _c6;
4231  scale = Double_val(_v_scale);
4232  ml_plvect(u, v, nx, ny, scale);
4233  camlidl_free(_ctx);
4234  return Val_unit;
4235 }
4236 
4238  value _v_type,
4239  value _v_minlong,
4240  value _v_maxlong,
4241  value _v_minlat,
4242  value _v_maxlat)
4243 {
4244  char const *type; /*in*/
4245  double minlong; /*in*/
4246  double maxlong; /*in*/
4247  double minlat; /*in*/
4248  double maxlat; /*in*/
4249  type = String_val(_v_type);
4250  minlong = Double_val(_v_minlong);
4251  maxlong = Double_val(_v_maxlong);
4252  minlat = Double_val(_v_minlat);
4253  maxlat = Double_val(_v_maxlat);
4254  ml_plmap(type, minlong, maxlong, minlat, maxlat);
4255  return Val_unit;
4256 }
4257 
4259  value _v_dlong,
4260  value _v_dlat,
4261  value _v_minlong,
4262  value _v_maxlong,
4263  value _v_minlat,
4264  value _v_maxlat)
4265 {
4266  double dlong; /*in*/
4267  double dlat; /*in*/
4268  double minlong; /*in*/
4269  double maxlong; /*in*/
4270  double minlat; /*in*/
4271  double maxlat; /*in*/
4272  dlong = Double_val(_v_dlong);
4273  dlat = Double_val(_v_dlat);
4274  minlong = Double_val(_v_minlong);
4275  maxlong = Double_val(_v_maxlong);
4276  minlat = Double_val(_v_minlat);
4277  maxlat = Double_val(_v_maxlat);
4278  ml_plmeridians(dlong, dlat, minlong, maxlong, minlat, maxlat);
4279  return Val_unit;
4280 }
4281 
4283 {
4284  return camlidl_plplot_core_ml_plmeridians(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]);
4285 }
4286 
4288  value _v_x,
4289  value _v_y,
4290  value _v_z,
4291  value _v_draw,
4292  value _v_ifcc)
4293 {
4294  int n; /*in*/
4295  double *x; /*in*/
4296  double *y; /*in*/
4297  double *z; /*in*/
4298  int ndraw; /*in*/
4299  int *draw; /*in*/
4300  int ifcc; /*in*/
4301  mlsize_t _c1;
4302  mlsize_t _c2;
4303  mlsize_t _c3;
4304  mlsize_t _c4;
4305  mlsize_t _c5;
4306  mlsize_t _c6;
4307  mlsize_t _c7;
4308  mlsize_t _c8;
4309  value _v9;
4310  struct camlidl_ctx_struct _ctxs = { CAMLIDL_TRANSIENT, NULL };
4311  camlidl_ctx _ctx = &_ctxs;
4312  _c1 = Wosize_val(_v_x) / Double_wosize;
4313  x = camlidl_malloc(_c1 * sizeof(double ), _ctx);
4314  for (_c2 = 0; _c2 < _c1; _c2++) {
4315  x[_c2] = Double_field(_v_x, _c2);
4316  }
4317  n = _c1;
4318  _c3 = Wosize_val(_v_y) / Double_wosize;
4319  y = camlidl_malloc(_c3 * sizeof(double ), _ctx);
4320  for (_c4 = 0; _c4 < _c3; _c4++) {
4321  y[_c4] = Double_field(_v_y, _c4);
4322  }
4323  n = _c3;
4324  _c5 = Wosize_val(_v_z) / Double_wosize;
4325  z = camlidl_malloc(_c5 * sizeof(double ), _ctx);
4326  for (_c6 = 0; _c6 < _c5; _c6++) {
4327  z[_c6] = Double_field(_v_z, _c6);
4328  }
4329  n = _c5;
4330  _c7 = Wosize_val(_v_draw);
4331  draw = camlidl_malloc(_c7 * sizeof(int ), _ctx);
4332  for (_c8 = 0; _c8 < _c7; _c8++) {
4333  _v9 = Field(_v_draw, _c8);
4334  draw[_c8] = Int_val(_v9);
4335  }
4336  ndraw = _c7;
4337  ifcc = Int_val(_v_ifcc);
4338  ml_plpoly3(n, x, y, z, ndraw, draw, ifcc);
4339  camlidl_free(_ctx);
4340  return Val_unit;
4341 }
4342 
4344  value _v_x,
4345  value _v_y)
4346 {
4347  double x; /*in*/
4348  double y; /*in*/
4349  double *tx; /*out*/
4350  double *ty; /*out*/
4351  double _c1;
4352  double _c2;
4353  value _vresult;
4354  value _vres[2] = { 0, 0, };
4355 
4356  x = Double_val(_v_x);
4357  y = Double_val(_v_y);
4358  tx = &_c1;
4359  ty = &_c2;
4360  ml_pltr0(x, y, tx, ty);
4361  Begin_roots_block(_vres, 2)
4362  _vres[0] = copy_double(*tx);
4363  _vres[1] = copy_double(*ty);
4364  _vresult = camlidl_alloc_small(2, 0);
4365  Field(_vresult, 0) = _vres[0];
4366  Field(_vresult, 1) = _vres[1];
4367  End_roots()
4368  return _vresult;
4369 }
4370 
4372 {
4373  int _res;
4374  value _vres;
4375 
4376  _res = plg_current_col0();
4377  _vres = Val_int(_res);
4378  return _vres;
4379 }
4380 
4382 {
4383  double _res;
4384  value _vres;
4385 
4386  _res = plg_current_col1();
4387  _vres = copy_double(_res);
4388  return _vres;
4389 }
4390 
4392 {
4393  double _res;
4394  value _vres;
4395 
4396  _res = plgwidth();
4397  _vres = copy_double(_res);
4398  return _vres;
4399 }
4400 
4402 {
4403  double _res;
4404  value _vres;
4405 
4406  _res = plgchrht();
4407  _vres = copy_double(_res);
4408  return _vres;
4409 }
4410