plutus-tx-1.60.0.0: Libraries for Plutus Tx and its prelude
Safe HaskellSafe-Inferred
LanguageHaskell2010

PlutusTx.Numeric

Synopsis

Type classes

class AdditiveSemigroup a where #

A Semigroup that it is sensible to describe using addition.

Methods

(+) :: a -> a -> a infixl 6 #

Instances

Instances details
AdditiveSemigroup Rational # 
Instance details

Defined in PlutusTx.Ratio

Methods

(+) :: Rational -> Rational -> Rational #

AdditiveSemigroup Integer # 
Instance details

Defined in PlutusTx.Numeric

Methods

(+) :: Integer -> Integer -> Integer #

AdditiveSemigroup Bool # 
Instance details

Defined in PlutusTx.Numeric

Methods

(+) :: Bool -> Bool -> Bool #

Semigroup a => AdditiveSemigroup (Additive a) # 
Instance details

Defined in PlutusTx.Numeric

Methods

(+) :: Additive a -> Additive a -> Additive a #

class AdditiveSemigroup a => AdditiveMonoid a where #

A Monoid that it is sensible to describe using addition and zero.

Methods

zero :: a #

Instances

Instances details
AdditiveMonoid Rational # 
Instance details

Defined in PlutusTx.Ratio

Methods

zero :: Rational #

AdditiveMonoid Integer # 
Instance details

Defined in PlutusTx.Numeric

Methods

zero :: Integer #

AdditiveMonoid Bool # 
Instance details

Defined in PlutusTx.Numeric

Methods

zero :: Bool #

Monoid a => AdditiveMonoid (Additive a) # 
Instance details

Defined in PlutusTx.Numeric

Methods

zero :: Additive a #

class AdditiveMonoid a => AdditiveGroup a where #

A Group that it is sensible to describe using addition, zero, and subtraction.

Methods

(-) :: a -> a -> a infixl 6 #

Instances

Instances details
AdditiveGroup Rational # 
Instance details

Defined in PlutusTx.Ratio

Methods

(-) :: Rational -> Rational -> Rational #

AdditiveGroup Integer # 
Instance details

Defined in PlutusTx.Numeric

Methods

(-) :: Integer -> Integer -> Integer #

Group a => AdditiveGroup (Additive a) # 
Instance details

Defined in PlutusTx.Numeric

Methods

(-) :: Additive a -> Additive a -> Additive a #

class MultiplicativeSemigroup a where #

A Semigroup that it is sensible to describe using multiplication.

Methods

(*) :: a -> a -> a infixl 7 #

Instances

Instances details
MultiplicativeSemigroup Rational # 
Instance details

Defined in PlutusTx.Ratio

Methods

(*) :: Rational -> Rational -> Rational #

MultiplicativeSemigroup Integer # 
Instance details

Defined in PlutusTx.Numeric

Methods

(*) :: Integer -> Integer -> Integer #

MultiplicativeSemigroup Bool # 
Instance details

Defined in PlutusTx.Numeric

Methods

(*) :: Bool -> Bool -> Bool #

Semigroup a => MultiplicativeSemigroup (Multiplicative a) # 
Instance details

Defined in PlutusTx.Numeric

class MultiplicativeSemigroup a => MultiplicativeMonoid a where #

A Semigroup that it is sensible to describe using multiplication and one.

Methods

one :: a #

Instances

Instances details
MultiplicativeMonoid Rational # 
Instance details

Defined in PlutusTx.Ratio

Methods

one :: Rational #

MultiplicativeMonoid Integer # 
Instance details

Defined in PlutusTx.Numeric

Methods

one :: Integer #

MultiplicativeMonoid Bool # 
Instance details

Defined in PlutusTx.Numeric

Methods

one :: Bool #

Monoid a => MultiplicativeMonoid (Multiplicative a) # 
Instance details

Defined in PlutusTx.Numeric

Methods

one :: Multiplicative a #

type Semiring a = (AdditiveMonoid a, MultiplicativeMonoid a) #

A semiring.

type Ring a = (AdditiveGroup a, MultiplicativeMonoid a) #

A ring.

class (Ring s, AdditiveGroup v) => Module s v | v -> s where #

A module, with a type of scalars which can be used to scale the values.

Methods

scale :: s -> v -> v #

Instances

Instances details
Module Integer Rational # 
Instance details

Defined in PlutusTx.Ratio

Methods

scale :: Integer -> Rational -> Rational #

Helper newtypes

newtype Additive a #

A newtype wrapper to derive Additive classes via.

Constructors

Additive a 

Instances

Instances details
Group a => AdditiveGroup (Additive a) # 
Instance details

Defined in PlutusTx.Numeric

Methods

(-) :: Additive a -> Additive a -> Additive a #

Monoid a => AdditiveMonoid (Additive a) # 
Instance details

Defined in PlutusTx.Numeric

Methods

zero :: Additive a #

Semigroup a => AdditiveSemigroup (Additive a) # 
Instance details

Defined in PlutusTx.Numeric

Methods

(+) :: Additive a -> Additive a -> Additive a #

newtype Multiplicative a #

A newtype wrapper to derive Multiplicative classes via.

Constructors

Multiplicative a 

Instances

Instances details
Monoid a => MultiplicativeMonoid (Multiplicative a) # 
Instance details

Defined in PlutusTx.Numeric

Methods

one :: Multiplicative a #

Semigroup a => MultiplicativeSemigroup (Multiplicative a) # 
Instance details

Defined in PlutusTx.Numeric

Helper functions

negate :: AdditiveGroup a => a -> a #

divMod :: Integer -> Integer -> (Integer, Integer) #

Simultaneous div and mod.

quotRem :: Integer -> Integer -> (Integer, Integer) #

Simultaneous quot and rem.

abs :: (Ord n, AdditiveGroup n) => n -> n #

Absolute value for any AdditiveGroup.

Orphan instances

MultiplicativeMonoid a => Monoid (Product a) # 
Instance details

Methods

mempty :: Product a #

AdditiveMonoid a => Monoid (Sum a) # 
Instance details

Methods

mempty :: Sum a #

MultiplicativeSemigroup a => Semigroup (Product a) # 
Instance details

Methods

(<>) :: Product a -> Product a -> Product a #

AdditiveSemigroup a => Semigroup (Sum a) # 
Instance details

Methods

(<>) :: Sum a -> Sum a -> Sum a #