Hoogle Search
Within LTS Haskell 24.58 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
toComplexMatrix :: C a => T a -> Array (Int, Int) (T a)numeric-prelude Number.Quaternion Map a quaternion to complex valued 2x2 matrix, such that quaternion addition and multiplication is mapped to matrix addition and multiplication. The determinant of the matrix equals the squared quaternion norm (normSqr). Since complex numbers can be turned into real (orthogonal) matrices, a quaternion could also be converted into a real matrix.
toRotationMatrix :: C a => T a -> Array (Int, Int) anumeric-prelude Number.Quaternion Let c be a unit quaternion, then it holds similarity c (0+::x) == toRotationMatrix c * x
-
numhask NumHask.Prelude fix f is the least fixed point of the function f, i.e. the least defined x such that f x = x. When f is strict, this means that because, by the definition of strictness, f ⊥ = ⊥ and such the least defined fixed point of any strict function is ⊥.
Examples
We can write the factorial function using direct recursion as>>> let fac n = if n <= 1 then 1 else n * fac (n-1) in fac 5 120
This uses the fact that Haskell’s let introduces recursive bindings. We can rewrite this definition using fix, Instead of making a recursive call, we introduce a dummy parameter rec; when used within fix, this parameter then refers to fix’s argument, hence the recursion is reintroduced.>>> fix (\rec n -> if n <= 1 then 1 else n * rec (n-1)) 5 120
Using fix, we can implement versions of repeat as fix . (:) and cycle as fix . (++)>>> take 10 $ fix (0:) [0,0,0,0,0,0,0,0,0,0]
>>> map (fix (\rec n -> if n < 2 then n else rec (n - 1) + rec (n - 2))) [1..10] [1,1,2,3,5,8,13,21,34,55]
Implementation Details
The current implementation of fix uses structural sharingfix f = let x = f x in x
A more straightforward but non-sharing version would look likefix f = f (fix f)
floatRadix :: RealFloat a => a -> Integernumhask NumHask.Prelude a constant function, returning the radix of the representation (often 2)
type family
CheckIx (ctx :: Ctx k) (n :: Nat) (b :: Bool)parameterized-utils Data.Parameterized.Context Helper type family used to generate descriptive error messages when an index is larger than the length of the Ctx being indexed.
type
ValidIx (n :: Nat) (ctx :: Ctx k) = CheckIx ctx n n + 1 <=? CtxSize ctxparameterized-utils Data.Parameterized.Context A constraint that checks that the nat n is a valid index into the context ctx, and raises a type error if not.
type family
CheckIx (ctx :: Ctx k) (n :: Nat) (b :: Bool)parameterized-utils Data.Parameterized.Ctx Helper type family used to generate descriptive error messages when an index is larger than the length of the Ctx being indexed.
type
ValidIx (n :: Nat) (ctx :: Ctx k) = CheckIx ctx n n + 1 <=? CtxSize ctxparameterized-utils Data.Parameterized.Ctx A constraint that checks that the nat n is a valid index into the context ctx, and raises a type error if not.
addPrefixIsLeq :: forall f (m :: Natural) g (n :: Nat) . f m -> g n -> LeqProof n (m + n)parameterized-utils Data.Parameterized.NatRepr No documentation available.
_reversedPrefix :: PointedList a -> [a]pointedlist Data.List.PointedList No documentation available.