FSharp.Fuzzy


Interval

Interval record

 let i = {a = 1m; b = 2m }

a is expected to be less or equal b

Record Fields

Record FieldDescription
a
Signature:decimal

Lower bound

b
Signature:decimal

Upper bound

Instance members

Instance memberDescription
Middle
Signature:decimal

Middle point between a and b

Static members

Static memberDescription
( - )(x, y)
Signature:(x:decimal * y:Interval) -> Interval

Subtract decimal y from interval x, decimal is represented as zero-length interval

( - )(x, y)
Signature:(x:Interval * y:decimal) -> Interval

Subtract decimal y from interval x, decimal is represented as zero-length interval

( - )(x, y)
Signature:(x:Interval * y:Interval) -> Interval

Subtract y from x, implemetation is simplified for performance reasons as it is easy to proof that for any intervals a'=x.a-y.b and b'=x.b-y.a gives widest possible resulting interval a',b'

( * )(x, y)
Signature:(x:decimal * y:Interval) -> Interval

Multiply interval x by decimal y, decimal is represented as zero-length interval

( * )(x, y)
Signature:(x:Interval * y:decimal) -> Interval

Multiply interval x by decimal y, decimal is represented as zero-length interval

( * )(x, y)
Signature:(x:Interval * y:Interval) -> Interval

Multiply x by y, uses operation

( / )(x, y)
Signature:(x:decimal * y:Interval) -> Interval

Divide interval x by decimal y, decimal is represented as zero-length interval

( / )(x, y)
Signature:(x:Interval * y:decimal) -> Interval

Divide interval x by decimal y, decimal is represented as zero-length interval

( / )(x, y)
Signature:(x:Interval * y:Interval) -> Interval

Divide x by y, uses operation, 'y` cannot contain zero

( + )(x, y)
Signature:(x:decimal * y:Interval) -> Interval

Add interval x by decimal y, decimal is represented as zero-length interval

( + )(x, y)
Signature:(x:Interval * y:decimal) -> Interval

Add interval x by decimal y, decimal is represented as zero-length interval

( + )(x, y)
Signature:(x:Interval * y:Interval) -> Interval

Add x to y, implemetation is simplified for performance reasons as it is easy to proof that for any intervals a'=x.a+y.a and b'=x.b+y.b gives widest possible resulting interval a',b'

distance(x, y)
Signature:(x:Interval * y:Interval) -> decimal

Distance between x by y calculated as distance between their middle points

operation(f (x, y))
Signature:(f:(decimal -> decimal -> decimal)) -> (x:Interval * y:Interval) -> Interval

Generic binary operation over two intervals compliant with pivotal rule of interval mathematics - operation should result in widest possible interval

pow(x, p)
Signature:(x:Interval * p:double) -> Interval

Rises x to the power of p

Zero
Signature:Interval

Interval with a and b equal zero

zeroLength(x)
Signature:x:decimal -> Interval

Creates interval of zero length

Fork me on GitHub