Defines | Functions | Variables

complex.c File Reference

#include "ruby.h"
#include <math.h>
#include <assert.h>
Include dependency graph for complex.c:

Go to the source code of this file.

Defines

#define NDEBUG
#define ZERO   INT2FIX(0)
#define ONE   INT2FIX(1)
#define TWO   INT2FIX(2)
#define f_boolcast(x)   ((x) ? Qtrue : Qfalse)
#define binop(n, op)
#define fun1(n)
#define fun2(n)
#define math1(n)
#define math2(n)
#define PRESERVE_SIGNEDZERO
#define f_positive_p(x)   (!f_negative_p(x))
#define f_nonzero_p(x)   (!f_zero_p(x))
#define k_exact_p(x)   (!k_float_p(x))
#define k_inexact_p(x)   k_float_p(x)
#define k_exact_zero_p(x)   (k_exact_p(x) && f_zero_p(x))
#define k_exact_one_p(x)   (k_exact_p(x) && f_one_p(x))
#define get_dat1(x)
#define get_dat2(x, y)
#define imp1(n)
#define imp2(n)
#define m_hypot(x, y)   m_hypot_bang(x,y)
#define rb_raise_zerodiv()   rb_raise(rb_eZeroDivError, "divided by 0")
#define nucomp_quo   nucomp_div
#define WS   "\\s*"
#define DIGITS   "(?:[0-9](?:_[0-9]|[0-9])*)"
#define NUMERATOR   "(?:" DIGITS "?\\.)?" DIGITS "(?:[eE][-+]?" DIGITS ")?"
#define DENOMINATOR   DIGITS
#define NUMBER   "[-+]?" NUMERATOR "(?:\\/" DENOMINATOR ")?"
#define NUMBERNOS   NUMERATOR "(?:\\/" DENOMINATOR ")?"
#define PATTERN0   "\\A" WS "(" NUMBER ")@(" NUMBER ")" WS
#define PATTERN1   "\\A" WS "([-+])?(" NUMBER ")?[iIjJ]" WS
#define PATTERN2   "\\A" WS "(" NUMBER ")(([-+])(" NUMBERNOS ")?[iIjJ])?" WS
#define id_match   rb_intern("match")
#define f_match(x, y)   rb_funcall(x, id_match, 1, y)
#define id_aref   rb_intern("[]")
#define f_aref(x, y)   rb_funcall(x, id_aref, 1, y)
#define id_post_match   rb_intern("post_match")
#define f_post_match(x)   rb_funcall(x, id_post_match, 0)
#define id_split   rb_intern("split")
#define f_split(x, y)   rb_funcall(x, id_split, 1, y)
#define id_include_p   rb_intern("include?")
#define f_include_p(x, y)   rb_funcall(x, id_include_p, 1, y)
#define id_count   rb_intern("count")
#define f_count(x, y)   rb_funcall(x, id_count, 1, y)
#define id_gsub_bang   rb_intern("gsub!")
#define f_gsub_bang(x, y, z)   rb_funcall(x, id_gsub_bang, 2, y, z)
#define id_gsub   rb_intern("gsub")
#define f_gsub(x, y, z)   rb_funcall(x, id_gsub, 2, y, z)
#define id_PI   rb_intern("PI")
#define rb_intern(str)   rb_intern_const(str)

Functions

static VALUE f_add (VALUE x, VALUE y)
static VALUE f_cmp (VALUE x, VALUE y)
static VALUE f_div (VALUE x, VALUE y)
static VALUE f_gt_p (VALUE x, VALUE y)
static VALUE f_lt_p (VALUE x, VALUE y)
 binop (mod, '%')
static VALUE f_sub (VALUE x, VALUE y)
 fun1 (abs)
 fun2 (expt)
static VALUE f_zero_p (VALUE x)
static VALUE f_one_p (VALUE x)
static VALUE f_kind_of_p (VALUE x, VALUE c)
static VALUE k_numeric_p (VALUE x)
static VALUE k_integer_p (VALUE x)
static VALUE k_fixnum_p (VALUE x)
static VALUE k_bignum_p (VALUE x)
static VALUE k_float_p (VALUE x)
static VALUE k_rational_p (VALUE x)
static VALUE k_complex_p (VALUE x)
static VALUE nucomp_s_new_internal (VALUE klass, VALUE real, VALUE imag)
static VALUE nucomp_s_alloc (VALUE klass)
static VALUE f_complex_new_bang1 (VALUE klass, VALUE x)
static VALUE f_complex_new_bang2 (VALUE klass, VALUE x, VALUE y)
static void nucomp_real_check (VALUE num)
static VALUE nucomp_s_canonicalize_internal (VALUE klass, VALUE real, VALUE imag)
static VALUE nucomp_s_new (int argc, VALUE *argv, VALUE klass)
static VALUE f_complex_new1 (VALUE klass, VALUE x)
static VALUE f_complex_new2 (VALUE klass, VALUE x, VALUE y)
static VALUE nucomp_f_complex (int argc, VALUE *argv, VALUE klass)
 imp2 (atan2)
 imp1 (sin)
static VALUE m_sin (VALUE x)
static VALUE f_complex_polar (VALUE klass, VALUE x, VALUE y)
static VALUE nucomp_s_polar (int argc, VALUE *argv, VALUE klass)
static VALUE nucomp_real (VALUE self)
static VALUE nucomp_imag (VALUE self)
static VALUE nucomp_negate (VALUE self)
static VALUE f_addsub (VALUE self, VALUE other, VALUE(*func)(VALUE, VALUE), ID id)
static VALUE nucomp_add (VALUE self, VALUE other)
static VALUE nucomp_sub (VALUE self, VALUE other)
static VALUE nucomp_mul (VALUE self, VALUE other)
static VALUE f_divide (VALUE self, VALUE other, VALUE(*func)(VALUE, VALUE), ID id)
static VALUE nucomp_div (VALUE self, VALUE other)
static VALUE nucomp_fdiv (VALUE self, VALUE other)
static VALUE f_reciprocal (VALUE x)
static VALUE nucomp_expt (VALUE self, VALUE other)
static VALUE nucomp_eqeq_p (VALUE self, VALUE other)
static VALUE nucomp_coerce (VALUE self, VALUE other)
static VALUE nucomp_abs (VALUE self)
static VALUE nucomp_abs2 (VALUE self)
static VALUE nucomp_arg (VALUE self)
static VALUE nucomp_rect (VALUE self)
static VALUE nucomp_polar (VALUE self)
static VALUE nucomp_conj (VALUE self)
static VALUE nucomp_false (VALUE self)
VALUE rb_lcm (VALUE x, VALUE y)
static VALUE nucomp_denominator (VALUE self)
static VALUE nucomp_numerator (VALUE self)
static VALUE nucomp_hash (VALUE self)
static VALUE nucomp_eql_p (VALUE self, VALUE other)
static VALUE f_signbit (VALUE x)
static VALUE f_tpositive_p (VALUE x)
static VALUE f_format (VALUE self, VALUE(*func)(VALUE))
static VALUE nucomp_to_s (VALUE self)
static VALUE nucomp_inspect (VALUE self)
static VALUE nucomp_marshal_dump (VALUE self)
static VALUE nucomp_marshal_load (VALUE self, VALUE a)
VALUE rb_complex_raw (VALUE x, VALUE y)
VALUE rb_complex_new (VALUE x, VALUE y)
VALUE rb_complex_polar (VALUE x, VALUE y)
static VALUE nucomp_s_convert (int argc, VALUE *argv, VALUE klass)
VALUE rb_Complex (VALUE x, VALUE y)
static VALUE nucomp_to_i (VALUE self)
static VALUE nucomp_to_f (VALUE self)
static VALUE nucomp_to_r (VALUE self)
static VALUE nucomp_rationalize (int argc, VALUE *argv, VALUE self)
static VALUE nilclass_to_c (VALUE self)
static VALUE numeric_to_c (VALUE self)
static void make_patterns (void)
static VALUE string_to_c_internal (VALUE self)
static VALUE string_to_c_strict (VALUE self)
static VALUE string_to_c (VALUE self)
static VALUE numeric_real (VALUE self)
static VALUE numeric_imag (VALUE self)
static VALUE numeric_abs2 (VALUE self)
static VALUE numeric_arg (VALUE self)
static VALUE numeric_rect (VALUE self)
static VALUE numeric_polar (VALUE self)
static VALUE numeric_conj (VALUE self)
static VALUE float_arg (VALUE self)
void Init_Complex (void)

Variables

VALUE rb_cComplex
static ID id_abs
static ID id_abs2
static ID id_arg
static ID id_cmp
static ID id_conj
static ID id_convert
static ID id_denominator
static ID id_divmod
static ID id_eqeq_p
static ID id_expt
static ID id_fdiv
static ID id_floor
static ID id_idiv
static ID id_imag
static ID id_inspect
static ID id_negate
static ID id_numerator
static ID id_quo
static ID id_real
static ID id_real_p
static ID id_to_f
static ID id_to_i
static ID id_to_r
static ID id_to_s
static VALUE comp_pat0
static VALUE comp_pat1
static VALUE comp_pat2
static VALUE a_slash
static VALUE a_dot_and_an_e
static VALUE null_string
static VALUE underscores_pat
static VALUE an_underscore

Define Documentation

#define binop (   n,
  op 
)
Value:
inline static VALUE \
f_##n(VALUE x, VALUE y)\
{\
    return rb_funcall(x, op, 1, y);\
}

Definition at line 27 of file complex.c.

#define DENOMINATOR   DIGITS

Definition at line 1381 of file complex.c.

#define DIGITS   "(?:[0-9](?:_[0-9]|[0-9])*)"

Definition at line 1379 of file complex.c.

#define f_aref (   x,
  y 
)    rb_funcall(x, id_aref, 1, y)

Definition at line 1428 of file complex.c.

Referenced by string_to_c_internal().

#define f_boolcast (   x  )     ((x) ? Qtrue : Qfalse)
#define f_count (   x,
  y 
)    rb_funcall(x, id_count, 1, y)

Definition at line 1440 of file complex.c.

Referenced by string_to_c_internal().

#define f_gsub (   x,
  y,
  z 
)    rb_funcall(x, id_gsub, 2, y, z)

Definition at line 1542 of file complex.c.

Referenced by string_to_c().

#define f_gsub_bang (   x,
  y,
  z 
)    rb_funcall(x, id_gsub_bang, 2, y, z)

Definition at line 1443 of file complex.c.

#define f_include_p (   x,
  y 
)    rb_funcall(x, id_include_p, 1, y)

Definition at line 1437 of file complex.c.

Referenced by string_to_c_internal().

#define f_match (   x,
  y 
)    rb_funcall(x, id_match, 1, y)

Definition at line 1425 of file complex.c.

Referenced by string_to_c_internal().

#define f_nonzero_p (   x  )     (!f_zero_p(x))

Definition at line 213 of file complex.c.

Referenced by nucomp_to_f(), nucomp_to_i(), and nucomp_to_r().

#define f_positive_p (   x  )     (!f_negative_p(x))

Definition at line 193 of file complex.c.

Referenced by numeric_arg().

#define f_post_match (   x  )     rb_funcall(x, id_post_match, 0)

Definition at line 1431 of file complex.c.

Referenced by string_to_c_internal().

#define f_split (   x,
  y 
)    rb_funcall(x, id_split, 1, y)

Definition at line 1434 of file complex.c.

#define fun1 (   n  ) 
Value:
inline static VALUE \
f_##n(VALUE x)\
{\
    return rb_funcall(x, id_##n, 0);\
}

Definition at line 34 of file complex.c.

#define fun2 (   n  ) 
Value:
inline static VALUE \
f_##n(VALUE x, VALUE y)\
{\
    return rb_funcall(x, id_##n, 1, y);\
}

Definition at line 41 of file complex.c.

#define get_dat1 (   x  ) 
#define get_dat2 (   x,
  y 
)
Value:
struct RComplex *adat, *bdat;\
    adat = ((struct RComplex *)(x));\
    bdat = ((struct RComplex *)(y))

Definition at line 293 of file complex.c.

Referenced by f_addsub(), f_divide(), nucomp_eqeq_p(), nucomp_eql_p(), nucomp_mul(), and nucomp_s_canonicalize_internal().

#define id_aref   rb_intern("[]")

Definition at line 1427 of file complex.c.

#define id_count   rb_intern("count")

Definition at line 1439 of file complex.c.

#define id_gsub   rb_intern("gsub")

Definition at line 1541 of file complex.c.

#define id_gsub_bang   rb_intern("gsub!")

Definition at line 1442 of file complex.c.

#define id_include_p   rb_intern("include?")

Definition at line 1436 of file complex.c.

#define id_match   rb_intern("match")

Definition at line 1424 of file complex.c.

#define id_PI   rb_intern("PI")

Definition at line 1708 of file complex.c.

Referenced by float_arg(), and numeric_arg().

#define id_post_match   rb_intern("post_match")

Definition at line 1430 of file complex.c.

#define id_split   rb_intern("split")

Definition at line 1433 of file complex.c.

#define imp1 (   n  ) 
Value:
extern VALUE rb_math_##n(VALUE x);\
inline static VALUE \
m_##n##_bang(VALUE x)\
{\
    return rb_math_##n(x);\
}

Definition at line 474 of file complex.c.

#define imp2 (   n  ) 
Value:
extern VALUE rb_math_##n(VALUE x, VALUE y);\
inline static VALUE \
m_##n##_bang(VALUE x, VALUE y)\
{\
    return rb_math_##n(x, y);\
}

Definition at line 482 of file complex.c.

#define k_exact_one_p (   x  )     (k_exact_p(x) && f_one_p(x))

Definition at line 287 of file complex.c.

#define k_exact_p (   x  )     (!k_float_p(x))

Definition at line 283 of file complex.c.

#define k_exact_zero_p (   x  )     (k_exact_p(x) && f_zero_p(x))

Definition at line 286 of file complex.c.

Referenced by nucomp_expt(), nucomp_s_canonicalize_internal(), and nucomp_s_convert().

#define k_inexact_p (   x  )     k_float_p(x)

Definition at line 284 of file complex.c.

Referenced by nucomp_to_f(), nucomp_to_i(), and nucomp_to_r().

#define m_hypot (   x,
  y 
)    m_hypot_bang(x,y)

Referenced by nucomp_abs().

#define math1 (   n  ) 
Value:
inline static VALUE \
m_##n(VALUE x)\
{\
    return rb_funcall(rb_mMath, id_##n, 1, x);\
}

Definition at line 48 of file complex.c.

#define math2 (   n  ) 
Value:
inline static VALUE \
m_##n(VALUE x, VALUE y)\
{\
    return rb_funcall(rb_mMath, id_##n, 2, x, y);\
}

Definition at line 55 of file complex.c.

#define NDEBUG

Definition at line 11 of file complex.c.

#define nucomp_quo   nucomp_div

Definition at line 789 of file complex.c.

Referenced by Init_Complex().

#define NUMBER   "[-+]?" NUMERATOR "(?:\\/" DENOMINATOR ")?"

Definition at line 1382 of file complex.c.

#define NUMBERNOS   NUMERATOR "(?:\\/" DENOMINATOR ")?"

Definition at line 1383 of file complex.c.

#define NUMERATOR   "(?:" DIGITS "?\\.)?" DIGITS "(?:[eE][-+]?" DIGITS ")?"

Definition at line 1380 of file complex.c.

#define ONE   INT2FIX(1)

Definition at line 15 of file complex.c.

Referenced by f_divide(), f_one_p(), f_reciprocal(), Init_Complex(), nucomp_expt(), and nucomp_s_convert().

#define PATTERN0   "\\A" WS "(" NUMBER ")@(" NUMBER ")" WS

Definition at line 1384 of file complex.c.

#define PATTERN1   "\\A" WS "([-+])?(" NUMBER ")?[iIjJ]" WS

Definition at line 1385 of file complex.c.

#define PATTERN2   "\\A" WS "(" NUMBER ")(([-+])(" NUMBERNOS ")?[iIjJ])?" WS

Definition at line 1386 of file complex.c.

#define PRESERVE_SIGNEDZERO

Definition at line 62 of file complex.c.

#define rb_intern (   str  )     rb_intern_const(str)
#define rb_raise_zerodiv (  )     rb_raise(rb_eZeroDivError, "divided by 0")

Definition at line 769 of file complex.c.

#define TWO   INT2FIX(2)

Definition at line 16 of file complex.c.

Referenced by nucomp_expt().

#define WS   "\\s*"

Definition at line 1378 of file complex.c.

#define ZERO   INT2FIX(0)

Function Documentation

binop ( mod  ,
'%'   
)

Definition at line 114 of file complex.c.

References FIX2LONG, FIXNUM_P, rb_funcall(), T_BIGNUM, and TYPE.

static VALUE f_add ( VALUE  x,
VALUE  y 
) [inline, static]
static VALUE f_addsub ( VALUE  self,
VALUE  other,
VALUE(*)(VALUE, VALUE func,
ID  id 
) [inline, static]

Definition at line 640 of file complex.c.

References CLASS_OF, f_complex_new2(), func, get_dat1, get_dat2, k_complex_p(), k_numeric_p(), and rb_num_coerce_bin().

Referenced by nucomp_add(), and nucomp_sub().

static VALUE f_cmp ( VALUE  x,
VALUE  y 
) [inline, static]

Definition at line 77 of file complex.c.

References FIX2LONG, FIXNUM_P, id_cmp, INT2FIX, and rb_funcall().

static VALUE f_complex_new1 ( VALUE  klass,
VALUE  x 
) [inline, static]

Definition at line 449 of file complex.c.

References assert, k_complex_p(), nucomp_s_canonicalize_internal(), and ZERO.

static VALUE f_complex_new2 ( VALUE  klass,
VALUE  x,
VALUE  y 
) [inline, static]
static VALUE f_complex_new_bang1 ( VALUE  klass,
VALUE  x 
) [inline, static]

Definition at line 341 of file complex.c.

References assert, k_complex_p(), nucomp_s_new_internal(), and ZERO.

Referenced by nucomp_coerce(), and nucomp_expt().

static VALUE f_complex_new_bang2 ( VALUE  klass,
VALUE  x,
VALUE  y 
) [inline, static]

Definition at line 348 of file complex.c.

References assert, k_complex_p(), and nucomp_s_new_internal().

Referenced by Init_Complex(), and nucomp_s_convert().

static VALUE f_complex_polar ( VALUE  klass,
VALUE  x,
VALUE  y 
) [inline, static]

Definition at line 565 of file complex.c.

References assert, k_complex_p(), m_sin(), and nucomp_s_canonicalize_internal().

Referenced by nucomp_expt(), nucomp_s_polar(), and rb_complex_polar().

static VALUE f_div ( VALUE  x,
VALUE  y 
) [inline, static]

Definition at line 91 of file complex.c.

References FIX2LONG, FIXNUM_P, and rb_funcall().

Referenced by nucomp_numerator().

static VALUE f_divide ( VALUE  self,
VALUE  other,
VALUE(*)(VALUE, VALUE func,
ID  id 
) [inline, static]
static VALUE f_format ( VALUE  self,
VALUE(*)(VALUE func 
) [static]
static VALUE f_gt_p ( VALUE  x,
VALUE  y 
) [inline, static]

Definition at line 99 of file complex.c.

References f_boolcast, FIX2LONG, FIXNUM_P, and rb_funcall().

Referenced by f_divide(), nucomp_expt(), and string_to_c_internal().

static VALUE f_kind_of_p ( VALUE  x,
VALUE  c 
) [inline, static]
static VALUE f_lt_p ( VALUE  x,
VALUE  y 
) [inline, static]

Definition at line 107 of file complex.c.

References f_boolcast, FIX2LONG, FIXNUM_P, and rb_funcall().

static VALUE f_one_p ( VALUE  x  )  [inline, static]

Definition at line 216 of file complex.c.

References f_boolcast, FIX2LONG, FIXNUM_P, id_eqeq_p, ONE, rb_funcall(), RRATIONAL, T_BIGNUM, T_FIXNUM, T_RATIONAL, and TYPE.

Referenced by nucomp_expt().

static VALUE f_reciprocal ( VALUE  x  )  [inline, static]

Definition at line 808 of file complex.c.

References f_quo, and ONE.

Referenced by nucomp_expt().

static VALUE f_signbit ( VALUE  x  )  [inline, static]

Definition at line 1158 of file complex.c.

References f_boolcast, isnan, RFLOAT_VALUE, signbit(), T_FLOAT, and TYPE.

Referenced by f_tpositive_p().

static VALUE f_sub ( VALUE  x,
VALUE  y 
) [inline, static]

Definition at line 143 of file complex.c.

References FIX2LONG, FIXNUM_P, and rb_funcall().

Referenced by f_divide(), nucomp_expt(), nucomp_mul(), nucomp_s_canonicalize_internal(), and nucomp_sub().

static VALUE f_tpositive_p ( VALUE  x  )  [inline, static]

Definition at line 1170 of file complex.c.

References f_boolcast, and f_signbit().

Referenced by f_format(), and float_arg().

static VALUE f_zero_p ( VALUE  x  )  [inline, static]
static VALUE float_arg ( VALUE  self  )  [static]

Definition at line 1772 of file complex.c.

References f_tpositive_p(), id_PI, INT2FIX, isnan, rb_const_get(), rb_mMath, and RFLOAT_VALUE.

Referenced by Init_Complex().

fun1 ( abs   ) 

Definition at line 152 of file complex.c.

References f_boolcast, FIX2LONG, FIXNUM_P, id_eqeq_p, and rb_funcall().

fun2 ( expt   ) 

Definition at line 180 of file complex.c.

References f_boolcast, FIX2LONG, FIXNUM_P, rb_funcall(), and ZERO.

imp1 ( sin   ) 

Definition at line 506 of file complex.c.

References f_complex_new2(), get_dat1, and rb_cComplex.

imp2 ( atan2   ) 

Definition at line 490 of file complex.c.

void Init_Complex ( void   ) 
static VALUE k_bignum_p ( VALUE  x  )  [inline, static]

Definition at line 260 of file complex.c.

References f_kind_of_p(), and rb_cBignum.

Referenced by nucomp_expt().

static VALUE k_complex_p ( VALUE  x  )  [inline, static]
static VALUE k_fixnum_p ( VALUE  x  )  [inline, static]

Definition at line 254 of file complex.c.

References f_kind_of_p(), and rb_cFixnum.

Referenced by nucomp_expt().

static VALUE k_float_p ( VALUE  x  )  [inline, static]

Definition at line 266 of file complex.c.

References f_kind_of_p(), and rb_cFloat.

Referenced by f_divide(), and nucomp_abs().

static VALUE k_integer_p ( VALUE  x  )  [inline, static]

Definition at line 248 of file complex.c.

References f_kind_of_p(), and rb_cInteger.

static VALUE k_numeric_p ( VALUE  x  )  [inline, static]
static VALUE k_rational_p ( VALUE  x  )  [inline, static]

Definition at line 272 of file complex.c.

References f_kind_of_p(), and rb_cRational.

Referenced by nucomp_expt().

static VALUE m_sin ( VALUE  x  )  [static]

Definition at line 526 of file complex.c.

References f_complex_new2(), get_dat1, and rb_cComplex.

Referenced by f_complex_polar().

static void make_patterns ( void   )  [static]

Definition at line 1389 of file complex.c.

References rb_gc_register_mark_object(), rb_reg_new(), and rb_usascii_str_new2().

Referenced by Init_Complex().

static VALUE nilclass_to_c ( VALUE  self  )  [static]

Definition at line 1358 of file complex.c.

References INT2FIX, and rb_complex_new1.

Referenced by Init_Complex().

static VALUE nucomp_abs ( VALUE  self  )  [static]

Definition at line 948 of file complex.c.

References f_zero_p(), get_dat1, k_float_p(), and m_hypot.

Referenced by Init_Complex().

static VALUE nucomp_abs2 ( VALUE  self  )  [static]

Definition at line 974 of file complex.c.

References f_add(), and get_dat1.

Referenced by Init_Complex().

static VALUE nucomp_add ( VALUE  self,
VALUE  other 
) [static]

Definition at line 669 of file complex.c.

References f_add(), and f_addsub().

Referenced by Init_Complex().

static VALUE nucomp_arg ( VALUE  self  )  [static]

Definition at line 990 of file complex.c.

References get_dat1.

Referenced by Init_Complex().

static VALUE nucomp_coerce ( VALUE  self,
VALUE  other 
) [static]
static VALUE nucomp_conj ( VALUE  self  )  [static]

Definition at line 1030 of file complex.c.

References CLASS_OF, f_complex_new2(), and get_dat1.

Referenced by Init_Complex().

static VALUE nucomp_denominator ( VALUE  self  )  [static]

Definition at line 1085 of file complex.c.

References f_denominator, get_dat1, and rb_lcm().

Referenced by Init_Complex().

static VALUE nucomp_div ( VALUE  self,
VALUE  other 
) [static]

Definition at line 784 of file complex.c.

References f_divide(), f_quo, and id_quo.

Referenced by Init_Complex().

static VALUE nucomp_eqeq_p ( VALUE  self,
VALUE  other 
) [static]

Definition at line 910 of file complex.c.

References f_boolcast, f_zero_p(), get_dat1, get_dat2, k_complex_p(), and k_numeric_p().

Referenced by Init_Complex().

static VALUE nucomp_eql_p ( VALUE  self,
VALUE  other 
) [static]

Definition at line 1144 of file complex.c.

References CLASS_OF, f_boolcast, get_dat2, and k_complex_p().

Referenced by Init_Complex().

static VALUE nucomp_expt ( VALUE  self,
VALUE  other 
) [static]
static VALUE nucomp_f_complex ( int  argc,
VALUE argv,
VALUE  klass 
) [static]

Definition at line 469 of file complex.c.

References id_convert, rb_cComplex, and rb_funcall2().

Referenced by Init_Complex().

static VALUE nucomp_false ( VALUE  self  )  [static]

Definition at line 1052 of file complex.c.

Referenced by Init_Complex().

static VALUE nucomp_fdiv ( VALUE  self,
VALUE  other 
) [static]

Definition at line 802 of file complex.c.

References f_divide(), and id_fdiv.

Referenced by Init_Complex().

static VALUE nucomp_hash ( VALUE  self  )  [static]

Definition at line 1128 of file complex.c.

References get_dat1, LONG2FIX, NUM2LONG(), rb_hash(), and rb_memhash().

Referenced by Init_Complex().

static VALUE nucomp_imag ( VALUE  self  )  [static]

Definition at line 619 of file complex.c.

References get_dat1.

Referenced by Init_Complex().

static VALUE nucomp_inspect ( VALUE  self  )  [static]

Definition at line 1214 of file complex.c.

References f_format(), rb_str_cat2(), rb_str_concat(), and rb_usascii_str_new2().

Referenced by Init_Complex().

static VALUE nucomp_marshal_dump ( VALUE  self  )  [static]

Definition at line 1227 of file complex.c.

References get_dat1, rb_assoc_new(), and rb_copy_generic_ivar().

Referenced by Init_Complex().

static VALUE nucomp_marshal_load ( VALUE  self,
VALUE  a 
) [static]

Definition at line 1239 of file complex.c.

References Check_Type, get_dat1, RARRAY_PTR, rb_copy_generic_ivar(), and T_ARRAY.

Referenced by Init_Complex().

static VALUE nucomp_mul ( VALUE  self,
VALUE  other 
) [static]
static VALUE nucomp_negate ( VALUE  self  )  [static]

Definition at line 632 of file complex.c.

References CLASS_OF, f_complex_new2(), and get_dat1.

Referenced by Init_Complex().

static VALUE nucomp_numerator ( VALUE  self  )  [static]

Definition at line 1112 of file complex.c.

References CLASS_OF, f_complex_new2(), f_denominator, f_div(), f_numerator, and get_dat1.

Referenced by Init_Complex().

static VALUE nucomp_polar ( VALUE  self  )  [static]

Definition at line 1017 of file complex.c.

References rb_assoc_new().

Referenced by Init_Complex().

static VALUE nucomp_rationalize ( int  argc,
VALUE argv,
VALUE  self 
) [static]

Definition at line 1345 of file complex.c.

References nucomp_to_r(), NULL, and rb_scan_args().

Referenced by Init_Complex().

static VALUE nucomp_real ( VALUE  self  )  [static]

Definition at line 605 of file complex.c.

References get_dat1.

Referenced by Init_Complex().

static void nucomp_real_check ( VALUE  num  )  [inline, static]

Definition at line 370 of file complex.c.

References k_numeric_p(), rb_eTypeError, rb_raise(), T_BIGNUM, T_FIXNUM, T_FLOAT, T_RATIONAL, and TYPE.

Referenced by nucomp_s_new(), and nucomp_s_polar().

static VALUE nucomp_rect ( VALUE  self  )  [static]

Definition at line 1004 of file complex.c.

References get_dat1, and rb_assoc_new().

Referenced by Init_Complex().

static VALUE nucomp_s_alloc ( VALUE  klass  )  [static]

Definition at line 311 of file complex.c.

References nucomp_s_new_internal(), and ZERO.

Referenced by Init_Complex().

static VALUE nucomp_s_canonicalize_internal ( VALUE  klass,
VALUE  real,
VALUE  imag 
) [inline, static]
static VALUE nucomp_s_convert ( int  argc,
VALUE argv,
VALUE  klass 
) [static]
static VALUE nucomp_s_new ( int  argc,
VALUE argv,
VALUE  klass 
) [static]

Definition at line 430 of file complex.c.

References nucomp_real_check(), nucomp_s_canonicalize_internal(), and rb_scan_args().

Referenced by Init_Complex(), and nucomp_s_convert().

static VALUE nucomp_s_new_internal ( VALUE  klass,
VALUE  real,
VALUE  imag 
) [inline, static]
static VALUE nucomp_s_polar ( int  argc,
VALUE argv,
VALUE  klass 
) [static]

Definition at line 581 of file complex.c.

References f_complex_polar(), nucomp_real_check(), and rb_scan_args().

Referenced by Init_Complex().

static VALUE nucomp_sub ( VALUE  self,
VALUE  other 
) [static]

Definition at line 681 of file complex.c.

References f_addsub(), and f_sub().

Referenced by Init_Complex().

static VALUE nucomp_to_f ( VALUE  self  )  [static]

Definition at line 1306 of file complex.c.

References f_nonzero_p, get_dat1, k_inexact_p, rb_eRangeError, rb_raise(), and StringValuePtr.

Referenced by Init_Complex().

static VALUE nucomp_to_i ( VALUE  self  )  [static]

Definition at line 1287 of file complex.c.

References f_nonzero_p, get_dat1, k_inexact_p, rb_eRangeError, rb_raise(), and StringValuePtr.

Referenced by Init_Complex().

static VALUE nucomp_to_r ( VALUE  self  )  [static]

Definition at line 1325 of file complex.c.

References f_nonzero_p, f_to_r, get_dat1, k_inexact_p, rb_eRangeError, rb_raise(), and StringValuePtr.

Referenced by Init_Complex(), and nucomp_rationalize().

static VALUE nucomp_to_s ( VALUE  self  )  [static]

Definition at line 1202 of file complex.c.

References f_format().

Referenced by Init_Complex().

static VALUE numeric_abs2 ( VALUE  self  )  [static]

Definition at line 1703 of file complex.c.

Referenced by Init_Complex().

static VALUE numeric_arg ( VALUE  self  )  [static]

Definition at line 1719 of file complex.c.

References f_positive_p, id_PI, INT2FIX, rb_const_get(), and rb_mMath.

Referenced by Init_Complex().

static VALUE numeric_conj ( VALUE  self  )  [static]

Definition at line 1758 of file complex.c.

Referenced by Init_Complex().

static VALUE numeric_imag ( VALUE  self  )  [static]

Definition at line 1691 of file complex.c.

References INT2FIX.

Referenced by Init_Complex().

static VALUE numeric_polar ( VALUE  self  )  [static]

Definition at line 1745 of file complex.c.

References rb_assoc_new().

Referenced by Init_Complex().

static VALUE numeric_real ( VALUE  self  )  [static]

Definition at line 1678 of file complex.c.

Referenced by Init_Complex().

static VALUE numeric_rect ( VALUE  self  )  [static]

Definition at line 1733 of file complex.c.

References INT2FIX, and rb_assoc_new().

Referenced by Init_Complex().

static VALUE numeric_to_c ( VALUE  self  )  [static]

Definition at line 1370 of file complex.c.

References rb_complex_new1.

Referenced by Init_Complex().

VALUE rb_Complex ( VALUE  x,
VALUE  y 
)

Definition at line 1272 of file complex.c.

References nucomp_s_convert(), and rb_cComplex.

VALUE rb_complex_new ( VALUE  x,
VALUE  y 
)

Definition at line 1258 of file complex.c.

References nucomp_s_canonicalize_internal(), and rb_cComplex.

Referenced by num_imaginary().

VALUE rb_complex_polar ( VALUE  x,
VALUE  y 
)

Definition at line 1264 of file complex.c.

References f_complex_polar(), and rb_cComplex.

Referenced by string_to_c_internal().

VALUE rb_complex_raw ( VALUE  x,
VALUE  y 
)

Definition at line 1252 of file complex.c.

References nucomp_s_new_internal(), and rb_cComplex.

VALUE rb_lcm ( VALUE  x,
VALUE  y 
)

Definition at line 1634 of file rational.c.

References f_lcm(), and nurat_int_value().

Referenced by Init_Rational(), and nucomp_denominator().

static VALUE string_to_c ( VALUE  self  )  [static]
static VALUE string_to_c_internal ( VALUE  self  )  [static]
static VALUE string_to_c_strict ( VALUE  self  )  [static]

Variable Documentation

Definition at line 1375 of file complex.c.

VALUE a_slash [static]

Definition at line 1375 of file complex.c.

VALUE an_underscore [static]

Definition at line 1375 of file complex.c.

VALUE comp_pat0 [static]

Definition at line 1375 of file complex.c.

VALUE comp_pat1 [static]

Definition at line 1375 of file complex.c.

VALUE comp_pat2 [static]

Definition at line 1375 of file complex.c.

ID id_abs [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex().

ID id_abs2 [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex().

ID id_arg [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex().

ID id_cmp [static]

Definition at line 20 of file complex.c.

Referenced by f_cmp(), and Init_Complex().

ID id_conj [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex().

ID id_convert [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex(), and nucomp_f_complex().

ID id_denominator [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex().

ID id_divmod [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex().

ID id_eqeq_p [static]

Definition at line 20 of file complex.c.

Referenced by f_one_p(), f_zero_p(), fun1(), and Init_Complex().

ID id_expt [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex(), and nucomp_expt().

ID id_fdiv [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex(), and nucomp_fdiv().

ID id_floor [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex().

ID id_idiv [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex().

ID id_imag [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex().

ID id_inspect [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex().

ID id_negate [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex().

ID id_numerator [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex().

ID id_quo [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex(), and nucomp_div().

ID id_real [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex().

ID id_real_p [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex().

ID id_to_f [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex().

ID id_to_i [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex().

ID id_to_r [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex().

ID id_to_s [static]

Definition at line 20 of file complex.c.

Referenced by Init_Complex().

VALUE null_string [static]

Definition at line 1375 of file complex.c.

Definition at line 1375 of file complex.c.