Method: CCMath.log2
- Defined in:
- ext/ccmath/ccmath.c
.log2(z) ⇒ Object
205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 |
# File 'ext/ccmath/ccmath.c', line 205
static VALUE
ccmath_log2(VALUE obj, VALUE z)
{
if (codomain_check(z)) {
double d;
size_t numbits;
assing_numbits(z, &d, &numbits);
if (d < 0.0) domain_error("log2");
if (d == 0.0) return DBL2NUM(-INFINITY);
return DBL2NUM(log2(d) + numbits);
}
else {
EXTRACT_DBLS(z);;
float r = hypot(z_real, z_imag);
return DBLS2COMP(log(r) / M_LN2, m_atan2(z_imag, z_real) / M_LN2);
}
}
|