/*** This module provides access to decimal numbers. Among the ordinary* access to decimal numbers that is available both for unlimited and* limited precision decimal numbers, we also find access that is* specific to limited precision decimal numbers. A decimal number is* represented as follows according to the Java BigDecimal class:** D = V * U * 10^(-S)* V : The sign, -1, 0 or 1* U : The unscaled value from the Java BigInteger class.* S : The scale from the Java int class.** For limited precision decimal numbers the order of magnitude of the* unscaled value is determined as well. This is called the precision of* the decimal number and it is independent of the scale of the decimal* number. During limited precision arithmetic the precision is limited* by a requested precision from a math context:** 10^(P-1) <= U < 10^P* P : The precision** The evaluable functions scale/2, unscaled_value/2 and new_decimal/3 allow* accessing and creating an unlimited or limited decimal number. The* evaluable functions precision/2 and requested/2 allow accessing the* current precision of a decimal number and the requested precision* through a math context.** Warranty & Liability* To the extent permitted by applicable law and unless explicitly* otherwise agreed upon, XLOG Technologies GmbH makes no warranties* regarding the provided information. XLOG Technologies GmbH assumes* no liability that any problems might be solved with the information* provided by XLOG Technologies GmbH.** Rights & License* All industrial property rights regarding the information - copyright* and patent rights in particular - are the sole property of XLOG* Technologies GmbH. If the company was not the originator of some* excerpts, XLOG Technologies GmbH has at least obtained the right to* reproduce, change and translate the information.** Reproduction is restricted to the whole unaltered document. Reproduction* of the information is only allowed for non-commercial uses. Selling,* giving away or letting of the execution of the library is prohibited.* The library can be distributed as part of your applications and libraries* for execution provided this comment remains unchanged.** Restrictions* Only to be distributed with programs that add significant and primary* functionality to the library. Not to be distributed with additional* software intended to replace any components of the library.** Trademarks* Jekejeke is a registered trademark of XLOG Technologies GmbH.*/* scale(X, S):* Predicate succeeds in S with the scale of the decimal number X.*/* unscaled_value(X, U):* Predicate succeeds in U with the unscaled value of the decimal number X.*/* new_decimal(U, S, D):* The predicate succeeds in D with a decimal of unscaled value U and scale S.*/* precision(X, P):* Predicate succeeds in P with the precision of the decimal number X.*/* requested(C, P):* Predicate succeeds in P with requested precision by the math context C.*/* new_context(P, C):* Predicate succeeds in C with a new math context of requested precision P.*/