6 #ifndef LUA_LIBA_COMPLEX_H
7 #define LUA_LIBA_COMPLEX_H
13 @field real real part of complex number
14 @field imag imaginary part of complex number
15 @field rho the magnitude of complex number
16 @field theta the phase angle of complex number
19 #if defined(__cplusplus)
21 #endif /* __cplusplus */
24 constructor for complex number from real and imaginary parts
25 @tparam[opt] number|string|a.complex real real part of complex number
26 @tparam[opt] number imag imaginary part of complex number
27 @treturn a.complex complex number userdata
30 int liba_complex_new(lua_State
*L
);
33 constructor for complex number from rectangular Cartesian components
34 @tparam[opt] number real real part of complex number
35 @tparam[opt] number imag imaginary part of complex number
36 @treturn a.complex complex number userdata
39 int liba_complex_rect(lua_State
*L
);
42 constructor for complex number from polar form
43 @tparam[opt] number rho a distance from a reference point
44 @tparam[opt] number theta an angle from a reference direction
45 @treturn a.complex complex number userdata
48 int liba_complex_polar(lua_State
*L
);
51 complex number self is equal to complex number that
52 @tparam a.complex that complex number
53 @treturn bool result of comparison
56 int liba_complex_eq(lua_State
*L
);
59 complex number self is not equal to complex number that
60 @tparam a.complex that complex number
61 @treturn bool result of comparison
64 int liba_complex_ne(lua_State
*L
);
67 computes the natural logarithm of magnitude of a complex number
68 @treturn number log|z|
71 int liba_complex_logabs(lua_State
*L
);
74 computes the squared magnitude of a complex number
75 @treturn number a^2+b^2
78 int liba_complex_abs2(lua_State
*L
);
81 computes the magnitude of a complex number
82 @treturn number sqrt{a^2+b^2}
85 int liba_complex_abs(lua_State
*L
);
88 computes the phase angle of a complex number
89 @treturn number arctan(b/a)
92 int liba_complex_arg(lua_State
*L
);
95 computes the projection on Riemann sphere
96 @treturn a.complex complex number userdata
99 int liba_complex_proj(lua_State
*L
);
102 computes the complex conjugate
103 @treturn a.complex complex number userdata
106 int liba_complex_conj(lua_State
*L
);
109 computes the complex negative
110 @treturn a.complex complex number userdata
113 int liba_complex_neg(lua_State
*L
);
116 inverse of a complex number
117 @treturn a.complex complex number userdata
120 int liba_complex_inv(lua_State
*L
);
123 addition of complex numbers
124 @tparam a.complex z complex number userdata
125 @treturn a.complex complex number userdata
128 int liba_complex_add(lua_State
*L
);
131 subtraction of complex numbers
132 @tparam a.complex z complex number userdata
133 @treturn a.complex complex number userdata
136 int liba_complex_sub(lua_State
*L
);
139 multiplication of complex numbers
140 @tparam a.complex z complex number userdata
141 @treturn a.complex complex number userdata
144 int liba_complex_mul(lua_State
*L
);
147 division of complex numbers
148 @tparam a.complex z complex number userdata
149 @treturn a.complex complex number userdata
152 int liba_complex_div(lua_State
*L
);
155 complex number z raised to complex power a
156 @tparam a.complex a complex number userdata
157 @treturn a.complex complex number userdata
160 int liba_complex_pow(lua_State
*L
);
163 computes the complex base-b logarithm
164 @tparam a.complex b complex number userdata
165 @treturn a.complex complex number userdata
168 int liba_complex_logb(lua_State
*L
);
171 computes the complex base-e exponential
172 @treturn a.complex complex number userdata
175 int liba_complex_exp(lua_State
*L
);
178 computes the complex natural logarithm
179 @treturn a.complex complex number userdata
182 int liba_complex_log(lua_State
*L
);
185 computes the complex square root
186 @treturn a.complex complex number userdata
189 int liba_complex_sqrt(lua_State
*L
);
192 computes the complex base-2 logarithm
193 @treturn a.complex complex number userdata
196 int liba_complex_log2(lua_State
*L
);
199 computes the complex base-10 logarithm
200 @treturn a.complex complex number userdata
203 int liba_complex_log10(lua_State
*L
);
206 computes the complex sine
207 @treturn a.complex complex number userdata
210 int liba_complex_sin(lua_State
*L
);
213 computes the complex cosine
214 @treturn a.complex complex number userdata
217 int liba_complex_cos(lua_State
*L
);
220 computes the complex tangent
221 @treturn a.complex complex number userdata
224 int liba_complex_tan(lua_State
*L
);
227 computes the complex secant
228 @treturn a.complex complex number userdata
231 int liba_complex_sec(lua_State
*L
);
234 computes the complex cosecant
235 @treturn a.complex complex number userdata
238 int liba_complex_csc(lua_State
*L
);
241 computes the complex cotangent
242 @treturn a.complex complex number userdata
245 int liba_complex_cot(lua_State
*L
);
248 computes the complex arc sine
249 @treturn a.complex complex number userdata
252 int liba_complex_asin(lua_State
*L
);
255 computes the complex arc cosine
256 @treturn a.complex complex number userdata
259 int liba_complex_acos(lua_State
*L
);
262 computes the complex arc tangent
263 @treturn a.complex complex number userdata
266 int liba_complex_atan(lua_State
*L
);
269 computes the complex arc secant
270 @treturn a.complex complex number userdata
273 int liba_complex_asec(lua_State
*L
);
276 computes the complex arc cosecant
277 @treturn a.complex complex number userdata
280 int liba_complex_acsc(lua_State
*L
);
283 computes the complex arc cotangent
284 @treturn a.complex complex number userdata
287 int liba_complex_acot(lua_State
*L
);
290 computes the complex hyperbolic sine
291 @treturn a.complex complex number userdata
294 int liba_complex_sinh(lua_State
*L
);
297 computes the complex hyperbolic cosine
298 @treturn a.complex complex number userdata
301 int liba_complex_cosh(lua_State
*L
);
304 computes the complex hyperbolic tangent
305 @treturn a.complex complex number userdata
308 int liba_complex_tanh(lua_State
*L
);
311 computes the complex hyperbolic secant
312 @treturn a.complex complex number userdata
315 int liba_complex_sech(lua_State
*L
);
318 computes the complex hyperbolic cosecant
319 @treturn a.complex complex number userdata
322 int liba_complex_csch(lua_State
*L
);
325 computes the complex hyperbolic cotangent
326 @treturn a.complex complex number userdata
329 int liba_complex_coth(lua_State
*L
);
332 computes the complex arc hyperbolic sine
333 @treturn a.complex complex number userdata
336 int liba_complex_asinh(lua_State
*L
);
339 computes the complex arc hyperbolic cosine
340 @treturn a.complex complex number userdata
343 int liba_complex_acosh(lua_State
*L
);
346 computes the complex arc hyperbolic tangent
347 @treturn a.complex complex number userdata
350 int liba_complex_atanh(lua_State
*L
);
353 computes the complex arc hyperbolic secant
354 @treturn a.complex complex number userdata
357 int liba_complex_asech(lua_State
*L
);
360 computes the complex arc hyperbolic cosecant
361 @treturn a.complex complex number userdata
364 int liba_complex_acsch(lua_State
*L
);
367 computes the complex arc hyperbolic cotangent
368 @treturn a.complex complex number userdata
371 int liba_complex_acoth(lua_State
*L
);
373 #if defined(__cplusplus)
375 #endif /* __cplusplus */
377 #endif /* complex.h */