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);
}