Did you know ... | Search Documentation: |
![]() | Pack logtalk -- logtalk-3.81.0/docs/_sources/number_0.rst.txt |
.. index:: number .. _number/0:
.. rst-class:: right
object
number
Number data type predicates.
| Availability:
| logtalk_load(types(loader))
| Author: Paulo Moura | Version: 1:14:0 | Date: 2023-12-07
| Compilation flags:
| static, context_switching_calls
| Extends:
| public
:ref:`atomic <atomic/0>`
| Remarks: | (none)
| Inherited public predicates: | Â :ref:`comparingp/0::(<)/2` Â :ref:`comparingp/0::(=:=)/2` Â :ref:`comparingp/0::(=<)/2` Â :ref:`comparingp/0::(=\=)/2` Â :ref:`comparingp/0::(>)/2` Â :ref:`comparingp/0::(>=)/2` Â :ref:`termp/0::check/1` Â :ref:`termp/0::depth/2` Â :ref:`termp/0::ground/1` Â :ref:`termp/0::new/1` Â :ref:`termp/0::numbervars/1` Â :ref:`termp/0::numbervars/3` Â :ref:`termp/0::occurs/2` Â :ref:`termp/0::singletons/2` Â :ref:`termp/0::subsumes/2` Â :ref:`termp/0::subterm/2` Â :ref:`termp/0::valid/1` Â :ref:`termp/0::variables/2` Â :ref:`termp/0::variant/2` Â :ref:`termp/0::varnumbers/2` Â :ref:`termp/0::varnumbers/3` Â
.. contents:: :local: :backlinks: top
.. index:: approximately_equal/2 .. _number/0::approximately_equal/2:
approximately_equal/2 ^^^^^^^^^^^^^^^^^^^^^^^^^
Compares two numbers for approximate equality given the epsilon
arithmetic constant value using the de facto standard formula abs(Number1 - Number2) =< max(abs(Number1), abs(Number2)) * epsilon
. No type-checking.
| Compilation flags:
| static
| Template:
| approximately_equal(Number1,Number2)
| Mode and number of proofs:
| approximately_equal(+number,+number)
- zero_or_one
.. index:: approximately_equal/3 .. _number/0::approximately_equal/3:
approximately_equal/3 ^^^^^^^^^^^^^^^^^^^^^^^^^
Compares two numbers for approximate equality given a user-defined epsilon value using the de facto standard formula abs(Number1 - Number2) =< max(abs(Number1), abs(Number2)) * Epsilon
. No type-checking.
| Compilation flags:
| static
| Template:
| approximately_equal(Number1,Number2,Epsilon)
| Mode and number of proofs:
| approximately_equal(+number,+number,+number)
- zero_or_one
| Remarks:
epsilon
arithmetic constant value or a small multiple of it. Only use a larger value if a greater error is expected... index:: essentially_equal/3 .. _number/0::essentially_equal/3:
essentially_equal/3 ^^^^^^^^^^^^^^^^^^^^^^^
Compares two numbers for essential equality given an epsilon value using the de facto standard formula abs(Number1 - Number2)
=< min(abs(Number1), abs(Number2))
* Epsilon. No type-checking.
| Compilation flags:
| static
| Template:
| essentially_equal(Number1,Number2,Epsilon)
| Mode and number of proofs:
| essentially_equal(+number,+number,+number)
- zero_or_one
| Remarks:
.. index:: tolerance_equal/4 .. _number/0::tolerance_equal/4:
tolerance_equal/4 ^^^^^^^^^^^^^^^^^^^^^
Compares two numbers for close equality given relative and absolute tolerances using the de facto standard formula abs(Number1 - Number2)
=< max(RelativeTolerance * max(abs(Number1), abs(Number2)), AbsoluteTolerance)
. No type-checking.
| Compilation flags:
| static
| Template:
| tolerance_equal(Number1,Number2,RelativeTolerance,AbsoluteTolerance)
| Mode and number of proofs:
| tolerance_equal(+number,+number,+number,+number)
- zero_or_one
.. index:: =~= / 2 .. _number/0::=~= / 2:
=~= / 2
^^^^^^^^^^^
Compares two floats (or lists of floats) for approximate equality using 100*epsilon for the absolute error and, if that fails, 99.999% accuracy for the relative error. Note that these precision values may not be adequate for all cases. No type-checking.
| Compilation flags:
| static
| Template:
| =~=(Float1,Float2)
| Mode and number of proofs:
| =~=(+number,+number)
- zero_or_one
| =~=(+list(number),+list(number))
- zero_or_one
(no local declarations; see entity ancestors if any)
(no local declarations; see entity ancestors if any)
op(700,xfx,=~=)
^^^^^^^^^^^^^^^^^^^
| Scope:
| public