Precision is a mixin for concrete numeric
classes with precision. Here, `precision' means the fineness of
approximation of a real number, so, this module should not be included into
anything which is not a subset of Real (so it should not be included in
classes such as Complex or Matrix).
call_seq:
included
When the Precision module is mixed-in to a class, this
included method is used to add our default
induced_from implementation to the host class.
static VALUE
prec_included(module, include)
VALUE module, include;
{
switch (TYPE(include)) {
case T_CLASS:
case T_MODULE:
break;
default:
Check_Type(include, T_CLASS);
break;
}
rb_define_singleton_method(include, "induced_from", prec_induced_from, 1);
return module;
}
Converts self into an instance of klass. By default,
prec invokes
klass.induced_from(num)
and returns its value. So, if klass.induced_from doesn't
return an instance of klass, it will be necessary to reimplement
prec.
static VALUE
prec_prec(x, klass)
VALUE x, klass;
{
return rb_funcall(klass, prc_if, 1, x);
}