1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
if not modules then modules = { } end modules ['mlib-mat'] = {
version = 1.001,
comment = "companion to mlib-ctx.mkiv",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
copyright = "PRAGMA ADE / ConTeXt Development Team",
license = "see context related readme files",
}
local scanners = mp.scan
local injectors = mp.inject
local scannumeric = scanners.numeric
local scanpair = scanners.pair
local scancolor = scanners.color
local mppair = injectors.pair or mp.pair
local registerscript = metapost.registerscript
local registerdirect = metapost.registerdirect
local m = xmath
local c = xcomplex
local m_acos = m.acos registerdirect("m_acos", function() return m_acos (scannumeric()) end)
local m_acosh = m.acosh registerdirect("m_acosh", function() return m_acosh (scannumeric()) end)
local m_asin = m.asin registerdirect("m_asin", function() return m_asin (scannumeric()) end)
local m_asinh = m.asinh registerdirect("m_asinh", function() return m_asinh (scannumeric()) end)
local m_atan = m.atan registerdirect("m_atan", function() return m_atan (scannumeric()) end)
local m_atan2 = m.atan2 registerdirect("m_atan2", function() return m_atan2 (scanpair ()) end)
local m_atanh = m.atanh registerdirect("m_atanh", function() return m_atanh (scannumeric()) end)
local m_cbrt = m.cbrt registerdirect("m_cbrt", function() return m_cbrt (scannumeric()) end)
local m_ceil = m.ceil registerdirect("m_ceil", function() return m_ceil (scannumeric()) end)
local m_copysign = m.copysign registerdirect("m_copysign", function() return m_copysign (scanpair ()) end)
local m_cos = m.cos registerdirect("m_cos", function() return m_cos (scannumeric()) end)
local m_cosh = m.cosh registerdirect("m_cosh", function() return m_cosh (scannumeric()) end)
local m_deg = m.deg registerdirect("m_deg", function() return m_deg (scannumeric()) end)
local m_erf = m.erf registerdirect("m_erf", function() return m_erf (scannumeric()) end)
local m_erfc = m.erfc registerdirect("m_erfc", function() return m_erfc (scannumeric()) end)
local m_exp = m.exp registerdirect("m_exp", function() return m_exp (scannumeric()) end)
local m_exp2 = m.exp2 registerdirect("m_exp2", function() return m_exp2 (scannumeric()) end)
local m_expm1 = m.expm1 registerdirect("m_expm1", function() return m_expm1 (scannumeric()) end)
local m_fabs = m.fabs registerdirect("m_fabs", function() return m_fabs (scannumeric()) end)
local m_fdim = m.fdim registerdirect("m_fdim", function() return m_fdim (scanpair ()) end)
local m_floor = m.floor registerdirect("m_floor", function() return m_floor (scannumeric()) end)
local m_fma = m.fma registerdirect("m_fma", function() return m_fma (scancolor ()) end)
local m_fmax = m.fmax registerdirect("m_fmax", function() return m_fmax (scannumeric()) end)
local m_fmin = m.fmin registerdirect("m_fmin", function() return m_fmin (scannumeric()) end)
local m_fmod = m.fmod registerdirect("m_fmod", function() return m_fmod (scanpair ()) end)
local m_frexp = m.frexp registerdirect("m_frexp", function() return m_frexp (scannumeric()) end)
local m_gamma = m.gamma registerdirect("m_gamma", function() return m_gamma (scannumeric()) end)
local m_hypot = m.hypot registerdirect("m_hypot", function() return m_hypot (scanpair ()) end)
local m_isfinite = m.isfinite registerdirect("m_isfinite", function() return m_isfinite (scannumeric()) end)
local m_isinf = m.isinf registerdirect("m_isinf", function() return m_isinf (scannumeric()) end)
local m_isnan = m.isnan registerdirect("m_isnan", function() return m_isnan (scannumeric()) end)
local m_isnormal = m.isnormal registerdirect("m_isnormal", function() return m_isnormal (scannumeric()) end)
local m_j0 = m.j0 registerdirect("m_j0", function() return m_j0 (scannumeric()) end)
local m_j1 = m.j1 registerdirect("m_j1", function() return m_j1 (scannumeric()) end)
local m_jn = m.jn registerdirect("m_jn", function() return m_jn (scanpair ()) end)
local m_ldexp = m.ldexp registerdirect("m_ldexp", function() return m_ldexp (scanpair ()) end)
local m_lgamma = m.lgamma registerdirect("m_lgamma", function() return m_lgamma (scannumeric()) end)
local m_log = m.log registerdirect("m_log", function() return m_log (scannumeric()) end)
local m_log10 = m.log10 registerdirect("m_log10", function() return m_log10 (scannumeric()) end)
local m_log1p = m.log1p registerdirect("m_log1p", function() return m_log1p (scannumeric()) end)
local m_log2 = m.log2 registerdirect("m_log2", function() return m_log2 (scannumeric()) end)
local m_logb = m.logb registerdirect("m_logb", function() return m_logb (scannumeric()) end)
local m_modf = m.modf registerdirect("m_modf", function() return m_modf (scannumeric()) end)
local m_nearbyint = m.nearbyint registerdirect("m_nearbyint", function() return m_nearbyint(scannumeric()) end)
local m_nextafter = m.nextafter registerdirect("m_nextafter", function() return m_nextafter(scanpair ()) end)
local m_pow = m.pow registerdirect("m_pow", function() return m_pow (scanpair ()) end)
local m_rad = m.rad registerdirect("m_rad", function() return m_rad (scannumeric()) end)
local m_remainder = m.remainder registerdirect("m_remainder", function() return m_remainder(scanpair ()) end)
local m_remquo = m.remquo registerdirect("m_remquo", function() return m_remquo (scannumeric()) end)
local m_round = m.round registerdirect("m_round", function() return m_round (scannumeric()) end)
local m_scalbn = m.scalbn registerdirect("m_scalbn", function() return m_scalbn (scanpair ()) end)
local m_sin = m.sin registerdirect("m_sin", function() return m_sin (scannumeric()) end)
local m_sinh = m.sinh registerdirect("m_sinh", function() return m_sinh (scannumeric()) end)
local m_sqrt = m.sqrt registerdirect("m_sqrt", function() return m_sqrt (scannumeric()) end)
local m_tan = m.tan registerdirect("m_tan", function() return m_tan (scannumeric()) end)
local m_tanh = m.tanh registerdirect("m_tanh", function() return m_tanh (scannumeric()) end)
local m_tgamma = m.tgamma registerdirect("m_tgamma", function() return m_tgamma (scannumeric()) end)
local m_trunc = m.trunc registerdirect("m_trunc", function() return m_trunc (scannumeric()) end)
local m_y0 = m.y0 registerdirect("m_y0", function() return m_y0 (scannumeric()) end)
local m_y1 = m.y1 registerdirect("m_y1", function() return m_y1 (scannumeric()) end)
local m_yn = m.yn registerdirect("m_yn", function() return m_yn (scanpair ()) end)
if not (c and c.sin) then
return
end
local c_topair = c.topair
local c_totable = c.totable
local c_new = c.new
----- c_sin = c.sin registerdirect("c_sin", function() return c_totable(c_sin (c_new(scanpair()))) end)
local c_sin = c.sin registerscript("c_sin", function() return mppair(c_topair(c_sin (c_new(scanpair())))) end)
local c_cos = c.cos registerscript("c_cos", function() return mppair(c_topair(c_cos (c_new(scanpair())))) end)
local c_tan = c.tan registerscript("c_tan", function() return mppair(c_topair(c_tan (c_new(scanpair())))) end)
local c_sinh = c.sinh registerscript("c_sinh", function() return mppair(c_topair(c_sinh (c_new(scanpair())))) end)
local c_cosh = c.cosh registerscript("c_cosh", function() return mppair(c_topair(c_cosh (c_new(scanpair())))) end)
local c_tanh = c.tanh registerscript("c_tanh", function() return mppair(c_topair(c_tanh (c_new(scanpair())))) end)
local c_asin = c.asin registerscript("c_asin", function() return mppair(c_topair(c_sin (c_new(scanpair())))) end)
local c_acos = c.acos registerscript("c_acos", function() return mppair(c_topair(c_cos (c_new(scanpair())))) end)
local c_atan = c.atan registerscript("c_atan", function() return mppair(c_topair(c_tan (c_new(scanpair())))) end)
local c_asinh = c.asinh registerscript("c_asinh", function() return mppair(c_topair(c_sinh (c_new(scanpair())))) end)
local c_acosh = c.acosh registerscript("c_acosh", function() return mppair(c_topair(c_cosh (c_new(scanpair())))) end)
local c_atanh = c.atanh registerscript("c_atanh", function() return mppair(c_topair(c_tanh (c_new(scanpair())))) end)
local c_sqrt = c.sqrt registerscript("c_sqrt", function() return mppair(c_topair(c_sqrt (c_new(scanpair())))) end)
local c_abs = c.abs registerscript("c_abs", function() return c_topair(c_abs (c_new(scanpair()))) end)
local c_arg = c.arg registerscript("c_arg", function() return c_topair(c_arg (c_new(scanpair()))) end)
local c_conj = c.conj registerscript("c_conj", function() return mppair(c_topair(c_conj (c_new(scanpair())))) end)
local c_exp = c.exp registerscript("c_exp", function() return mppair(c_topair(c_exp (c_new(scanpair())))) end)
local c_log = c.log registerscript("c_log", function() return mppair(c_topair(c_log (c_new(scanpair())))) end)
local c_proj = c.proj registerscript("c_proj", function() return mppair(c_topair(c_proj (c_new(scanpair())))) end)
local c_erf = c.erf registerscript("c_erf", function() return mppair(c_topair(c_erf (c_new(scanpair())))) end)
local c_erfc = c.erfc registerscript("c_erfc", function() return mppair(c_topair(c_erfc (c_new(scanpair())))) end)
local c_erfcx = c.erfcx registerscript("c_erfcx", function() return mppair(c_topair(c_erfcx (c_new(scanpair())))) end)
local c_erfi = c.erfi registerscript("c_erfi", function() return mppair(c_topair(c_erfi (c_new(scanpair())))) end)
local c_dawson = c.dawson registerscript("c_dawson", function() return mppair(c_topair(c_dawson(c_new(scanpair())))) end)
local c_voigt = c.voigt
local c_voigt_hwhm = c.voigt_hwhm
registerscript("c_voigt", function()
return mppair(c_topair(c_voigt(c_new(scanpair()),c_new(scanpair()),c_new(scanpair()))))
end)
registerscript("c_voigt_hwhm", function()
return mppair(c_topair(c_voigt_hwhm(c_new(scanpair()),c_new(scanpair()))))
end)
local c_pow = c.pow registerscript("c_pow", function() return mppair(c_topair(c_pow(c_new(scanpair()),c_new(scanpair())))) end)
local c_add = c.add registerscript("c_add", function() return mppair(c_topair(c_add(c_new(scanpair()),c_new(scanpair())))) end)
local c_sub = c.sub registerscript("c_sub", function() return mppair(c_topair(c_sub(c_new(scanpair()),c_new(scanpair())))) end)
local c_mul = c.mul registerscript("c_mul", function() return mppair(c_topair(c_mul(c_new(scanpair()),c_new(scanpair())))) end)
local c_div = c.div registerscript("c_div", function() return mppair(c_topair(c_div(c_new(scanpair()),c_new(scanpair())))) end)
local c_imag = c.imag registerscript("c_imag", function() return c_topair(c_imag(c_new(scanpair()))) end)
local c_real = c.real registerscript("c_real", function() return c_topair(c_real(c_new(scanpair()))) end)
local c_neg = c.neg registerscript("c_new", function() return c_topair(c_neg (c_new(scanpair()))) end)
|