return new RubyArray(getContext().getCoreLibrary().getArrayClass(), new Object[]{l.value, l.sign}, 2);
}
@Fallback
public RubyArray lgamma(VirtualFrame frame, Object a) {
final RubyBasicObject boxed = box.box(a);
if (boxed.isNumeric()) {
try {
return lgamma(floatNode.callFloat(frame, boxed, "to_f", null));
} catch (UseMethodMissingException e) {
throw new RaiseException(getContext().getCoreLibrary().typeErrorCantConvertInto(
boxed.getLogicalClass().getName(),
getContext().getCoreLibrary().getFloatClass().getName(),
this));
}
} else {
CompilerDirectives.transferToInterpreter();
throw new RaiseException(getContext().getCoreLibrary().typeErrorCantConvertInto(
boxed.getLogicalClass().getName(),
getContext().getCoreLibrary().getFloatClass().getName(),
this));
}
}