Ruby  3.4.0dev (2024-11-22 revision 0989400a925cd201defdca9eb28eb87200b30785)
complex.h
Go to the documentation of this file.
1 #ifndef RBIMPL_INTERN_COMPLEX_H /*-*-C++-*-vi:se ft=cpp:*/
2 #define RBIMPL_INTERN_COMPLEX_H
26 #include "ruby/internal/value.h"
27 #include "ruby/internal/arithmetic/long.h" /* INT2FIX is here. */
28 
30 
31 /* complex.c */
32 
33 
41 VALUE rb_complex_raw(VALUE real, VALUE imag);
42 
50 #define rb_complex_raw1(x) rb_complex_raw((x), INT2FIX(0))
51 
53 #define rb_complex_raw2(x,y) rb_complex_raw((x), (y))
54 
65 VALUE rb_complex_new(VALUE real, VALUE imag);
66 
74 #define rb_complex_new1(x) rb_complex_new((x), INT2FIX(0))
75 
77 #define rb_complex_new2(x,y) rb_complex_new((x), (y))
78 
89 
90 RBIMPL_ATTR_DEPRECATED(("by: rb_complex_new_polar"))
93 
102 
111 
121 
131 
141 
151 
159 
167 
175 
183 
192 VALUE rb_complex_pow(VALUE base, VALUE exp);
193 
202 VALUE rb_dbl_complex_new(double real, double imag);
203 
205 #define rb_complex_add rb_complex_plus
206 
208 #define rb_complex_sub rb_complex_minus
209 
211 #define rb_complex_nagate rb_complex_uminus
212 
236 VALUE rb_Complex(VALUE real, VALUE imag);
237 
246 #define rb_Complex1(x) rb_Complex((x), INT2FIX(0))
247 
249 #define rb_Complex2(x,y) rb_Complex((x), (y))
250 
252 
253 #endif /* RBIMPL_INTERN_COMPLEX_H */
Defines RBIMPL_ATTR_DEPRECATED.
#define RBIMPL_ATTR_DEPRECATED(msg)
Wraps (or simulates) [[deprecated]]
Definition: deprecated.h:36
Tweaking visibility of C variables/functions.
#define RBIMPL_SYMBOL_EXPORT_END()
Counterpart of RBIMPL_SYMBOL_EXPORT_BEGIN.
Definition: dllexport.h:74
#define RBIMPL_SYMBOL_EXPORT_BEGIN()
Shortcut macro equivalent to RUBY_SYMBOL_EXPORT_BEGIN extern "C" {.
Definition: dllexport.h:65
VALUE rb_complex_polar(VALUE abs, VALUE arg)
Old name of rb_complex_new_polar.
Definition: complex.c:1767
VALUE rb_complex_uminus(VALUE z)
Performs negation of the passed object.
Definition: complex.c:811
VALUE rb_complex_div(VALUE x, VALUE y)
Performs division of the passed two objects.
Definition: complex.c:1004
VALUE rb_complex_new(VALUE real, VALUE imag)
Constructs a Complex, by first multiplying the imaginary part with 1i then adds it to the real part.
Definition: complex.c:1755
VALUE rb_complex_plus(VALUE x, VALUE y)
Performs addition of the passed two objects.
Definition: complex.c:832
VALUE rb_complex_new_polar(VALUE abs, VALUE arg)
Constructs a Complex using polar representations.
Definition: complex.c:1761
VALUE rb_complex_arg(VALUE z)
Queries the argument (or the angle) of the passed object.
Definition: complex.c:1391
VALUE rb_complex_raw(VALUE real, VALUE imag)
Identical to rb_complex_new(), except it assumes both arguments are not instances of rb_cComplex.
Definition: complex.c:1749
VALUE rb_dbl_complex_new(double real, double imag)
Identical to rb_complex_new(), except it takes the arguments as C's double instead of Ruby's object.
Definition: complex.c:1782
VALUE rb_complex_abs(VALUE z)
Queries the absolute (or the magnitude) of the passed object.
Definition: complex.c:1331
VALUE rb_complex_real(VALUE z)
Queries the real part of the passed Complex.
Definition: complex.c:771
VALUE rb_complex_mul(VALUE x, VALUE y)
Performs multiplication of the passed two objects.
Definition: complex.c:928
VALUE rb_complex_conjugate(VALUE z)
Performs complex conjugation of the passed object.
Definition: complex.c:1456
VALUE rb_Complex(VALUE real, VALUE imag)
Converts various values into a Complex.
Definition: complex.c:1773
VALUE rb_complex_minus(VALUE x, VALUE y)
Performs subtraction of the passed two objects.
Definition: complex.c:867
VALUE rb_complex_pow(VALUE base, VALUE exp)
Performs exponentiation of the passed two objects.
Definition: complex.c:1123
VALUE rb_complex_imag(VALUE z)
Queries the imaginary part of the passed Complex.
Definition: complex.c:794
RBIMPL_ATTR_PURE() int rb_io_read_pending(rb_io_t *fptr)
Queries if the passed IO has any pending reads.
Arithmetic conversion between C's long and Ruby's.
Defines RBIMPL_ATTR_PURE.
Defines VALUE and ID.
uintptr_t VALUE
Type that represents a Ruby object.
Definition: value.h:40