toysolver-0.4.0: Assorted decision procedures for SAT, Max-SAT, PB, MIP, etc

Copyright(c) Masahiro Sakai 2011-2013
LicenseBSD-style
Maintainermasahiro.sakai@gmail.com
Stabilityprovisional
Portabilitynon-portable (TypeFamilies)
Safe HaskellSafe
LanguageHaskell2010

ToySolver.Data.Delta

Contents

Description

Augmenting number types with infinitesimal parameter δ.

Reference:

Synopsis

The Delta type

data Delta r Source #

Delta r k represents r + kδ for symbolic infinitesimal parameter δ.

Constructors

Delta !r !r 

Instances

Eq r => Eq (Delta r) Source # 

Methods

(==) :: Delta r -> Delta r -> Bool #

(/=) :: Delta r -> Delta r -> Bool #

(Fractional r, Ord r) => Fractional (Delta r) Source #

This is unsafe instance in the sense that only a proper real can be a divisor.

Methods

(/) :: Delta r -> Delta r -> Delta r #

recip :: Delta r -> Delta r #

fromRational :: Rational -> Delta r #

(Num r, Ord r) => Num (Delta r) Source #

This instance assumes the symbolic infinitesimal parameter δ is a nilpotent with δ² = 0.

Methods

(+) :: Delta r -> Delta r -> Delta r #

(-) :: Delta r -> Delta r -> Delta r #

(*) :: Delta r -> Delta r -> Delta r #

negate :: Delta r -> Delta r #

abs :: Delta r -> Delta r #

signum :: Delta r -> Delta r #

fromInteger :: Integer -> Delta r #

Ord r => Ord (Delta r) Source # 

Methods

compare :: Delta r -> Delta r -> Ordering #

(<) :: Delta r -> Delta r -> Bool #

(<=) :: Delta r -> Delta r -> Bool #

(>) :: Delta r -> Delta r -> Bool #

(>=) :: Delta r -> Delta r -> Bool #

max :: Delta r -> Delta r -> Delta r #

min :: Delta r -> Delta r -> Delta r #

(Real r, Eq r) => Real (Delta r) Source # 

Methods

toRational :: Delta r -> Rational #

(RealFrac r, Eq r) => RealFrac (Delta r) Source # 

Methods

properFraction :: Integral b => Delta r -> (b, Delta r) #

truncate :: Integral b => Delta r -> b #

round :: Integral b => Delta r -> b #

ceiling :: Integral b => Delta r -> b #

floor :: Integral b => Delta r -> b #

Show r => Show (Delta r) Source # 

Methods

showsPrec :: Int -> Delta r -> ShowS #

show :: Delta r -> String #

showList :: [Delta r] -> ShowS #

Num r => VectorSpace (Delta r) Source # 

Associated Types

type Scalar (Delta r) :: * #

Methods

(*^) :: Scalar (Delta r) -> Delta r -> Delta r #

Num r => AdditiveGroup (Delta r) Source # 

Methods

zeroV :: Delta r #

(^+^) :: Delta r -> Delta r -> Delta r #

negateV :: Delta r -> Delta r #

(^-^) :: Delta r -> Delta r -> Delta r #

SolverValue (Delta Rational) Source # 
type Scalar (Delta r) Source # 
type Scalar (Delta r) = r

Construction

fromReal :: Num r => r -> Delta r Source #

Conversion from a base r value to Delta r.

delta :: Num r => Delta r Source #

symbolic infinitesimal parameter δ.

Query

realPart :: Delta r -> r Source #

Extracts the real part..

deltaPart :: Delta r -> r Source #

Extracts the δ part..

Relationship with integers

floor' :: (RealFrac r, Integral a) => Delta r -> a Source #

Delta version of floor. floor' x returns the greatest integer not greater than x

ceiling' :: (RealFrac r, Integral a) => Delta r -> a Source #

Delta version of ceiling. ceiling' x returns the least integer not less than x

isInteger' :: RealFrac r => Delta r -> Bool Source #

Is this a integer?