{-# LANGUAGE GADTSyntax #-}
{-# LANGUAGE ViewPatterns #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# OPTIONS_GHC -fno-warn-type-defaults #-}
{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE CPP #-}
{-# LANGUAGE MultiWayIf #-}
#ifndef O_LIQUID
{-# LANGUAGE Safe #-}
#endif
#if __GLASGOW_HASKELL__ == 810
{-# OPTIONS_GHC -funfolding-keeness-factor=1 -funfolding-use-threshold=80 #-}
#endif
module Algebra.Geometric.Cl3
(
Cl3(..),
bar, dag,
lsv,
toR, toV3, toBV, toI,
toPV, toH, toC,
toBPV, toODD, toTPV,
toAPS,
showOctave,
reduce, tol,
#ifndef O_NO_STORABLE
Cl3_R, toCl3_R, fromCl3_R,
Cl3_V3, toCl3_V3, fromCl3_V3,
Cl3_BV, toCl3_BV, fromCl3_BV,
Cl3_I, toCl3_I, fromCl3_I,
Cl3_PV, toCl3_PV, fromCl3_PV,
Cl3_H, toCl3_H, fromCl3_H,
Cl3_C, toCl3_C, fromCl3_C,
Cl3_BPV, toCl3_BPV, fromCl3_BPV,
Cl3_ODD, toCl3_ODD, fromCl3_ODD,
Cl3_TPV, toCl3_TPV, fromCl3_TPV,
Cl3_APS, toCl3_APS, fromCl3_APS,
#endif
#ifndef O_NO_RANDOM
randR, rangeR,
randV3, rangeV3,
randBV, rangeBV,
randI, rangeI,
randPV, rangePV,
randH, rangeH,
randC, rangeC,
randBPV, rangeBPV,
randODD, rangeODD,
randTPV, rangeTPV,
randAPS, rangeAPS,
randUnitV3,
randProjector,
randNilpotent,
randUnitary,
#endif
eigvals, hasNilpotent,
spectraldcmp, project,
mIx, timesI,
abssignum
) where
#ifndef O_NO_DERIVED
import Data.Data (Typeable, Data)
import GHC.Generics (Generic)
import Text.Read (Read,readPrec)
#endif
import Control.DeepSeq (NFData,rnf)
#ifndef O_NO_STORABLE
import Foreign.Storable (Storable, sizeOf, alignment, peek, poke)
import Foreign.Ptr (Ptr, plusPtr, castPtr)
#endif
#ifndef O_NO_RANDOM
import System.Random (RandomGen, Random, randomR, random)
#endif
data Cl3 where
R :: !Double -> Cl3
V3 :: !Double -> !Double -> !Double -> Cl3
BV :: !Double -> !Double -> !Double -> Cl3
I :: !Double -> Cl3
PV :: !Double -> !Double -> !Double -> !Double -> Cl3
H :: !Double -> !Double -> !Double -> !Double -> Cl3
C :: !Double -> !Double -> Cl3
BPV :: !Double -> !Double -> !Double -> !Double -> !Double -> !Double -> Cl3
ODD :: !Double -> !Double -> !Double -> !Double -> Cl3
TPV :: !Double -> !Double -> !Double -> !Double -> Cl3
APS :: !Double -> !Double -> !Double -> !Double -> !Double -> !Double -> !Double -> !Double -> Cl3
#ifndef O_NO_DERIVED
deriving (Int -> Cl3 -> ShowS
[Cl3] -> ShowS
Cl3 -> String
(Int -> Cl3 -> ShowS)
-> (Cl3 -> String) -> ([Cl3] -> ShowS) -> Show Cl3
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Cl3] -> ShowS
$cshowList :: [Cl3] -> ShowS
show :: Cl3 -> String
$cshow :: Cl3 -> String
showsPrec :: Int -> Cl3 -> ShowS
$cshowsPrec :: Int -> Cl3 -> ShowS
Show, ReadPrec [Cl3]
ReadPrec Cl3
Int -> ReadS Cl3
ReadS [Cl3]
(Int -> ReadS Cl3)
-> ReadS [Cl3] -> ReadPrec Cl3 -> ReadPrec [Cl3] -> Read Cl3
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Cl3]
$creadListPrec :: ReadPrec [Cl3]
readPrec :: ReadPrec Cl3
$creadPrec :: ReadPrec Cl3
readList :: ReadS [Cl3]
$creadList :: ReadS [Cl3]
readsPrec :: Int -> ReadS Cl3
$creadsPrec :: Int -> ReadS Cl3
Read, Typeable, Typeable Cl3
DataType
Constr
Typeable Cl3
-> (forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Cl3 -> c Cl3)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Cl3)
-> (Cl3 -> Constr)
-> (Cl3 -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Cl3))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Cl3))
-> ((forall b. Data b => b -> b) -> Cl3 -> Cl3)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Cl3 -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Cl3 -> r)
-> (forall u. (forall d. Data d => d -> u) -> Cl3 -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> Cl3 -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Cl3 -> m Cl3)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Cl3 -> m Cl3)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Cl3 -> m Cl3)
-> Data Cl3
Cl3 -> DataType
Cl3 -> Constr
(forall b. Data b => b -> b) -> Cl3 -> Cl3
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Cl3 -> c Cl3
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Cl3
forall a.
Typeable a
-> (forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> Cl3 -> u
forall u. (forall d. Data d => d -> u) -> Cl3 -> [u]
forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Cl3 -> r
forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Cl3 -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Cl3 -> m Cl3
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Cl3 -> m Cl3
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Cl3
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Cl3 -> c Cl3
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Cl3)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Cl3)
$cAPS :: Constr
$cTPV :: Constr
$cODD :: Constr
$cBPV :: Constr
$cC :: Constr
$cH :: Constr
$cPV :: Constr
$cI :: Constr
$cBV :: Constr
$cV3 :: Constr
$cR :: Constr
$tCl3 :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> Cl3 -> m Cl3
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Cl3 -> m Cl3
gmapMp :: (forall d. Data d => d -> m d) -> Cl3 -> m Cl3
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Cl3 -> m Cl3
gmapM :: (forall d. Data d => d -> m d) -> Cl3 -> m Cl3
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Cl3 -> m Cl3
gmapQi :: Int -> (forall d. Data d => d -> u) -> Cl3 -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Cl3 -> u
gmapQ :: (forall d. Data d => d -> u) -> Cl3 -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> Cl3 -> [u]
gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Cl3 -> r
$cgmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Cl3 -> r
gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Cl3 -> r
$cgmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Cl3 -> r
gmapT :: (forall b. Data b => b -> b) -> Cl3 -> Cl3
$cgmapT :: (forall b. Data b => b -> b) -> Cl3 -> Cl3
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Cl3)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Cl3)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c Cl3)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Cl3)
dataTypeOf :: Cl3 -> DataType
$cdataTypeOf :: Cl3 -> DataType
toConstr :: Cl3 -> Constr
$ctoConstr :: Cl3 -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Cl3
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Cl3
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Cl3 -> c Cl3
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Cl3 -> c Cl3
$cp1Data :: Typeable Cl3
Data, (forall x. Cl3 -> Rep Cl3 x)
-> (forall x. Rep Cl3 x -> Cl3) -> Generic Cl3
forall x. Rep Cl3 x -> Cl3
forall x. Cl3 -> Rep Cl3 x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Cl3 x -> Cl3
$cfrom :: forall x. Cl3 -> Rep Cl3 x
Generic)
#else
instance Show Cl3 where
show = showOctave
#endif
instance NFData Cl3 where
rnf :: Cl3 -> ()
rnf !Cl3
_ = ()
showOctave :: Cl3 -> String
showOctave :: Cl3 -> String
showOctave (R Double
a0) = Double -> String
forall a. Show a => a -> String
show Double
a0 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e0"
showOctave (V3 Double
a1 Double
a2 Double
a3) = Double -> String
forall a. Show a => a -> String
show Double
a1 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e1 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a2 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e2 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a3 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e3"
showOctave (BV Double
a23 Double
a31 Double
a12) = Double -> String
forall a. Show a => a -> String
show Double
a23 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e1 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a31 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e2 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a12 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e3"
showOctave (I Double
a123) = Double -> String
forall a. Show a => a -> String
show Double
a123 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e0"
showOctave (PV Double
a0 Double
a1 Double
a2 Double
a3) = Double -> String
forall a. Show a => a -> String
show Double
a0 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e0 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a1 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e1 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a2 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e2 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a3 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e3"
showOctave (H Double
a0 Double
a23 Double
a31 Double
a12) = Double -> String
forall a. Show a => a -> String
show Double
a0 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e0 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a23 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e1 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a31 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e2 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a12 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e3"
showOctave (C Double
a0 Double
a123) = Double -> String
forall a. Show a => a -> String
show Double
a0 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e0 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a123 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e0"
showOctave (BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) = Double -> String
forall a. Show a => a -> String
show Double
a1 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e1 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a2 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e2 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a3 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e3 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++
Double -> String
forall a. Show a => a -> String
show Double
a23 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e1 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a31 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e2 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a12 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e3"
showOctave (ODD Double
a1 Double
a2 Double
a3 Double
a123) = Double -> String
forall a. Show a => a -> String
show Double
a1 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e1 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a2 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e2 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a3 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e3 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a123 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e0"
showOctave (TPV Double
a23 Double
a31 Double
a12 Double
a123) = Double -> String
forall a. Show a => a -> String
show Double
a23 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e1 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a31 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e2 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a12 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e3 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a123 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e0"
showOctave (APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) = Double -> String
forall a. Show a => a -> String
show Double
a0 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e0 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a1 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e1 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a2 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e2 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a3 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"*e3 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++
Double -> String
forall a. Show a => a -> String
show Double
a23 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e1 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a31 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e2 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a12 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e3 + " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Double -> String
forall a. Show a => a -> String
show Double
a123 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
"i*e0"
instance Eq Cl3 where
(R Double
a0) == :: Cl3 -> Cl3 -> Bool
== (R Double
b0) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0
(R Double
a0) == (V3 Double
b1 Double
b2 Double
b3) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(R Double
a0) == (BV Double
b23 Double
b31 Double
b12) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(R Double
a0) == (I Double
b123) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(R Double
a0) == (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(R Double
a0) == (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(R Double
a0) == (C Double
b0 Double
b123) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(R Double
a0) == (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(R Double
a0) == (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(R Double
a0) == (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(R Double
a0) == (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(V3 Double
a1 Double
a2 Double
a3) == (R Double
b0) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BV Double
a23 Double
a31 Double
a12) == (R Double
b0) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(I Double
a123) == (R Double
b0) = Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(PV Double
a0 Double
a1 Double
a2 Double
a3) == (R Double
b0) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(H Double
a0 Double
a23 Double
a31 Double
a12) == (R Double
b0) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(C Double
a0 Double
a123) == (R Double
b0) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) == (R Double
b0) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(ODD Double
a1 Double
a2 Double
a3 Double
a123) == (R Double
b0) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(TPV Double
a23 Double
a31 Double
a12 Double
a123) == (R Double
b0) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) == (R Double
b0) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(V3 Double
a1 Double
a2 Double
a3) == (V3 Double
b1 Double
b2 Double
b3) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3
(V3 Double
a1 Double
a2 Double
a3) == (BV Double
b23 Double
b31 Double
b12) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(V3 Double
a1 Double
a2 Double
a3) == (I Double
b123) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(V3 Double
a1 Double
a2 Double
a3) == (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(V3 Double
a1 Double
a2 Double
a3) == (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(V3 Double
a1 Double
a2 Double
a3) == (C Double
b0 Double
b123) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(V3 Double
a1 Double
a2 Double
a3) == (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(V3 Double
a1 Double
a2 Double
a3) == (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(V3 Double
a1 Double
a2 Double
a3) == (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(V3 Double
a1 Double
a2 Double
a3) == (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BV Double
a23 Double
a31 Double
a12) == (V3 Double
b1 Double
b2 Double
b3) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(I Double
a123) == (V3 Double
b1 Double
b2 Double
b3) = Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(PV Double
a0 Double
a1 Double
a2 Double
a3) == (V3 Double
b1 Double
b2 Double
b3) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3
(H Double
a0 Double
a23 Double
a31 Double
a12) == (V3 Double
b1 Double
b2 Double
b3) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(C Double
a0 Double
a123) == (V3 Double
b1 Double
b2 Double
b3) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) == (V3 Double
b1 Double
b2 Double
b3) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(ODD Double
a1 Double
a2 Double
a3 Double
a123) == (V3 Double
b1 Double
b2 Double
b3) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(TPV Double
a23 Double
a31 Double
a12 Double
a123) == (V3 Double
b1 Double
b2 Double
b3) = Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) == (V3 Double
b1 Double
b2 Double
b3) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BV Double
a23 Double
a31 Double
a12) == (BV Double
b23 Double
b31 Double
b12) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12
(BV Double
a23 Double
a31 Double
a12) == (I Double
b123) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BV Double
a23 Double
a31 Double
a12) == (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BV Double
a23 Double
a31 Double
a12) == (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BV Double
a23 Double
a31 Double
a12) == (C Double
b0 Double
b123) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BV Double
a23 Double
a31 Double
a12) == (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BV Double
a23 Double
a31 Double
a12) == (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BV Double
a23 Double
a31 Double
a12) == (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BV Double
a23 Double
a31 Double
a12) == (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(I Double
a123) == (BV Double
b23 Double
b31 Double
b12) = Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(PV Double
a0 Double
a1 Double
a2 Double
a3) == (BV Double
b23 Double
b31 Double
b12) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(H Double
a0 Double
a23 Double
a31 Double
a12) == (BV Double
b23 Double
b31 Double
b12) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12
(C Double
a0 Double
a123) == (BV Double
b23 Double
b31 Double
b12) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) == (BV Double
b23 Double
b31 Double
b12) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12
(ODD Double
a1 Double
a2 Double
a3 Double
a123) == (BV Double
b23 Double
b31 Double
b12) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(TPV Double
a23 Double
a31 Double
a12 Double
a123) == (BV Double
b23 Double
b31 Double
b12) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) == (BV Double
b23 Double
b31 Double
b12) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(I Double
a123) == (I Double
b123) = Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123
(I Double
a123) == (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(I Double
a123) == (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(I Double
a123) == (C Double
b0 Double
b123) = Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(I Double
a123) == (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(I Double
a123) == (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(I Double
a123) == (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(I Double
a123) == (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(PV Double
a0 Double
a1 Double
a2 Double
a3) == (I Double
b123) = Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(H Double
a0 Double
a23 Double
a31 Double
a12) == (I Double
b123) = Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(C Double
a0 Double
a123) == (I Double
b123) = Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123 Bool -> Bool -> Bool
&& Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) == (I Double
b123) = Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(ODD Double
a1 Double
a2 Double
a3 Double
a123) == (I Double
b123) = Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(TPV Double
a23 Double
a31 Double
a12 Double
a123) == (I Double
b123) = Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) == (I Double
b123) = Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123 Bool -> Bool -> Bool
&& Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(PV Double
a0 Double
a1 Double
a2 Double
a3) == (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3
(PV Double
a0 Double
a1 Double
a2 Double
a3) == (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(PV Double
a0 Double
a1 Double
a2 Double
a3) == (C Double
b0 Double
b123) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(PV Double
a0 Double
a1 Double
a2 Double
a3) == (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(PV Double
a0 Double
a1 Double
a2 Double
a3) == (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(PV Double
a0 Double
a1 Double
a2 Double
a3) == (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(PV Double
a0 Double
a1 Double
a2 Double
a3) == (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(H Double
a0 Double
a23 Double
a31 Double
a12) == (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(C Double
a0 Double
a123) == (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) == (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(ODD Double
a1 Double
a2 Double
a3 Double
a123) == (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(TPV Double
a23 Double
a31 Double
a12 Double
a123) == (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) == (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(H Double
a0 Double
a23 Double
a31 Double
a12) == (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12
(H Double
a0 Double
a23 Double
a31 Double
a12) == (C Double
b0 Double
b123) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(H Double
a0 Double
a23 Double
a31 Double
a12) == (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(H Double
a0 Double
a23 Double
a31 Double
a12) == (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(H Double
a0 Double
a23 Double
a31 Double
a12) == (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(H Double
a0 Double
a23 Double
a31 Double
a12) == (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(C Double
a0 Double
a123) == (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) == (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(ODD Double
a1 Double
a2 Double
a3 Double
a123) == (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(TPV Double
a23 Double
a31 Double
a12 Double
a123) == (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) == (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(C Double
a0 Double
a123) == (C Double
b0 Double
b123) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123
(C Double
a0 Double
a123) == (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(C Double
a0 Double
a123) == (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(C Double
a0 Double
a123) == (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(C Double
a0 Double
a123) == (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) == (C Double
b0 Double
b123) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(ODD Double
a1 Double
a2 Double
a3 Double
a123) == (C Double
b0 Double
b123) = Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(TPV Double
a23 Double
a31 Double
a12 Double
a123) == (C Double
b0 Double
b123) = Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) == (C Double
b0 Double
b123) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) == (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) == (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) == (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) == (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12
Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(ODD Double
a1 Double
a2 Double
a3 Double
a123) == (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(TPV Double
a23 Double
a31 Double
a12 Double
a123) == (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) == (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31
Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(ODD Double
a1 Double
a2 Double
a3 Double
a123) == (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123
(ODD Double
a1 Double
a2 Double
a3 Double
a123) == (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(ODD Double
a1 Double
a2 Double
a3 Double
a123) == (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123 Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(TPV Double
a23 Double
a31 Double
a12 Double
a123) == (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) == (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123 Bool -> Bool -> Bool
&& Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(TPV Double
a23 Double
a31 Double
a12 Double
a123) == (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123
(TPV Double
a23 Double
a31 Double
a12 Double
a123) == (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123
Bool -> Bool -> Bool
&& Double
b0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
b3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) == (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23 Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123
Bool -> Bool -> Bool
&& Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) == (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b0 Bool -> Bool -> Bool
&& Double
a1 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b1 Bool -> Bool -> Bool
&& Double
a2 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b2 Bool -> Bool -> Bool
&& Double
a3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b3 Bool -> Bool -> Bool
&& Double
a23 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b23
Bool -> Bool -> Bool
&& Double
a31 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b31 Bool -> Bool -> Bool
&& Double
a12 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b12 Bool -> Bool -> Bool
&& Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
b123
instance Ord Cl3 where
compare :: Cl3 -> Cl3 -> Ordering
compare (R Double
a0) (R Double
b0) = Double -> Double -> Ordering
forall a. Ord a => a -> a -> Ordering
compare Double
a0 Double
b0
compare (I Double
a123) (I Double
b123) = Double -> Double -> Ordering
forall a. Ord a => a -> a -> Ordering
compare Double
a123 Double
b123
compare Cl3
cliffor1 Cl3
cliffor2 =
let (R Double
a0) = Cl3 -> Cl3
forall a. Num a => a -> a
abs Cl3
cliffor1
(R Double
b0) = Cl3 -> Cl3
forall a. Num a => a -> a
abs Cl3
cliffor2
(R Double
a0') = Cl3 -> Cl3
lsv Cl3
cliffor1
(R Double
b0') = Cl3 -> Cl3
lsv Cl3
cliffor2
in case Double -> Double -> Ordering
forall a. Ord a => a -> a -> Ordering
compare Double
a0 Double
b0 of
Ordering
LT -> Ordering
LT
Ordering
GT -> Ordering
GT
Ordering
EQ -> Double -> Double -> Ordering
forall a. Ord a => a -> a -> Ordering
compare Double
a0' Double
b0'
instance Num Cl3 where
(R Double
a0) + :: Cl3 -> Cl3 -> Cl3
+ (R Double
b0) = Double -> Cl3
R (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0)
(R Double
a0) + (V3 Double
b1 Double
b2 Double
b3) = Double -> Double -> Double -> Double -> Cl3
PV Double
a0 Double
b1 Double
b2 Double
b3
(R Double
a0) + (BV Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Cl3
H Double
a0 Double
b23 Double
b31 Double
b12
(R Double
a0) + (I Double
b123) = Double -> Double -> Cl3
C Double
a0 Double
b123
(R Double
a0) + (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double -> Double -> Double -> Double -> Cl3
PV (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) Double
b1 Double
b2 Double
b3
(R Double
a0) + (H Double
b0 Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Cl3
H (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) Double
b23 Double
b31 Double
b12
(R Double
a0) + (C Double
b0 Double
b123) = Double -> Double -> Cl3
C (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) Double
b123
(R Double
a0) + (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
0
(R Double
a0) + (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
b1 Double
b2 Double
b3 Double
0 Double
0 Double
0 Double
b123
(R Double
a0) + (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
0 Double
0 Double
0 Double
b23 Double
b31 Double
b12 Double
b123
(R Double
a0) + (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123
(V3 Double
a1 Double
a2 Double
a3) + (R Double
b0) = Double -> Double -> Double -> Double -> Cl3
PV Double
b0 Double
a1 Double
a2 Double
a3
(BV Double
a23 Double
a31 Double
a12) + (R Double
b0) = Double -> Double -> Double -> Double -> Cl3
H Double
b0 Double
a23 Double
a31 Double
a12
(I Double
a123) + (R Double
b0) = Double -> Double -> Cl3
C Double
b0 Double
a123
(PV Double
a0 Double
a1 Double
a2 Double
a3) + (R Double
b0) = Double -> Double -> Double -> Double -> Cl3
PV (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) Double
a1 Double
a2 Double
a3
(H Double
a0 Double
a23 Double
a31 Double
a12) + (R Double
b0) = Double -> Double -> Double -> Double -> Cl3
H (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) Double
a23 Double
a31 Double
a12
(C Double
a0 Double
a123) + (R Double
b0) = Double -> Double -> Cl3
C (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) Double
a123
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) + (R Double
b0) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
0
(ODD Double
a1 Double
a2 Double
a3 Double
a123) + (R Double
b0) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 Double
a1 Double
a2 Double
a3 Double
0 Double
0 Double
0 Double
a123
(TPV Double
a23 Double
a31 Double
a12 Double
a123) + (R Double
b0) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 Double
0 Double
0 Double
0 Double
a23 Double
a31 Double
a12 Double
a123
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) + (R Double
b0) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123
(V3 Double
a1 Double
a2 Double
a3) + (V3 Double
b1 Double
b2 Double
b3) = Double -> Double -> Double -> Cl3
V3 (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3)
(V3 Double
a1 Double
a2 Double
a3) + (BV Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV Double
a1 Double
a2 Double
a3 Double
b23 Double
b31 Double
b12
(V3 Double
a1 Double
a2 Double
a3) + (I Double
b123) = Double -> Double -> Double -> Double -> Cl3
ODD Double
a1 Double
a2 Double
a3 Double
b123
(V3 Double
a1 Double
a2 Double
a3) + (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double -> Double -> Double -> Double -> Cl3
PV Double
b0 (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3)
(V3 Double
a1 Double
a2 Double
a3) + (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 Double
a1 Double
a2 Double
a3 Double
b23 Double
b31 Double
b12 Double
0
(V3 Double
a1 Double
a2 Double
a3) + (C Double
b0 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 Double
a1 Double
a2 Double
a3 Double
0 Double
0 Double
0 Double
b123
(V3 Double
a1 Double
a2 Double
a3) + (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) Double
b23 Double
b31 Double
b12
(V3 Double
a1 Double
a2 Double
a3) + (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double -> Double -> Double -> Double -> Cl3
ODD (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) Double
b123
(V3 Double
a1 Double
a2 Double
a3) + (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0 Double
a1 Double
a2 Double
a3 Double
b23 Double
b31 Double
b12 Double
b123
(V3 Double
a1 Double
a2 Double
a3) + (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) Double
b23 Double
b31 Double
b12 Double
b123
(BV Double
a23 Double
a31 Double
a12) + (V3 Double
b1 Double
b2 Double
b3) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV Double
b1 Double
b2 Double
b3 Double
a23 Double
a31 Double
a12
(I Double
a123) + (V3 Double
b1 Double
b2 Double
b3) = Double -> Double -> Double -> Double -> Cl3
ODD Double
b1 Double
b2 Double
b3 Double
a123
(PV Double
a0 Double
a1 Double
a2 Double
a3) + (V3 Double
b1 Double
b2 Double
b3) = Double -> Double -> Double -> Double -> Cl3
PV Double
a0 (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3)
(H Double
a0 Double
a23 Double
a31 Double
a12) + (V3 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
b1 Double
b2 Double
b3 Double
a23 Double
a31 Double
a12 Double
0
(C Double
a0 Double
a123) + (V3 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
b1 Double
b2 Double
b3 Double
0 Double
0 Double
0 Double
a123
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) + (V3 Double
b1 Double
b2 Double
b3) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) Double
a23 Double
a31 Double
a12
(ODD Double
a1 Double
a2 Double
a3 Double
a123) + (V3 Double
b1 Double
b2 Double
b3) = Double -> Double -> Double -> Double -> Cl3
ODD (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) Double
a123
(TPV Double
a23 Double
a31 Double
a12 Double
a123) + (V3 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0 Double
b1 Double
b2 Double
b3 Double
a23 Double
a31 Double
a12 Double
a123
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) + (V3 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) Double
a23 Double
a31 Double
a12 Double
a123
(BV Double
a23 Double
a31 Double
a12) + (BV Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Cl3
BV (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12)
(BV Double
a23 Double
a31 Double
a12) + (I Double
b123) = Double -> Double -> Double -> Double -> Cl3
TPV Double
a23 Double
a31 Double
a12 Double
b123
(BV Double
a23 Double
a31 Double
a12) + (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 Double
b1 Double
b2 Double
b3 Double
a23 Double
a31 Double
a12 Double
0
(BV Double
a23 Double
a31 Double
a12) + (H Double
b0 Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Cl3
H Double
b0 (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12)
(BV Double
a23 Double
a31 Double
a12) + (C Double
b0 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 Double
0 Double
0 Double
0 Double
a23 Double
a31 Double
a12 Double
b123
(BV Double
a23 Double
a31 Double
a12) + (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV Double
b1 Double
b2 Double
b3 (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12)
(BV Double
a23 Double
a31 Double
a12) + (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0 Double
b1 Double
b2 Double
b3 Double
a23 Double
a31 Double
a12 Double
b123
(BV Double
a23 Double
a31 Double
a12) + (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double -> Double -> Double -> Double -> Cl3
TPV (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12) Double
b123
(BV Double
a23 Double
a31 Double
a12) + (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 Double
b1 Double
b2 Double
b3 (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12) Double
b123
(I Double
a123) + (BV Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Cl3
TPV Double
b23 Double
b31 Double
b12 Double
a123
(PV Double
a0 Double
a1 Double
a2 Double
a3) + (BV Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
a1 Double
a2 Double
a3 Double
b23 Double
b31 Double
b12 Double
0
(H Double
a0 Double
a23 Double
a31 Double
a12) + (BV Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Cl3
H Double
a0 (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12)
(C Double
a0 Double
a123) + (BV Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
0 Double
0 Double
0 Double
b23 Double
b31 Double
b12 Double
a123
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) + (BV Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV Double
a1 Double
a2 Double
a3 (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12)
(ODD Double
a1 Double
a2 Double
a3 Double
a123) + (BV Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0 Double
a1 Double
a2 Double
a3 Double
b23 Double
b31 Double
b12 Double
a123
(TPV Double
a23 Double
a31 Double
a12 Double
a123) + (BV Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Cl3
TPV (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12) Double
a123
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) + (BV Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
a1 Double
a2 Double
a3 (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12) Double
a123
(I Double
a123) + (I Double
b123) = Double -> Cl3
I (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(I Double
a123) + (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 Double
b1 Double
b2 Double
b3 Double
0 Double
0 Double
0 Double
a123
(I Double
a123) + (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 Double
0 Double
0 Double
0 Double
b23 Double
b31 Double
b12 Double
a123
(I Double
a123) + (C Double
b0 Double
b123) = Double -> Double -> Cl3
C Double
b0 (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(I Double
a123) + (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
a123
(I Double
a123) + (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double -> Double -> Double -> Double -> Cl3
ODD Double
b1 Double
b2 Double
b3 (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(I Double
a123) + (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double -> Double -> Double -> Double -> Cl3
TPV Double
b23 Double
b31 Double
b12 (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(I Double
a123) + (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(PV Double
a0 Double
a1 Double
a2 Double
a3) + (I Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
a1 Double
a2 Double
a3 Double
0 Double
0 Double
0 Double
b123
(H Double
a0 Double
a23 Double
a31 Double
a12) + (I Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
0 Double
0 Double
0 Double
a23 Double
a31 Double
a12 Double
b123
(C Double
a0 Double
a123) + (I Double
b123) = Double -> Double -> Cl3
C Double
a0 (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) + (I Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
b123
(ODD Double
a1 Double
a2 Double
a3 Double
a123) + (I Double
b123) = Double -> Double -> Double -> Double -> Cl3
ODD Double
a1 Double
a2 Double
a3 (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(TPV Double
a23 Double
a31 Double
a12 Double
a123) + (I Double
b123) = Double -> Double -> Double -> Double -> Cl3
TPV Double
a23 Double
a31 Double
a12 (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) + (I Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(PV Double
a0 Double
a1 Double
a2 Double
a3) + (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double -> Double -> Double -> Double -> Cl3
PV (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3)
(PV Double
a0 Double
a1 Double
a2 Double
a3) + (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) Double
a1 Double
a2 Double
a3 Double
b23 Double
b31 Double
b12 Double
0
(PV Double
a0 Double
a1 Double
a2 Double
a3) + (C Double
b0 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) Double
a1 Double
a2 Double
a3 Double
0 Double
0 Double
0 Double
b123
(PV Double
a0 Double
a1 Double
a2 Double
a3) + (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) Double
b23 Double
b31 Double
b12 Double
0
(PV Double
a0 Double
a1 Double
a2 Double
a3) + (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) Double
0 Double
0 Double
0 Double
b123
(PV Double
a0 Double
a1 Double
a2 Double
a3) + (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
a1 Double
a2 Double
a3 Double
b23 Double
b31 Double
b12 Double
b123
(PV Double
a0 Double
a1 Double
a2 Double
a3) + (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) Double
b23 Double
b31 Double
b12 Double
b123
(H Double
a0 Double
a23 Double
a31 Double
a12) + (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) Double
b1 Double
b2 Double
b3 Double
a23 Double
a31 Double
a12 Double
0
(C Double
a0 Double
a123) + (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) Double
b1 Double
b2 Double
b3 Double
0 Double
0 Double
0 Double
a123
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) + (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) Double
a23 Double
a31 Double
a12 Double
0
(ODD Double
a1 Double
a2 Double
a3 Double
a123) + (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) Double
0 Double
0 Double
0 Double
a123
(TPV Double
a23 Double
a31 Double
a12 Double
a123) + (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 Double
b1 Double
b2 Double
b3 Double
a23 Double
a31 Double
a12 Double
a123
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) + (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) Double
a23 Double
a31 Double
a12 Double
a123
(H Double
a0 Double
a23 Double
a31 Double
a12) + (H Double
b0 Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Cl3
H (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12)
(H Double
a0 Double
a23 Double
a31 Double
a12) + (C Double
b0 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) Double
0 Double
0 Double
0 Double
a23 Double
a31 Double
a12 Double
b123
(H Double
a0 Double
a23 Double
a31 Double
a12) + (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
b1 Double
b2 Double
b3 (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12) Double
0
(H Double
a0 Double
a23 Double
a31 Double
a12) + (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
b1 Double
b2 Double
b3 Double
a23 Double
a31 Double
a12 Double
b123
(H Double
a0 Double
a23 Double
a31 Double
a12) + (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
0 Double
0 Double
0 (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12) Double
b123
(H Double
a0 Double
a23 Double
a31 Double
a12) + (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) Double
b1 Double
b2 Double
b3 (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12) Double
b123
(C Double
a0 Double
a123) + (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) Double
0 Double
0 Double
0 Double
b23 Double
b31 Double
b12 Double
a123
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) + (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 Double
a1 Double
a2 Double
a3 (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12) Double
0
(ODD Double
a1 Double
a2 Double
a3 Double
a123) + (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 Double
a1 Double
a2 Double
a3 Double
b23 Double
b31 Double
b12 Double
a123
(TPV Double
a23 Double
a31 Double
a12 Double
a123) + (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 Double
0 Double
0 Double
0 (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12) Double
a123
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) + (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) Double
a1 Double
a2 Double
a3 (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12) Double
a123
(C Double
a0 Double
a123) + (C Double
b0 Double
b123) = Double -> Double -> Cl3
C (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(C Double
a0 Double
a123) + (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
a123
(C Double
a0 Double
a123) + (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
b1 Double
b2 Double
b3 Double
0 Double
0 Double
0 (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(C Double
a0 Double
a123) + (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
0 Double
0 Double
0 Double
b23 Double
b31 Double
b12 (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(C Double
a0 Double
a123) + (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) + (C Double
b0 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
b123
(ODD Double
a1 Double
a2 Double
a3 Double
a123) + (C Double
b0 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 Double
a1 Double
a2 Double
a3 Double
0 Double
0 Double
0 (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(TPV Double
a23 Double
a31 Double
a12 Double
a123) + (C Double
b0 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 Double
0 Double
0 Double
0 Double
a23 Double
a31 Double
a12 (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) + (C Double
b0 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0) Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) + (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12)
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) + (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0 (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) Double
a23 Double
a31 Double
a12 Double
b123
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) + (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0 Double
a1 Double
a2 Double
a3 (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12) Double
b123
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) + (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12) Double
b123
(ODD Double
a1 Double
a2 Double
a3 Double
a123) + (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0 (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) Double
b23 Double
b31 Double
b12 Double
a123
(TPV Double
a23 Double
a31 Double
a12 Double
a123) + (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0 Double
b1 Double
b2 Double
b3 (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12) Double
a123
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) + (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12) Double
a123
(ODD Double
a1 Double
a2 Double
a3 Double
a123) + (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double -> Double -> Double -> Double -> Cl3
ODD (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(ODD Double
a1 Double
a2 Double
a3 Double
a123) + (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0 Double
a1 Double
a2 Double
a3 Double
b23 Double
b31 Double
b12 (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(ODD Double
a1 Double
a2 Double
a3 Double
a123) + (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) Double
b23 Double
b31 Double
b12 (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(TPV Double
a23 Double
a31 Double
a12 Double
a123) + (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0 Double
b1 Double
b2 Double
b3 Double
a23 Double
a31 Double
a12 (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) + (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 (Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3) Double
a23 Double
a31 Double
a12 (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(TPV Double
a23 Double
a31 Double
a12 Double
a123) + (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double -> Double -> Double -> Double -> Cl3
TPV (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12) (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(TPV Double
a23 Double
a31 Double
a12 Double
a123) + (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
b0 Double
b1 Double
b2 Double
b3 (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12) (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) + (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
a1 Double
a2 Double
a3 (Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12) (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) + (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b0)
(Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b1) (Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2) (Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3)
(Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23) (Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31) (Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12)
(Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123)
(R Double
a0) * :: Cl3 -> Cl3 -> Cl3
* (R Double
b0) = Double -> Cl3
R (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(R Double
a0) * (V3 Double
b1 Double
b2 Double
b3) = Double -> Double -> Double -> Cl3
V3 (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(R Double
a0) * (BV Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Cl3
BV (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(R Double
a0) * (I Double
b123) = Double -> Cl3
I (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(R Double
a0) * (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double -> Double -> Double -> Double -> Cl3
PV (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(R Double
a0) * (H Double
b0 Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Cl3
H (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(R Double
a0) * (C Double
b0 Double
b123) = Double -> Double -> Cl3
C (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(R Double
a0) * (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(R Double
a0) * (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double -> Double -> Double -> Double -> Cl3
ODD (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(R Double
a0) * (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double -> Double -> Double -> Double -> Cl3
TPV (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(R Double
a0) * (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(V3 Double
a1 Double
a2 Double
a3) * (R Double
b0) = Double -> Double -> Double -> Cl3
V3 (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(BV Double
a23 Double
a31 Double
a12) * (R Double
b0) = Double -> Double -> Double -> Cl3
BV (Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(I Double
a123) * (R Double
b0) = Double -> Cl3
I (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(PV Double
a0 Double
a1 Double
a2 Double
a3) * (R Double
b0) = Double -> Double -> Double -> Double -> Cl3
PV (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(H Double
a0 Double
a23 Double
a31 Double
a12) * (R Double
b0) = Double -> Double -> Double -> Double -> Cl3
H (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(C Double
a0 Double
a123) * (R Double
b0) = Double -> Double -> Cl3
C (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) * (R Double
b0) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(ODD Double
a1 Double
a2 Double
a3 Double
a123) * (R Double
b0) = Double -> Double -> Double -> Double -> Cl3
ODD (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(TPV Double
a23 Double
a31 Double
a12 Double
a123) * (R Double
b0) = Double -> Double -> Double -> Double -> Cl3
TPV (Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) * (R Double
b0) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(V3 Double
a1 Double
a2 Double
a3) * (V3 Double
b1 Double
b2 Double
b3) = Double -> Double -> Double -> Double -> Cl3
H (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
(V3 Double
a1 Double
a2 Double
a3) * (BV Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Cl3
ODD (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12) (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(V3 Double
a1 Double
a2 Double
a3) * (I Double
b123) = Double -> Double -> Double -> Cl3
BV (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(V3 Double
a1 Double
a2 Double
a3) * (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
Double
0
(V3 Double
a1 Double
a2 Double
a3) * (H Double
b0 Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Cl3
ODD (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(V3 Double
a1 Double
a2 Double
a3) * (C Double
b0 Double
b123) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(V3 Double
a1 Double
a2 Double
a3) * (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12) (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(V3 Double
a1 Double
a2 Double
a3) * (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double -> Double -> Double -> Double -> Cl3
H (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
(V3 Double
a1 Double
a2 Double
a3) * (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0
(Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12) (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(V3 Double
a1 Double
a2 Double
a3) * (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(BV Double
a23 Double
a31 Double
a12) * (V3 Double
b1 Double
b2 Double
b3) = Double -> Double -> Double -> Double -> Cl3
ODD (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(I Double
a123) * (V3 Double
b1 Double
b2 Double
b3) = Double -> Double -> Double -> Cl3
BV (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(PV Double
a0 Double
a1 Double
a2 Double
a3) * (V3 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
Double
0
(H Double
a0 Double
a23 Double
a31 Double
a12) * (V3 Double
b1 Double
b2 Double
b3) = Double -> Double -> Double -> Double -> Cl3
ODD (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(C Double
a0 Double
a123) * (V3 Double
b1 Double
b2 Double
b3) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) * (V3 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(ODD Double
a1 Double
a2 Double
a3 Double
a123) * (V3 Double
b1 Double
b2 Double
b3) = Double -> Double -> Double -> Double -> Cl3
H (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
(TPV Double
a23 Double
a31 Double
a12 Double
a123) * (V3 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0
(Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) * (V3 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(BV Double
a23 Double
a31 Double
a12) * (BV Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Cl3
H (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12) (Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(BV Double
a23 Double
a31 Double
a12) * (I Double
b123) = Double -> Double -> Double -> Cl3
V3 (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(BV Double
a23 Double
a31 Double
a12) * (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0
(Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(BV Double
a23 Double
a31 Double
a12) * (H Double
b0 Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Cl3
H (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(BV Double
a23 Double
a31 Double
a12) * (C Double
b0 Double
b123) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(BV Double
a23 Double
a31 Double
a12) * (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12) (Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(BV Double
a23 Double
a31 Double
a12) * (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double -> Double -> Double -> Double -> Cl3
ODD (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(BV Double
a23 Double
a31 Double
a12) * (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12) (Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
Double
0
(BV Double
a23 Double
a31 Double
a12) * (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(I Double
a123) * (BV Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Cl3
V3 (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(PV Double
a0 Double
a1 Double
a2 Double
a3) * (BV Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0
(Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12) (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(H Double
a0 Double
a23 Double
a31 Double
a12) * (BV Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Cl3
H (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(C Double
a0 Double
a123) * (BV Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) * (BV Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12) (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12) (Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(ODD Double
a1 Double
a2 Double
a3 Double
a123) * (BV Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Cl3
ODD (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(TPV Double
a23 Double
a31 Double
a12 Double
a123) * (BV Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
Double
0
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) * (BV Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12) (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(I Double
a123) * (I Double
b123) = Double -> Cl3
R (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(I Double
a123) * (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double -> Double -> Double -> Double -> Cl3
TPV (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(I Double
a123) * (H Double
b0 Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Cl3
ODD (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(I Double
a123) * (C Double
b0 Double
b123) = Double -> Double -> Cl3
C (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(I Double
a123) * (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(I Double
a123) * (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double -> Double -> Double -> Double -> Cl3
H (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(I Double
a123) * (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double -> Double -> Double -> Double -> Cl3
PV (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(I Double
a123) * (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(PV Double
a0 Double
a1 Double
a2 Double
a3) * (I Double
b123) = Double -> Double -> Double -> Double -> Cl3
TPV (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(H Double
a0 Double
a23 Double
a31 Double
a12) * (I Double
b123) = Double -> Double -> Double -> Double -> Cl3
ODD (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(C Double
a0 Double
a123) * (I Double
b123) = Double -> Double -> Cl3
C (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) * (I Double
b123) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(ODD Double
a1 Double
a2 Double
a3 Double
a123) * (I Double
b123) = Double -> Double -> Double -> Double -> Cl3
H (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(TPV Double
a23 Double
a31 Double
a12 Double
a123) * (I Double
b123) = Double -> Double -> Double -> Double -> Cl3
PV (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) * (I Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(PV Double
a0 Double
a1 Double
a2 Double
a3) * (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
Double
0
(PV Double
a0 Double
a1 Double
a2 Double
a3) * (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(PV Double
a0 Double
a1 Double
a2 Double
a3) * (C Double
b0 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(PV Double
a0 Double
a1 Double
a2 Double
a3) * (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(PV Double
a0 Double
a1 Double
a2 Double
a3) * (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(PV Double
a0 Double
a1 Double
a2 Double
a3) * (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0
(Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12) (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(PV Double
a0 Double
a1 Double
a2 Double
a3) * (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(H Double
a0 Double
a23 Double
a31 Double
a12) * (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(C Double
a0 Double
a123) * (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) * (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(ODD Double
a1 Double
a2 Double
a3 Double
a123) * (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(TPV Double
a23 Double
a31 Double
a12 Double
a123) * (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0
(Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) * (PV Double
b0 Double
b1 Double
b2 Double
b3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(H Double
a0 Double
a23 Double
a31 Double
a12) * (H Double
b0 Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Cl3
H (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(H Double
a0 Double
a23 Double
a31 Double
a12) * (C Double
b0 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(H Double
a0 Double
a23 Double
a31 Double
a12) * (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(H Double
a0 Double
a23 Double
a31 Double
a12) * (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double -> Double -> Double -> Double -> Cl3
ODD (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(H Double
a0 Double
a23 Double
a31 Double
a12) * (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(H Double
a0 Double
a23 Double
a31 Double
a12) * (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(C Double
a0 Double
a123) * (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) * (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(ODD Double
a1 Double
a2 Double
a3 Double
a123) * (H Double
b0 Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Cl3
ODD (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(TPV Double
a23 Double
a31 Double
a12 Double
a123) * (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) * (H Double
b0 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(C Double
a0 Double
a123) * (C Double
b0 Double
b123) = Double -> Double -> Cl3
C (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(C Double
a0 Double
a123) * (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(C Double
a0 Double
a123) * (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(C Double
a0 Double
a123) * (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(C Double
a0 Double
a123) * (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) * (C Double
b0 Double
b123) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(ODD Double
a1 Double
a2 Double
a3 Double
a123) * (C Double
b0 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(TPV Double
a23 Double
a31 Double
a12 Double
a123) * (C Double
b0 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0) (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) * (C Double
b0 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0)
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) * (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) * (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) * (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) * (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(ODD Double
a1 Double
a2 Double
a3 Double
a123) * (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(TPV Double
a23 Double
a31 Double
a12 Double
a123) * (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) * (BPV Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(ODD Double
a1 Double
a2 Double
a3 Double
a123) * (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double -> Double -> Double -> Double -> Cl3
H (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
(Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
(ODD Double
a1 Double
a2 Double
a3 Double
a123) * (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(ODD Double
a1 Double
a2 Double
a3 Double
a123) * (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
(Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(TPV Double
a23 Double
a31 Double
a12 Double
a123) * (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2) (Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) * (ODD Double
b1 Double
b2 Double
b3 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2)
(Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
(Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(TPV Double
a23 Double
a31 Double
a12 Double
a123) * (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12) (Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23) (Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
Double
0
(TPV Double
a23 Double
a31 Double
a12 Double
a123) * (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) * (TPV Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) * (APS Double
b0 Double
b1 Double
b2 Double
b3 Double
b23 Double
b31 Double
b12 Double
b123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23)
(Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3)
abs :: Cl3 -> Cl3
abs Cl3
cl3 = (Cl3, Cl3) -> Cl3
forall a b. (a, b) -> a
fst ((Cl3, Cl3) -> Cl3) -> (Cl3, Cl3) -> Cl3
forall a b. (a -> b) -> a -> b
$ Cl3 -> (Cl3, Cl3)
abssignum Cl3
cl3
signum :: Cl3 -> Cl3
signum Cl3
cl3 = (Cl3, Cl3) -> Cl3
forall a b. (a, b) -> b
snd ((Cl3, Cl3) -> Cl3) -> (Cl3, Cl3) -> Cl3
forall a b. (a -> b) -> a -> b
$ Cl3 -> (Cl3, Cl3)
abssignum Cl3
cl3
fromInteger :: Integer -> Cl3
fromInteger Integer
int = Double -> Cl3
R (Integer -> Double
forall a. Num a => Integer -> a
fromInteger Integer
int)
negate :: Cl3 -> Cl3
negate (R Double
a0) = Double -> Cl3
R (Double -> Double
forall a. Num a => a -> a
negate Double
a0)
negate (V3 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Cl3
V3 (Double -> Double
forall a. Num a => a -> a
negate Double
a1) (Double -> Double
forall a. Num a => a -> a
negate Double
a2) (Double -> Double
forall a. Num a => a -> a
negate Double
a3)
negate (BV Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Cl3
BV (Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12)
negate (I Double
a123) = Double -> Cl3
I (Double -> Double
forall a. Num a => a -> a
negate Double
a123)
negate (PV Double
a0 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Double -> Cl3
PV (Double -> Double
forall a. Num a => a -> a
negate Double
a0)
(Double -> Double
forall a. Num a => a -> a
negate Double
a1) (Double -> Double
forall a. Num a => a -> a
negate Double
a2) (Double -> Double
forall a. Num a => a -> a
negate Double
a3)
negate (H Double
a0 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Cl3
H (Double -> Double
forall a. Num a => a -> a
negate Double
a0)
(Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12)
negate (C Double
a0 Double
a123) = Double -> Double -> Cl3
C (Double -> Double
forall a. Num a => a -> a
negate Double
a0)
(Double -> Double
forall a. Num a => a -> a
negate Double
a123)
negate (BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV (Double -> Double
forall a. Num a => a -> a
negate Double
a1) (Double -> Double
forall a. Num a => a -> a
negate Double
a2) (Double -> Double
forall a. Num a => a -> a
negate Double
a3)
(Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12)
negate (ODD Double
a1 Double
a2 Double
a3 Double
a123) = Double -> Double -> Double -> Double -> Cl3
ODD (Double -> Double
forall a. Num a => a -> a
negate Double
a1) (Double -> Double
forall a. Num a => a -> a
negate Double
a2) (Double -> Double
forall a. Num a => a -> a
negate Double
a3)
(Double -> Double
forall a. Num a => a -> a
negate Double
a123)
negate (TPV Double
a23 Double
a31 Double
a12 Double
a123) = Double -> Double -> Double -> Double -> Cl3
TPV (Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12)
(Double -> Double
forall a. Num a => a -> a
negate Double
a123)
negate (APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate Double
a0)
(Double -> Double
forall a. Num a => a -> a
negate Double
a1) (Double -> Double
forall a. Num a => a -> a
negate Double
a2) (Double -> Double
forall a. Num a => a -> a
negate Double
a3)
(Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12)
(Double -> Double
forall a. Num a => a -> a
negate Double
a123)
reimMag :: Double -> Double -> Double -> Double -> Double
reimMag :: Double -> Double -> Double -> Double -> Double
reimMag Double
v0 Double
v1 Double
v2 Double
v3 =
let sumsqs :: Double
sumsqs = Double
v1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
v2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
v3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
x :: Double
x = Double -> Double
forall a. Num a => a -> a
abs Double
v0 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
sqrt Double
sumsqs
in Double -> Double
forall a. Floating a => a -> a
sqrt (Double
v0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
sumsqs Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
x)
instance Fractional Cl3 where
recip :: Cl3 -> Cl3
recip (R Double
a0) = Double -> Cl3
R (Double -> Double
forall a. Fractional a => a -> a
recip Double
a0)
recip Cl3
cliff =
let (R Double
mag) = Cl3 -> Cl3
forall a. Num a => a -> a
abs Cl3
cliff
recipsqmag :: Double
recipsqmag = Double -> Double
forall a. Fractional a => a -> a
recip Double
magDouble -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
negrecipsqmag :: Double
negrecipsqmag = Double -> Double
forall a. Num a => a -> a
negate Double
recipsqmag
recipmag2 :: Cl3
recipmag2 = Cl3 -> Cl3
forall a. Fractional a => a -> a
recip(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3 -> Cl3
toR (Cl3 -> Cl3) -> Cl3 -> Cl3
forall a b. (a -> b) -> a -> b
$ Cl3
cliff Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
* Cl3 -> Cl3
bar Cl3
cliff
go_recip :: Cl3 -> Cl3
go_recip (V3 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Cl3
V3 (Double
recipsqmag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a1) (Double
recipsqmag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a2) (Double
recipsqmag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a3)
go_recip (BV Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Cl3
BV (Double
negrecipsqmag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a23) (Double
negrecipsqmag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a31) (Double
negrecipsqmag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a12)
go_recip (I Double
a123) = Double -> Cl3
I (Double
negrecipsqmag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a123)
go_recip (H Double
a0 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Cl3
H (Double
recipsqmag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a0) (Double
negrecipsqmag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a23) (Double
negrecipsqmag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a31) (Double
negrecipsqmag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a12)
go_recip (C Double
a0 Double
a123) = Double -> Double -> Cl3
C (Double
recipsqmag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a0) (Double
negrecipsqmag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a123)
go_recip (ODD Double
a1 Double
a2 Double
a3 Double
a123) = Double -> Double -> Double -> Double -> Cl3
ODD (Double
recipsqmag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a1) (Double
recipsqmag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a2) (Double
recipsqmag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a3) (Double
negrecipsqmag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a123)
go_recip pv :: Cl3
pv@PV{} = Cl3
recipmag2 Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
* Cl3 -> Cl3
bar Cl3
pv
go_recip tpv :: Cl3
tpv@TPV{} = Cl3
recipmag2 Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
* Cl3 -> Cl3
bar Cl3
tpv
go_recip Cl3
cliffor = Cl3 -> Cl3
reduce (Cl3 -> Cl3) -> Cl3 -> Cl3
forall a b. (a -> b) -> a -> b
$ (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmp Cl3 -> Cl3
forall a. Fractional a => a -> a
recip Cl3 -> Cl3
recip' Cl3
cliffor
in Cl3 -> Cl3
go_recip Cl3
cliff
fromRational :: Rational -> Cl3
fromRational Rational
rat = Double -> Cl3
R (Rational -> Double
forall a. Fractional a => Rational -> a
fromRational Rational
rat)
instance Floating Cl3 where
pi :: Cl3
pi = Double -> Cl3
R Double
forall a. Floating a => a
pi
exp :: Cl3 -> Cl3
exp (R Double
a0) = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
exp Double
a0)
exp (I Double
a123) = Double -> Double -> Cl3
C (Double -> Double
forall a. Floating a => a -> a
cos Double
a123) (Double -> Double
forall a. Floating a => a -> a
sin Double
a123)
exp (C Double
a0 Double
a123) =
let expa0 :: Double
expa0 = Double -> Double
forall a. Floating a => a -> a
exp Double
a0
in Double -> Double -> Cl3
C (Double
expa0 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
cos Double
a123) (Double
expa0 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
sin Double
a123)
exp Cl3
cliffor = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmp Cl3 -> Cl3
forall a. Floating a => a -> a
exp Cl3 -> Cl3
exp' Cl3
cliffor
log :: Cl3 -> Cl3
log (R Double
a0)
| Double
a0 Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
>= Double
0 = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
log Double
a0)
| Double
a0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== (-Double
1) = Double -> Cl3
I Double
forall a. Floating a => a
pi
| Bool
otherwise = Double -> Double -> Cl3
C (Double -> Double
forall a. Floating a => a -> a
log(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a0) Double
forall a. Floating a => a
pi
log (I Double
a123)
| Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
1 = Double -> Cl3
I (Double
forall a. Floating a => a
piDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2)
| Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== (-Double
1) = Double -> Cl3
I (-Double
forall a. Floating a => a
piDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2)
| Bool
otherwise = Double -> Double -> Cl3
C (Double -> Double
forall a. Floating a => a -> a
log(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Num a => a -> a
abs (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123) (Double -> Double
forall a. Num a => a -> a
signum Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
* (Double
forall a. Floating a => a
piDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2))
log (C Double
a0 Double
a123) = Double -> Double -> Cl3
C (Double -> Double
forall a. Floating a => a -> a
log (Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2) Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/ Double
2) (Double -> Double -> Double
forall a. RealFloat a => a -> a -> a
atan2 Double
a123 Double
a0)
log Cl3
cliffor = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmp Cl3 -> Cl3
forall a. Floating a => a -> a
log Cl3 -> Cl3
log' Cl3
cliffor
sqrt :: Cl3 -> Cl3
sqrt (R Double
a0)
| Double
a0 Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
>= Double
0 = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
sqrt Double
a0)
| Bool
otherwise = Double -> Cl3
I (Double -> Double
forall a. Floating a => a -> a
sqrt(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a0)
sqrt (I Double
a123)
| Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 = Double -> Cl3
R Double
0
| Bool
otherwise =
let sqrtr :: Double
sqrtr = Double -> Double
forall a. Floating a => a -> a
sqrt(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Num a => a -> a
abs (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a123
phiby2 :: Double
phiby2 = Double -> Double
forall a. Num a => a -> a
signum Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
* (Double
forall a. Floating a => a
piDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
4)
in Double -> Double -> Cl3
C (Double
sqrtr Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
cos Double
phiby2) (Double
sqrtr Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
sin Double
phiby2)
sqrt (C Double
a0 Double
a123) =
let sqrtr :: Double
sqrtr = Double -> Double
forall a. Floating a => a -> a
sqrt(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
phiby2 :: Double
phiby2 = Double -> Double -> Double
forall a. RealFloat a => a -> a -> a
atan2 Double
a123 Double
a0 Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/ Double
2
in Double -> Double -> Cl3
C (Double
sqrtr Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
cos Double
phiby2) (Double
sqrtr Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
sin Double
phiby2)
sqrt Cl3
cliffor = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmp Cl3 -> Cl3
forall a. Floating a => a -> a
sqrt Cl3 -> Cl3
sqrt' Cl3
cliffor
sin :: Cl3 -> Cl3
sin (R Double
a0) = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
sin Double
a0)
sin (I Double
a123)
| Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 = Double -> Cl3
R Double
0
| Bool
otherwise = Double -> Cl3
I (Double -> Double
forall a. Floating a => a -> a
sinh Double
a123)
sin (C Double
a0 Double
a123) = Double -> Double -> Cl3
C (Double -> Double
forall a. Floating a => a -> a
sin Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
cosh Double
a123) (Double -> Double
forall a. Floating a => a -> a
cos Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
sinh Double
a123)
sin Cl3
cliffor = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmp Cl3 -> Cl3
forall a. Floating a => a -> a
sin Cl3 -> Cl3
sin' Cl3
cliffor
cos :: Cl3 -> Cl3
cos (R Double
a0) = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
cos Double
a0)
cos (I Double
a123) = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
cosh Double
a123)
cos (C Double
a0 Double
a123) = Double -> Double -> Cl3
C (Double -> Double
forall a. Floating a => a -> a
cos Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
cosh Double
a123) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double -> Double
forall a. Floating a => a -> a
sin Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
sinh Double
a123)
cos Cl3
cliffor = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmp Cl3 -> Cl3
forall a. Floating a => a -> a
cos Cl3 -> Cl3
cos' Cl3
cliffor
tan :: Cl3 -> Cl3
tan (R Double
a0) = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
tan Double
a0)
tan (I Double
a123)
| Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 = Double -> Cl3
R Double
0
| Bool
otherwise = Double -> Cl3
I (Double -> Double
forall a. Floating a => a -> a
tanh Double
a123)
tan (Cl3 -> Cl3
reduce -> C Double
a0 Double
a123) =
let
m :: Double
m = Double
x2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
y2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
x1 :: Double
x1 = Double
sinxDouble -> Double -> Double
forall a. Num a => a -> a -> a
*Double
coshy
y1 :: Double
y1 = Double
cosxDouble -> Double -> Double
forall a. Num a => a -> a -> a
*Double
sinhy
x2 :: Double
x2 = Double
cosxDouble -> Double -> Double
forall a. Num a => a -> a -> a
*Double
coshy
y2 :: Double
y2 = Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
sinxDouble -> Double -> Double
forall a. Num a => a -> a -> a
*Double
sinhy
sinx :: Double
sinx = Double -> Double
forall a. Floating a => a -> a
sin Double
a0
cosx :: Double
cosx = Double -> Double
forall a. Floating a => a -> a
cos Double
a0
sinhy :: Double
sinhy = Double -> Double
forall a. Floating a => a -> a
sinh Double
a123
coshy :: Double
coshy = Double -> Double
forall a. Floating a => a -> a
cosh Double
a123
in Double -> Double -> Cl3
C ((Double
x1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
x2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
y1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
y2)Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
m) ((Double
x2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
y1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
x1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
y2)Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
m)
tan Cl3
cliffor = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmp Cl3 -> Cl3
forall a. Floating a => a -> a
tan Cl3 -> Cl3
tan' Cl3
cliffor
asin :: Cl3 -> Cl3
asin (R Double
a0)
| Double
a0 Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
> Double
1 = Double -> Double -> Cl3
C (Double
forall a. Floating a => a
piDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2) (Double -> Double
forall a. Num a => a -> a
negate(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
log (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double -> Double
forall a. Floating a => a -> a
sqrt (Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
1)))
| Double
a0 Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
>= (-Double
1) = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
asin Double
a0)
| Bool
otherwise = Double -> Double -> Cl3
C (-Double
forall a. Floating a => a
piDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2) (Double -> Double
forall a. Num a => a -> a
negate(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
log(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Num a => a -> a
abs (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double -> Double
forall a. Floating a => a -> a
sqrt (Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
1)))
asin (I Double
a123)
| Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 = Double -> Cl3
R Double
0
| Bool
otherwise = Double -> Cl3
I (Double -> Double
forall a. Floating a => a -> a
asinh Double
a123)
asin (C Double
a0 Double
a123) =
let theta :: Double
theta = Double -> Double -> Double
forall a. RealFloat a => a -> a -> a
atan2 (-Double
2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a123) (Double
1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2)
rho :: Double
rho = Double -> Double
forall a. Floating a => a -> a
sqrt(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ (Double
1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (-Double
2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a123)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
b0 :: Double
b0 = Double
rho Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
cos (Double
thetaDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2) Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123
b123 :: Double
b123 = Double
rho Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
sin (Double
thetaDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2) Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a0
in Double -> Double -> Cl3
C (Double -> Double -> Double
forall a. RealFloat a => a -> a -> a
atan2 Double
b123 Double
b0) (Double -> Double
forall a. Floating a => a -> a
log (Double
b0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2) Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/ (-Double
2))
asin Cl3
cliffor = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmp Cl3 -> Cl3
forall a. Floating a => a -> a
asin Cl3 -> Cl3
asin' Cl3
cliffor
acos :: Cl3 -> Cl3
acos (R Double
a0)
| Double
a0 Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
> Double
1 = Double -> Cl3
I (Double -> Double
forall a. Floating a => a -> a
log (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double -> Double
forall a. Floating a => a -> a
sqrt (Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
1)))
| Double
a0 Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
>= (-Double
1) = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
acos Double
a0)
| Bool
otherwise = Double -> Double -> Cl3
C Double
forall a. Floating a => a
pi (Double -> Double
forall a. Floating a => a -> a
log(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Num a => a -> a
abs (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ (Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double -> Double
forall a. Floating a => a -> a
sqrt (Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
1)))
acos (I Double
a123)
| Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 = Double -> Cl3
R (Double
forall a. Floating a => a
piDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2)
| Bool
otherwise = Double -> Double -> Cl3
C (Double
forall a. Floating a => a
piDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2) (Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double -> Double
forall a. Floating a => a -> a
asinh Double
a123)
acos (C Double
a0 Double
a123) =
let theta :: Double
theta = Double -> Double -> Double
forall a. RealFloat a => a -> a -> a
atan2 (-Double
2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a123) (Double
1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2)
rho :: Double
rho = Double -> Double
forall a. Floating a => a -> a
sqrt(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ (Double
1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (-Double
2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a123)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
b0 :: Double
b0 = Double
rho Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
cos (Double
thetaDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2) Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123
b123 :: Double
b123 = Double
rho Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
sin (Double
thetaDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2) Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a0
in Double -> Double -> Cl3
C ((Double
forall a. Floating a => a
piDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2) Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double -> Double -> Double
forall a. RealFloat a => a -> a -> a
atan2 Double
b123 Double
b0) (Double -> Double
forall a. Floating a => a -> a
log (Double
b0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2) Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/ Double
2)
acos Cl3
cliffor = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmp Cl3 -> Cl3
forall a. Floating a => a -> a
acos Cl3 -> Cl3
acos' Cl3
cliffor
atan :: Cl3 -> Cl3
atan (R Double
a0) = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
atan Double
a0)
atan (I Double
a123)
| Double
a123 Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
> Double
1 = Double -> Double -> Cl3
C (Double
forall a. Floating a => a
piDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2) (Double
0.5Double -> Double -> Double
forall a. Num a => a -> a -> a
*(Double -> Double
forall a. Floating a => a -> a
log (Double
1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123) Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double -> Double
forall a. Floating a => a -> a
log (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
1)))
| Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 = Double -> Cl3
R Double
0
| Double
a123 Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
>= (-Double
1) = Double -> Cl3
I (Double -> Double
forall a. Floating a => a -> a
atanh Double
a123)
| Bool
otherwise = Double -> Double -> Cl3
C (-Double
forall a. Floating a => a
piDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2) (((Double -> Double
forall a. Floating a => a -> a
log(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ (Double
1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123)) Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double -> Double
forall a. Floating a => a -> a
log (Double
1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123))Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2)
atan (C Double
a0 Double
a123) = Double -> Double -> Cl3
C ((Double -> Double -> Double
forall a. RealFloat a => a -> a -> a
atan2 Double
a0 (Double
1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123) Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double -> Double -> Double
forall a. RealFloat a => a -> a -> a
atan2 Double
a0 (Double
1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123))Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2)
((Double -> Double
forall a. Floating a => a -> a
log ((Double
1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2) Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double -> Double
forall a. Floating a => a -> a
log ((Double
1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2))Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
4)
atan Cl3
cliffor = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmp Cl3 -> Cl3
forall a. Floating a => a -> a
atan Cl3 -> Cl3
atan' Cl3
cliffor
sinh :: Cl3 -> Cl3
sinh (R Double
a0) = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
sinh Double
a0)
sinh (I Double
a123) = Double -> Cl3
I (Double -> Double
forall a. Floating a => a -> a
sin Double
a123)
sinh (C Double
a0 Double
a123) = Double -> Double -> Cl3
C (Double -> Double
forall a. Floating a => a -> a
cos Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
sinh Double
a0) (Double -> Double
forall a. Floating a => a -> a
sin Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
cosh Double
a0)
sinh Cl3
cliffor = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmp Cl3 -> Cl3
forall a. Floating a => a -> a
sinh Cl3 -> Cl3
sinh' Cl3
cliffor
cosh :: Cl3 -> Cl3
cosh (R Double
a0) = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
cosh Double
a0)
cosh (I Double
a123) = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
cos Double
a123)
cosh (C Double
a0 Double
a123) = Double -> Double -> Cl3
C (Double -> Double
forall a. Floating a => a -> a
cos Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
cosh Double
a0) (Double -> Double
forall a. Floating a => a -> a
sin Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
sinh Double
a0)
cosh Cl3
cliffor = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmp Cl3 -> Cl3
forall a. Floating a => a -> a
cosh Cl3 -> Cl3
cosh' Cl3
cliffor
tanh :: Cl3 -> Cl3
tanh (R Double
a0) = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
tanh Double
a0)
tanh (I Double
a123) = Double -> Cl3
I (Double -> Double
forall a. Floating a => a -> a
tan Double
a123)
tanh (Cl3 -> Cl3
reduce -> C Double
a0 Double
a123) =
let
m :: Double
m = Double
x2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
y2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
x1 :: Double
x1 = Double
cosyDouble -> Double -> Double
forall a. Num a => a -> a -> a
*Double
sinhx
y1 :: Double
y1 = Double
sinyDouble -> Double -> Double
forall a. Num a => a -> a -> a
*Double
coshx
x2 :: Double
x2 = Double
cosyDouble -> Double -> Double
forall a. Num a => a -> a -> a
*Double
coshx
y2 :: Double
y2 = Double
sinyDouble -> Double -> Double
forall a. Num a => a -> a -> a
*Double
sinhx
siny :: Double
siny = Double -> Double
forall a. Floating a => a -> a
sin Double
a123
cosy :: Double
cosy = Double -> Double
forall a. Floating a => a -> a
cos Double
a123
sinhx :: Double
sinhx = Double -> Double
forall a. Floating a => a -> a
sinh Double
a0
coshx :: Double
coshx = Double -> Double
forall a. Floating a => a -> a
cosh Double
a0
in Double -> Double -> Cl3
C ((Double
x1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
x2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
y1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
y2)Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
m) ((Double
x2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
y1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
x1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
y2)Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
m)
tanh Cl3
cliffor = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmp Cl3 -> Cl3
forall a. Floating a => a -> a
tanh Cl3 -> Cl3
tanh' Cl3
cliffor
asinh :: Cl3 -> Cl3
asinh (R Double
a0) = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
asinh Double
a0)
asinh (I Double
a123)
| Double
a123 Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
> Double
1 = Double -> Double -> Cl3
C (Double -> Double
forall a. Floating a => a -> a
log(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Num a => a -> a
abs (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double -> Double
forall a. Floating a => a -> a
sqrt (Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
1))) (Double
forall a. Floating a => a
piDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2)
| Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 = Double -> Cl3
R Double
0
| Double
a123 Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
>= (-Double
1) = Double -> Cl3
I (Double -> Double
forall a. Floating a => a -> a
asin Double
a123)
| Bool
otherwise = Double -> Double -> Cl3
C (Double -> Double
forall a. Floating a => a -> a
log(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Num a => a -> a
abs (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double -> Double
forall a. Floating a => a -> a
sqrt (Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
1))) (-Double
forall a. Floating a => a
piDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2)
asinh (C Double
a0 Double
a123) =
let theta :: Double
theta = Double -> Double -> Double
forall a. RealFloat a => a -> a -> a
atan2 (Double
2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a123) (Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+Double
1)
rho :: Double
rho = Double -> Double
forall a. Floating a => a -> a
sqrt(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ (Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+Double
1)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a123)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
b0 :: Double
b0 = Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
rho Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
cos (Double
thetaDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2)
b123 :: Double
b123 = Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
rho Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
sin (Double
thetaDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2)
in Double -> Double -> Cl3
C (Double -> Double
forall a. Floating a => a -> a
log (Double
b0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2) Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/ Double
2) (Double -> Double -> Double
forall a. RealFloat a => a -> a -> a
atan2 Double
b123 Double
b0)
asinh Cl3
cliffor = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmp Cl3 -> Cl3
forall a. Floating a => a -> a
asinh Cl3 -> Cl3
asinh' Cl3
cliffor
acosh :: Cl3 -> Cl3
acosh (R Double
a0)
| Double
a0 Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
>= Double
1 = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
acosh Double
a0)
| Double
a0 Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
>= (-Double
1) = Double -> Cl3
I (Double -> Double -> Double
forall a. RealFloat a => a -> a -> a
atan2 (Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
1Double -> Double -> Double
forall a. Num a => a -> a -> a
-Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2) Double
a0)
| Bool
otherwise = Double -> Double -> Cl3
C (Double -> Double
forall a. Floating a => a -> a
acosh(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a0) Double
forall a. Floating a => a
pi
acosh (I Double
a123)
| Double
a123 Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
> Double
0 = Double -> Double -> Cl3
C (Double -> Double
forall a. Floating a => a -> a
log(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Num a => a -> a
abs (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double -> Double
forall a. Floating a => a -> a
sqrt (Double
1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2))) (Double
forall a. Floating a => a
piDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2)
| Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 = Double -> Cl3
I (Double
forall a. Floating a => a
piDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2)
| Bool
otherwise = Double -> Double -> Cl3
C (Double -> Double
forall a. Floating a => a -> a
log(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Num a => a -> a
abs (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ (Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double -> Double
forall a. Floating a => a -> a
sqrt (Double
1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2))) (-Double
forall a. Floating a => a
piDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2)
acosh (C Double
a0 Double
a123) =
let theta :: Double
theta = Double -> Double -> Double
forall a. RealFloat a => a -> a -> a
atan2 Double
a123 (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
+Double
1) Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double -> Double -> Double
forall a. RealFloat a => a -> a -> a
atan2 Double
a123 (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
-Double
1)
rho :: Double
rho = Double -> Double
forall a. Floating a => a -> a
sqrt(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ ((Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
+Double
1)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2) Double -> Double -> Double
forall a. Num a => a -> a -> a
* ((Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
-Double
1)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2)
b0 :: Double
b0 = Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
rho Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
cos(Double
thetaDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2)
b123 :: Double
b123 = Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
rho Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
sin(Double
thetaDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2)
in Double -> Double -> Cl3
C (Double -> Double
forall a. Floating a => a -> a
log (Double
b0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2) Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/ Double
2) (Double -> Double -> Double
forall a. RealFloat a => a -> a -> a
atan2 Double
b123 Double
b0)
acosh Cl3
cliffor = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmp Cl3 -> Cl3
forall a. Floating a => a -> a
acosh Cl3 -> Cl3
acosh' Cl3
cliffor
atanh :: Cl3 -> Cl3
atanh (R Double
a0)
| Double
a0 Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
> Double
1 = Double -> Double -> Cl3
C ((Double -> Double
forall a. Floating a => a -> a
log (Double
1Double -> Double -> Double
forall a. Num a => a -> a -> a
+Double
a0) Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double -> Double
forall a. Floating a => a -> a
log (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
-Double
1))Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2) (-Double
forall a. Floating a => a
piDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2)
| Double
a0 Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
>= (-Double
1) = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
atanh Double
a0)
| Bool
otherwise = Double -> Double -> Cl3
C (((Double -> Double
forall a. Floating a => a -> a
log(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
1Double -> Double -> Double
forall a. Num a => a -> a -> a
+Double
a0) Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double -> Double
forall a. Floating a => a -> a
log (Double
1Double -> Double -> Double
forall a. Num a => a -> a -> a
-Double
a0))Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2) (Double
forall a. Floating a => a
piDouble -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2)
atanh (I Double
a123)
| Double
a123 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 = Double -> Cl3
R Double
0
| Bool
otherwise = Double -> Cl3
I (Double -> Double
forall a. Floating a => a -> a
atan Double
a123)
atanh (C Double
a0 Double
a123) = Double -> Double -> Cl3
C ((Double -> Double
forall a. Floating a => a -> a
log ((Double
1Double -> Double -> Double
forall a. Num a => a -> a -> a
+Double
a0)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2) Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double -> Double
forall a. Floating a => a -> a
log ((Double
1Double -> Double -> Double
forall a. Num a => a -> a -> a
-Double
a0)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2))Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
4) ((Double -> Double -> Double
forall a. RealFloat a => a -> a -> a
atan2 Double
a123 (Double
1Double -> Double -> Double
forall a. Num a => a -> a -> a
-Double
a0) Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double -> Double -> Double
forall a. RealFloat a => a -> a -> a
atan2 Double
a123 (Double
1Double -> Double -> Double
forall a. Num a => a -> a -> a
+Double
a0))Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2)
atanh Cl3
cliffor = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmp Cl3 -> Cl3
forall a. Floating a => a -> a
atanh Cl3 -> Cl3
atanh' Cl3
cliffor
lsv :: Cl3 -> Cl3
lsv :: Cl3 -> Cl3
lsv (R Double
a0) = Double -> Cl3
R (Double -> Double
forall a. Num a => a -> a
abs Double
a0)
lsv (V3 Double
a1 Double
a2 Double
a3) = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
sqrt (Double
a1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2))
lsv (BV Double
a23 Double
a31 Double
a12) = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
sqrt (Double
a23Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2))
lsv (I Double
a123) = Double -> Cl3
R (Double -> Double
forall a. Num a => a -> a
abs Double
a123)
lsv (PV Double
a0 Double
a1 Double
a2 Double
a3) = Double -> Cl3
R (Double -> Double -> Double -> Double -> Double
loDisc Double
a0 Double
a1 Double
a2 Double
a3)
lsv (TPV Double
a23 Double
a31 Double
a12 Double
a123) = Double -> Cl3
R (Double -> Double -> Double -> Double -> Double
loDisc Double
a123 Double
a23 Double
a31 Double
a12)
lsv (H Double
a0 Double
a23 Double
a31 Double
a12) = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
sqrt (Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2))
lsv (C Double
a0 Double
a123) = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
sqrt (Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2))
lsv (BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) =
let x :: Double
x = Double -> Double
forall a. Num a => a -> a
negate(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a23)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a23)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a31)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
y :: Double
y = Double
a1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
x Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
x
in if Double
y Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
<= Double
tol'
then Double -> Cl3
R Double
0
else Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
sqrt Double
y)
lsv (ODD Double
a1 Double
a2 Double
a3 Double
a123) = Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
sqrt (Double
a1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2))
lsv (APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) =
let x :: Double
x = Double -> Double
forall a. Num a => a -> a
negate(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a23)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a31)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a12)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+
(Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a31)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a12)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a23)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
y :: Double
y = Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
x Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
x
in if Double
y Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
<= Double
tol'
then Double -> Cl3
R Double
0
else Double -> Cl3
R (Double -> Double
forall a. Floating a => a -> a
sqrt Double
y)
loDisc :: Double -> Double -> Double -> Double -> Double
loDisc :: Double -> Double -> Double -> Double -> Double
loDisc Double
v0 Double
v1 Double
v2 Double
v3 =
let sumsqs :: Double
sumsqs = Double
v1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
v2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
v3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
x :: Double
x = Double -> Double
forall a. Num a => a -> a
negate (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double -> Double
forall a. Num a => a -> a
abs Double
v0 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
sqrt Double
sumsqs
y :: Double
y = Double
v0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
x Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
sumsqs Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
x
in if Double
y Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
<= Double
tol'
then Double
0
else Double -> Double
forall a. Floating a => a -> a
sqrt Double
y
spectraldcmp :: (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmp :: (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmp Cl3 -> Cl3
fun Cl3 -> Cl3
fun' (Cl3 -> Cl3
reduce -> Cl3
cliffor) = Cl3 -> Cl3
dcmp Cl3
cliffor
where
dcmp :: Cl3 -> Cl3
dcmp r :: Cl3
r@R{} = Cl3 -> Cl3
fun Cl3
r
dcmp i :: Cl3
i@I{} = Cl3 -> Cl3
fun Cl3
i
dcmp c :: Cl3
c@C{} = Cl3 -> Cl3
fun Cl3
c
dcmp v :: Cl3
v@V3{} = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmpSpecial Cl3 -> Cl3
toR Cl3 -> Cl3
fun Cl3
v
dcmp pv :: Cl3
pv@PV{} = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmpSpecial Cl3 -> Cl3
toR Cl3 -> Cl3
fun Cl3
pv
dcmp bv :: Cl3
bv@BV{} = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmpSpecial Cl3 -> Cl3
toI Cl3 -> Cl3
fun Cl3
bv
dcmp tpv :: Cl3
tpv@TPV{} = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmpSpecial Cl3 -> Cl3
toI Cl3 -> Cl3
fun Cl3
tpv
dcmp h :: Cl3
h@H{} = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmpSpecial Cl3 -> Cl3
toC Cl3 -> Cl3
fun Cl3
h
dcmp od :: Cl3
od@ODD{} = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmpSpecial Cl3 -> Cl3
toC Cl3 -> Cl3
fun Cl3
od
dcmp Cl3
cliff
| Cl3 -> Bool
hasNilpotent Cl3
cliff = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
jordan Cl3 -> Cl3
toC Cl3 -> Cl3
fun Cl3 -> Cl3
fun' Cl3
cliff
| Cl3 -> Bool
isColinear Cl3
cliff = (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmpSpecial Cl3 -> Cl3
toC Cl3 -> Cl3
fun Cl3
cliff
| Bool
otherwise =
let (BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) = Cl3 -> Cl3
toBPV Cl3
cliff
boost :: Cl3
boost = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
boost2colinear Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12
in Cl3
boost Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
* (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmpSpecial Cl3 -> Cl3
toC Cl3 -> Cl3
fun (Cl3 -> Cl3
bar Cl3
boost Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
* Cl3
cliff Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
* Cl3
boost) Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
* Cl3 -> Cl3
bar Cl3
boost
jordan :: (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
jordan :: (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
jordan Cl3 -> Cl3
toSpecial Cl3 -> Cl3
fun Cl3 -> Cl3
fun' Cl3
cliffor =
let eigs :: Cl3
eigs = Cl3 -> Cl3
toSpecial Cl3
cliffor
in Cl3 -> Cl3
fun Cl3
eigs Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
+ Cl3 -> Cl3
fun' Cl3
eigs Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
* Cl3 -> Cl3
toBPV Cl3
cliffor
spectraldcmpSpecial :: (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmpSpecial :: (Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
spectraldcmpSpecial Cl3 -> Cl3
toSpecial Cl3 -> Cl3
function Cl3
cliffor =
let (Cl3
p,Cl3
p_bar,Cl3
eig1,Cl3
eig2) = (Cl3 -> Cl3) -> Cl3 -> (Cl3, Cl3, Cl3, Cl3)
projEigs Cl3 -> Cl3
toSpecial Cl3
cliffor
in Cl3 -> Cl3
function Cl3
eig1 Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
* Cl3
p Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
+ Cl3 -> Cl3
function Cl3
eig2 Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
* Cl3
p_bar
eigvals :: Cl3 -> (Cl3,Cl3)
eigvals :: Cl3 -> (Cl3, Cl3)
eigvals (Cl3 -> Cl3
reduce -> Cl3
cliffor) = Cl3 -> (Cl3, Cl3)
eigv Cl3
cliffor
where
eigv :: Cl3 -> (Cl3, Cl3)
eigv r :: Cl3
r@R{} = Cl3 -> (Cl3, Cl3)
dup Cl3
r
eigv i :: Cl3
i@I{} = Cl3 -> (Cl3, Cl3)
dup Cl3
i
eigv c :: Cl3
c@C{} = Cl3 -> (Cl3, Cl3)
dup Cl3
c
eigv v :: Cl3
v@V3{} = (Cl3 -> Cl3) -> Cl3 -> (Cl3, Cl3)
eigvalsSpecial Cl3 -> Cl3
toR Cl3
v
eigv pv :: Cl3
pv@PV{} = (Cl3 -> Cl3) -> Cl3 -> (Cl3, Cl3)
eigvalsSpecial Cl3 -> Cl3
toR Cl3
pv
eigv bv :: Cl3
bv@BV{} = (Cl3 -> Cl3) -> Cl3 -> (Cl3, Cl3)
eigvalsSpecial Cl3 -> Cl3
toI Cl3
bv
eigv tpv :: Cl3
tpv@TPV{} = (Cl3 -> Cl3) -> Cl3 -> (Cl3, Cl3)
eigvalsSpecial Cl3 -> Cl3
toI Cl3
tpv
eigv h :: Cl3
h@H{} = (Cl3 -> Cl3) -> Cl3 -> (Cl3, Cl3)
eigvalsSpecial Cl3 -> Cl3
toC Cl3
h
eigv od :: Cl3
od@ODD{} = (Cl3 -> Cl3) -> Cl3 -> (Cl3, Cl3)
eigvalsSpecial Cl3 -> Cl3
toC Cl3
od
eigv Cl3
cliff
| Cl3 -> Bool
hasNilpotent Cl3
cliff = Cl3 -> (Cl3, Cl3)
dup(Cl3 -> (Cl3, Cl3)) -> (Cl3 -> Cl3) -> Cl3 -> (Cl3, Cl3)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3 -> Cl3
reduce(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3 -> Cl3
toC (Cl3 -> (Cl3, Cl3)) -> Cl3 -> (Cl3, Cl3)
forall a b. (a -> b) -> a -> b
$ Cl3
cliff
| Cl3 -> Bool
isColinear Cl3
cliff = (Cl3 -> Cl3) -> Cl3 -> (Cl3, Cl3)
eigvalsSpecial Cl3 -> Cl3
toC Cl3
cliff
| Bool
otherwise =
let (BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) = Cl3 -> Cl3
toBPV Cl3
cliff
boost :: Cl3
boost = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
boost2colinear Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12
in (Cl3 -> Cl3) -> Cl3 -> (Cl3, Cl3)
eigvalsSpecial Cl3 -> Cl3
toC (Cl3 -> Cl3
bar Cl3
boost Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
* Cl3
cliff Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
* Cl3
boost)
dup :: Cl3 -> (Cl3,Cl3)
dup :: Cl3 -> (Cl3, Cl3)
dup Cl3
cliff = (Cl3
cliff, Cl3
cliff)
eigvalsSpecial :: (Cl3 -> Cl3) -> Cl3 -> (Cl3,Cl3)
eigvalsSpecial :: (Cl3 -> Cl3) -> Cl3 -> (Cl3, Cl3)
eigvalsSpecial Cl3 -> Cl3
toSpecial Cl3
cliffor =
let (Cl3
_,Cl3
_,Cl3
eig1,Cl3
eig2) = (Cl3 -> Cl3) -> Cl3 -> (Cl3, Cl3, Cl3, Cl3)
projEigs Cl3 -> Cl3
toSpecial Cl3
cliffor
in (Cl3
eig1,Cl3
eig2)
project :: Cl3 -> Cl3
project :: Cl3 -> Cl3
project R{} = Double -> Double -> Double -> Double -> Cl3
PV Double
0.5 Double
0 Double
0 Double
0.5
project I{} = Double -> Double -> Double -> Double -> Cl3
PV Double
0.5 Double
0 Double
0 Double
0.5
project C{} = Double -> Double -> Double -> Double -> Cl3
PV Double
0.5 Double
0 Double
0 Double
0.5
project (V3 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Cl3
triDProj Double
a1 Double
a2 Double
a3
project (PV Double
_ Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Cl3
triDProj Double
a1 Double
a2 Double
a3
project (ODD Double
a1 Double
a2 Double
a3 Double
_) = Double -> Double -> Double -> Cl3
triDProj Double
a1 Double
a2 Double
a3
project (BV Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Cl3
triDProj Double
a23 Double
a31 Double
a12
project (H Double
_ Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Cl3
triDProj Double
a23 Double
a31 Double
a12
project (TPV Double
a23 Double
a31 Double
a12 Double
_) = Double -> Double -> Double -> Cl3
triDProj Double
a23 Double
a31 Double
a12
project (BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
biTriDProj Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12
project (APS Double
_ Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
_) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
biTriDProj Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12
biTriDProj :: Double -> Double -> Double -> Double -> Double -> Double -> Cl3
biTriDProj :: Double -> Double -> Double -> Double -> Double -> Double -> Cl3
biTriDProj Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 =
let v3Mag :: Double
v3Mag = Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
v3MagltTol :: Bool
v3MagltTol = Double
v3Mag Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
< Double
tol'
halfInvV3Mag :: Double
halfInvV3Mag = Double -> Double
forall a. Fractional a => a -> a
recip Double
v3Mag Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/ Double
2
bvMag :: Double
bvMag = Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
bvMagltTol :: Bool
bvMagltTol = Double
bvMag Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
< Double
tol'
halfInvBVMag :: Double
halfInvBVMag = Double -> Double
forall a. Fractional a => a -> a
recip Double
bvMag Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/ Double
2
dotPos :: Bool
dotPos = (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a23) Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a31) Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a12) Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
>= Double
0
b1 :: Double
b1 = Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23
b2 :: Double
b2 = Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31
b3 :: Double
b3 = Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12
bHalfInvMag :: Double
bHalfInvMag = (Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2)(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Fractional a => a -> a
recip(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
b1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
c1 :: Double
c1 = Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a23
c2 :: Double
c2 = Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a31
c3 :: Double
c3 = Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a12
cHalfInvMag :: Double
cHalfInvMag = (Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
2)(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Fractional a => a -> a
recip(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
c1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
c2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
c3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
in if | Bool
v3MagltTol Bool -> Bool -> Bool
&& Bool
bvMagltTol -> Double -> Double -> Double -> Double -> Cl3
PV Double
0.5 Double
0 Double
0 Double
0.5
| Bool
bvMagltTol -> Double -> Double -> Double -> Double -> Cl3
PV Double
0.5 (Double
halfInvV3Mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a1) (Double
halfInvV3Mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a2) (Double
halfInvV3Mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a3)
| Bool
v3MagltTol -> Double -> Double -> Double -> Double -> Cl3
PV Double
0.5 (Double
halfInvBVMag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a23) (Double
halfInvBVMag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a31) (Double
halfInvBVMag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a12)
| Bool
dotPos -> Double -> Double -> Double -> Double -> Cl3
PV Double
0.5 (Double
bHalfInvMag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
b1) (Double
bHalfInvMag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
b2) (Double
bHalfInvMag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
b3)
| Bool
otherwise -> Double -> Double -> Double -> Double -> Cl3
PV Double
0.5 (Double
cHalfInvMag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
c1) (Double
cHalfInvMag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
c2) (Double
cHalfInvMag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
c3)
triDProj :: Double -> Double -> Double -> Cl3
triDProj :: Double -> Double -> Double -> Cl3
triDProj Double
v1 Double
v2 Double
v3 =
let mag :: Double
mag = Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
v1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
v2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
v3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
halfInvMag :: Double
halfInvMag = Double -> Double
forall a. Fractional a => a -> a
recip Double
mag Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/ Double
2
in if Double
mag Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
then Double -> Double -> Double -> Double -> Cl3
PV Double
0.5 Double
0 Double
0 Double
0.5
else Double -> Double -> Double -> Double -> Cl3
PV Double
0.5 (Double
halfInvMag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
v1) (Double
halfInvMag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
v2) (Double
halfInvMag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
v3)
boost2colinear :: Double -> Double -> Double -> Double -> Double -> Double -> Cl3
boost2colinear :: Double -> Double -> Double -> Double -> Double -> Double -> Cl3
boost2colinear Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 =
let scale :: Double
scale = Double -> Double
forall a. Fractional a => a -> a
recip (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
b1 :: Double
b1 = Double
scale Double -> Double -> Double
forall a. Num a => a -> a -> a
* (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a31)
b2 :: Double
b2 = Double
scale Double -> Double -> Double
forall a. Num a => a -> a -> a
* (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a12)
b3 :: Double
b3 = Double
scale Double -> Double -> Double
forall a. Num a => a -> a -> a
* (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a23)
eig1 :: Double
eig1 = (Double
2Double -> Double -> Double
forall a. Num a => a -> a -> a
*)(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
b1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
eig2 :: Double
eig2 = Double -> Double
forall a. Num a => a -> a
negate Double
eig1
transEig1 :: Double
transEig1 = Double -> Double
forall a. Floating a => a -> a
exp(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
4)(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
atanh (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
eig1
transEig2 :: Double
transEig2 = Double -> Double
forall a. Floating a => a -> a
exp(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/Double
4)(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
atanh (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
eig2
sumTransEigs :: Double
sumTransEigs = (Double
transEig1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
transEig2) Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Fractional a => a -> a
recip Double
eig1
in Double -> Double -> Double -> Double -> Cl3
PV (Double
0.5 Double -> Double -> Double
forall a. Num a => a -> a -> a
* (Double
transEig1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
transEig2)) (Double
sumTransEigs Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
b1) (Double
sumTransEigs Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
b2) (Double
sumTransEigs Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
b3)
isColinear :: Cl3 -> Bool
isColinear :: Cl3 -> Bool
isColinear R{} = Bool
True
isColinear V3{} = Bool
True
isColinear BV{} = Bool
True
isColinear I{} = Bool
True
isColinear PV{} = Bool
True
isColinear H{} = Bool
True
isColinear C{} = Bool
True
isColinear ODD{} = Bool
True
isColinear TPV{} = Bool
True
isColinear (BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Double -> Double -> Bool
colinearHelper Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12
isColinear (APS Double
_ Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
_) = Double -> Double -> Double -> Double -> Double -> Double -> Bool
colinearHelper Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12
colinearHelper :: Double -> Double -> Double -> Double -> Double -> Double -> Bool
colinearHelper :: Double -> Double -> Double -> Double -> Double -> Double -> Bool
colinearHelper Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 =
let magV3 :: Double
magV3 = Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
invMagV3 :: Double
invMagV3 = Double -> Double
forall a. Fractional a => a -> a
recip Double
magV3
magBV :: Double
magBV = Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
invMagBV :: Double
invMagBV = Double -> Double
forall a. Fractional a => a -> a
recip Double
magBV
crss :: Double
crss = Double -> Double
forall a. Floating a => a -> a
sqrt (((Double
invMagV3 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a2)Double -> Double -> Double
forall a. Num a => a -> a -> a
*(Double
invMagBV Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a12) Double -> Double -> Double
forall a. Num a => a -> a -> a
- (Double
invMagV3 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a3)Double -> Double -> Double
forall a. Num a => a -> a -> a
*(Double
invMagBV Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a31))Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+
((Double
invMagV3 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a3)Double -> Double -> Double
forall a. Num a => a -> a -> a
*(Double
invMagBV Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a23) Double -> Double -> Double
forall a. Num a => a -> a -> a
- (Double
invMagV3 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a1)Double -> Double -> Double
forall a. Num a => a -> a -> a
*(Double
invMagBV Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a12))Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+
((Double
invMagV3 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a1)Double -> Double -> Double
forall a. Num a => a -> a -> a
*(Double
invMagBV Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a31) Double -> Double -> Double
forall a. Num a => a -> a -> a
- (Double
invMagV3 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a2)Double -> Double -> Double
forall a. Num a => a -> a -> a
*(Double
invMagBV Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a23))Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2)
in Double
magV3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
||
Double
magBV Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0 Bool -> Bool -> Bool
||
Double
crss Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
<= Double
tol'
hasNilpotent :: Cl3 -> Bool
hasNilpotent :: Cl3 -> Bool
hasNilpotent R{} = Bool
False
hasNilpotent V3{} = Bool
False
hasNilpotent BV{} = Bool
False
hasNilpotent I{} = Bool
False
hasNilpotent PV{} = Bool
False
hasNilpotent H{} = Bool
False
hasNilpotent C{} = Bool
False
hasNilpotent ODD{} = Bool
False
hasNilpotent TPV{} = Bool
False
hasNilpotent (BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Double -> Double -> Bool
nilpotentHelper Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12
hasNilpotent (APS Double
_ Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
_) = Double -> Double -> Double -> Double -> Double -> Double -> Bool
nilpotentHelper Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12
nilpotentHelper :: Double -> Double -> Double -> Double -> Double -> Double -> Bool
nilpotentHelper :: Double -> Double -> Double -> Double -> Double -> Double -> Bool
nilpotentHelper Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 =
let magV3 :: Double
magV3 = Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
invMagV3 :: Double
invMagV3 = Double -> Double
forall a. Fractional a => a -> a
recip Double
magV3
magBV :: Double
magBV = Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a23Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
invMagBV :: Double
invMagBV = Double -> Double
forall a. Fractional a => a -> a
recip Double
magV3
magDiff :: Double
magDiff = Double -> Double
forall a. Num a => a -> a
abs (Double
magV3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
magBV)
b1 :: Double
b1 = Double
invMagV3 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a1
b2 :: Double
b2 = Double
invMagV3 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a2
b3 :: Double
b3 = Double
invMagV3 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a3
b23 :: Double
b23 = Double
invMagBV Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a23
b31 :: Double
b31 = Double
invMagBV Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a31
b12 :: Double
b12 = Double
invMagBV Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a12
c0 :: Double
c0 = Double
b1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
b23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
b31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
b12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12
c1 :: Double
c1 = Double
b12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
b2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
b31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3
c2 :: Double
c2 = Double
b1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
b12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
b3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3
c3 :: Double
c3 = Double
b31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
b1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
b23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2
c23 :: Double
c23 = Double
b2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
b3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
b31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31
c31 :: Double
c31 = Double
b3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
b1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
b12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23
c12 :: Double
c12 = Double
b1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
b2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
b23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23
c123 :: Double
c123 = Double
b1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b23 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b23Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b31 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b31Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b12 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
b12Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3
x :: Double
x = Double -> Double
forall a. Floating a => a -> a
sqrt ((Double
c0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
c1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
c123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
c23)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
c0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
c2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
c123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
c31)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
c0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
c3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
c123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
c12)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+
(Double
c2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
c12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
c3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
c31)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
c3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
c23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
c1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
c12)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
c1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
c31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
c2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
c23)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2)
sqMag :: Double
sqMag = Double -> Double
forall a. Floating a => a -> a
sqrt (Double
c0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
c1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
c2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
c3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
c23Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
c31Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
c12Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
c123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
x Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
x)
in Double
magV3 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
/= Double
0 Bool -> Bool -> Bool
&&
Double
magBV Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
/= Double
0 Bool -> Bool -> Bool
&&
Double
magDiff Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
<= Double
tol' Bool -> Bool -> Bool
&&
Double
sqMag Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
<= Double
tol'
projEigs :: (Cl3 -> Cl3) -> Cl3 -> (Cl3,Cl3,Cl3,Cl3)
projEigs :: (Cl3 -> Cl3) -> Cl3 -> (Cl3, Cl3, Cl3, Cl3)
projEigs Cl3 -> Cl3
toSpecial Cl3
cliffor =
let p :: Cl3
p = Cl3 -> Cl3
project Cl3
cliffor
p_bar :: Cl3
p_bar = Cl3 -> Cl3
bar Cl3
p
eig1 :: Cl3
eig1 = Cl3
2 Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
* Cl3 -> Cl3
toSpecial (Cl3
p Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
* Cl3
cliffor Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
* Cl3
p)
eig2 :: Cl3
eig2 = Cl3
2 Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
* Cl3 -> Cl3
toSpecial (Cl3
p_bar Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
* Cl3
cliffor Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
* Cl3
p_bar)
in (Cl3
p,Cl3
p_bar,Cl3
eig1,Cl3
eig2)
reduce :: Cl3 -> Cl3
reduce :: Cl3 -> Cl3
reduce Cl3
cliff
| Cl3 -> Cl3
forall a. Num a => a -> a
abs Cl3
cliff Cl3 -> Cl3 -> Bool
forall a. Ord a => a -> a -> Bool
<= Cl3
tol = Double -> Cl3
R Double
0
| Bool
otherwise = Cl3 -> Cl3
go_reduce Cl3
cliff
where
go_reduce :: Cl3 -> Cl3
go_reduce r :: Cl3
r@R{} = Cl3
r
go_reduce v :: Cl3
v@V3{} = Cl3
v
go_reduce bv :: Cl3
bv@BV{} = Cl3
bv
go_reduce i :: Cl3
i@I{} = Cl3
i
go_reduce pv :: Cl3
pv@PV{}
| Cl3 -> Cl3
forall a. Num a => a -> a
abs (Cl3 -> Cl3
toV3 Cl3
pv) Cl3 -> Cl3 -> Bool
forall a. Ord a => a -> a -> Bool
<= Cl3
tol = Cl3 -> Cl3
toR Cl3
pv
| Cl3 -> Cl3
forall a. Num a => a -> a
abs (Cl3 -> Cl3
toR Cl3
pv) Cl3 -> Cl3 -> Bool
forall a. Ord a => a -> a -> Bool
<= Cl3
tol = Cl3 -> Cl3
toV3 Cl3
pv
| Bool
otherwise = Cl3
pv
go_reduce h :: Cl3
h@H{}
| Cl3 -> Cl3
forall a. Num a => a -> a
abs (Cl3 -> Cl3
toBV Cl3
h) Cl3 -> Cl3 -> Bool
forall a. Ord a => a -> a -> Bool
<= Cl3
tol = Cl3 -> Cl3
toR Cl3
h
| Cl3 -> Cl3
forall a. Num a => a -> a
abs (Cl3 -> Cl3
toR Cl3
h) Cl3 -> Cl3 -> Bool
forall a. Ord a => a -> a -> Bool
<= Cl3
tol = Cl3 -> Cl3
toBV Cl3
h
| Bool
otherwise = Cl3
h
go_reduce c :: Cl3
c@C{}
| Cl3 -> Cl3
forall a. Num a => a -> a
abs (Cl3 -> Cl3
toI Cl3
c) Cl3 -> Cl3 -> Bool
forall a. Ord a => a -> a -> Bool
<= Cl3
tol = Cl3 -> Cl3
toR Cl3
c
| Cl3 -> Cl3
forall a. Num a => a -> a
abs (Cl3 -> Cl3
toR Cl3
c) Cl3 -> Cl3 -> Bool
forall a. Ord a => a -> a -> Bool
<= Cl3
tol = Cl3 -> Cl3
toI Cl3
c
| Bool
otherwise = Cl3
c
go_reduce bpv :: Cl3
bpv@BPV{}
| Cl3 -> Cl3
forall a. Num a => a -> a
abs (Cl3 -> Cl3
toBV Cl3
bpv) Cl3 -> Cl3 -> Bool
forall a. Ord a => a -> a -> Bool
<= Cl3
tol = Cl3 -> Cl3
toV3 Cl3
bpv
| Cl3 -> Cl3
forall a. Num a => a -> a
abs (Cl3 -> Cl3
toV3 Cl3
bpv) Cl3 -> Cl3 -> Bool
forall a. Ord a => a -> a -> Bool
<= Cl3
tol = Cl3 -> Cl3
toBV Cl3
bpv
| Bool
otherwise = Cl3
bpv
go_reduce od :: Cl3
od@ODD{}
| Cl3 -> Cl3
forall a. Num a => a -> a
abs (Cl3 -> Cl3
toI Cl3
od) Cl3 -> Cl3 -> Bool
forall a. Ord a => a -> a -> Bool
<= Cl3
tol = Cl3 -> Cl3
toV3 Cl3
od
| Cl3 -> Cl3
forall a. Num a => a -> a
abs (Cl3 -> Cl3
toV3 Cl3
od) Cl3 -> Cl3 -> Bool
forall a. Ord a => a -> a -> Bool
<= Cl3
tol = Cl3 -> Cl3
toI Cl3
od
| Bool
otherwise = Cl3
od
go_reduce tpv :: Cl3
tpv@TPV{}
| Cl3 -> Cl3
forall a. Num a => a -> a
abs (Cl3 -> Cl3
toBV Cl3
tpv) Cl3 -> Cl3 -> Bool
forall a. Ord a => a -> a -> Bool
<= Cl3
tol = Cl3 -> Cl3
toI Cl3
tpv
| Cl3 -> Cl3
forall a. Num a => a -> a
abs (Cl3 -> Cl3
toI Cl3
tpv) Cl3 -> Cl3 -> Bool
forall a. Ord a => a -> a -> Bool
<= Cl3
tol = Cl3 -> Cl3
toBV Cl3
tpv
| Bool
otherwise = Cl3
tpv
go_reduce aps :: Cl3
aps@APS{}
| Cl3 -> Cl3
forall a. Num a => a -> a
abs (Cl3 -> Cl3
toBPV Cl3
aps) Cl3 -> Cl3 -> Bool
forall a. Ord a => a -> a -> Bool
<= Cl3
tol = Cl3 -> Cl3
go_reduce (Cl3 -> Cl3
toC Cl3
aps)
| Cl3 -> Cl3
forall a. Num a => a -> a
abs (Cl3 -> Cl3
toODD Cl3
aps) Cl3 -> Cl3 -> Bool
forall a. Ord a => a -> a -> Bool
<= Cl3
tol = Cl3 -> Cl3
go_reduce (Cl3 -> Cl3
toH Cl3
aps)
| Cl3 -> Cl3
forall a. Num a => a -> a
abs (Cl3 -> Cl3
toTPV Cl3
aps) Cl3 -> Cl3 -> Bool
forall a. Ord a => a -> a -> Bool
<= Cl3
tol = Cl3 -> Cl3
go_reduce (Cl3 -> Cl3
toPV Cl3
aps)
| Cl3 -> Cl3
forall a. Num a => a -> a
abs (Cl3 -> Cl3
toC Cl3
aps) Cl3 -> Cl3 -> Bool
forall a. Ord a => a -> a -> Bool
<= Cl3
tol = Cl3 -> Cl3
go_reduce (Cl3 -> Cl3
toBPV Cl3
aps)
| Cl3 -> Cl3
forall a. Num a => a -> a
abs (Cl3 -> Cl3
toH Cl3
aps) Cl3 -> Cl3 -> Bool
forall a. Ord a => a -> a -> Bool
<= Cl3
tol = Cl3 -> Cl3
go_reduce (Cl3 -> Cl3
toODD Cl3
aps)
| Cl3 -> Cl3
forall a. Num a => a -> a
abs (Cl3 -> Cl3
toPV Cl3
aps) Cl3 -> Cl3 -> Bool
forall a. Ord a => a -> a -> Bool
<= Cl3
tol = Cl3 -> Cl3
go_reduce (Cl3 -> Cl3
toTPV Cl3
aps)
| Bool
otherwise = Cl3
aps
mIx :: Cl3 -> Cl3
mIx :: Cl3 -> Cl3
mIx (R Double
a0) = Double -> Cl3
I (Double -> Double
forall a. Num a => a -> a
negate Double
a0)
mIx (V3 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Cl3
BV (Double -> Double
forall a. Num a => a -> a
negate Double
a1) (Double -> Double
forall a. Num a => a -> a
negate Double
a2) (Double -> Double
forall a. Num a => a -> a
negate Double
a3)
mIx (BV Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Cl3
V3 Double
a23 Double
a31 Double
a12
mIx (I Double
a123) = Double -> Cl3
R Double
a123
mIx (PV Double
a0 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Double -> Cl3
TPV (Double -> Double
forall a. Num a => a -> a
negate Double
a1) (Double -> Double
forall a. Num a => a -> a
negate Double
a2) (Double -> Double
forall a. Num a => a -> a
negate Double
a3) (Double -> Double
forall a. Num a => a -> a
negate Double
a0)
mIx (H Double
a0 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Cl3
ODD Double
a23 Double
a31 Double
a12 (Double -> Double
forall a. Num a => a -> a
negate Double
a0)
mIx (C Double
a0 Double
a123) = Double -> Double -> Cl3
C Double
a123 (Double -> Double
forall a. Num a => a -> a
negate Double
a0)
mIx (BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV Double
a23 Double
a31 Double
a12 (Double -> Double
forall a. Num a => a -> a
negate Double
a1) (Double -> Double
forall a. Num a => a -> a
negate Double
a2) (Double -> Double
forall a. Num a => a -> a
negate Double
a3)
mIx (ODD Double
a1 Double
a2 Double
a3 Double
a123) = Double -> Double -> Double -> Double -> Cl3
H Double
a123 (Double -> Double
forall a. Num a => a -> a
negate Double
a1) (Double -> Double
forall a. Num a => a -> a
negate Double
a2) (Double -> Double
forall a. Num a => a -> a
negate Double
a3)
mIx (TPV Double
a23 Double
a31 Double
a12 Double
a123) = Double -> Double -> Double -> Double -> Cl3
PV Double
a123 Double
a23 Double
a31 Double
a12
mIx (APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a123 Double
a23 Double
a31 Double
a12 (Double -> Double
forall a. Num a => a -> a
negate Double
a1) (Double -> Double
forall a. Num a => a -> a
negate Double
a2) (Double -> Double
forall a. Num a => a -> a
negate Double
a3) (Double -> Double
forall a. Num a => a -> a
negate Double
a0)
timesI :: Cl3 -> Cl3
timesI :: Cl3 -> Cl3
timesI (R Double
a0) = Double -> Cl3
I Double
a0
timesI (V3 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Cl3
BV Double
a1 Double
a2 Double
a3
timesI (BV Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Cl3
V3 (Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12)
timesI (I Double
a123) = Double -> Cl3
R (Double -> Double
forall a. Num a => a -> a
negate Double
a123)
timesI (PV Double
a0 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Double -> Cl3
TPV Double
a1 Double
a2 Double
a3 Double
a0
timesI (H Double
a0 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Cl3
ODD (Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12) Double
a0
timesI (C Double
a0 Double
a123) = Double -> Double -> Cl3
C (Double -> Double
forall a. Num a => a -> a
negate Double
a123) Double
a0
timesI (BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV (Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12) Double
a1 Double
a2 Double
a3
timesI (ODD Double
a1 Double
a2 Double
a3 Double
a123) = Double -> Double -> Double -> Double -> Cl3
H (Double -> Double
forall a. Num a => a -> a
negate Double
a123) Double
a1 Double
a2 Double
a3
timesI (TPV Double
a23 Double
a31 Double
a12 Double
a123) = Double -> Double -> Double -> Double -> Cl3
PV (Double -> Double
forall a. Num a => a -> a
negate Double
a123) (Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12)
timesI (APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double -> Double
forall a. Num a => a -> a
negate Double
a123) (Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12) Double
a1 Double
a2 Double
a3 Double
a0
abssignum :: Cl3 -> (Cl3,Cl3)
abssignum :: Cl3 -> (Cl3, Cl3)
abssignum Cl3
cl3 =
let (R Double
m0) = Cl3 -> Cl3
absolute Cl3
cl3
in if Double
m0 Double -> Double -> Bool
forall a. Eq a => a -> a -> Bool
== Double
0
then (Double -> Cl3
R Double
0, Double -> Cl3
R Double
0)
else (Double -> Cl3
R Double
m0, Cl3
cl3Cl3 -> Cl3 -> Cl3
forall a. Fractional a => a -> a -> a
/(Double -> Cl3
R Double
m0))
absolute :: Cl3 -> Cl3
absolute :: Cl3 -> Cl3
absolute (R Double
a0) = Double -> Cl3
R (Double -> Double
forall a. Num a => a -> a
abs Double
a0)
absolute (V3 Double
a1 Double
a2 Double
a3) = let m :: Double
m = Double -> Double -> Double -> Double
rss3 Double
a1 Double
a2 Double
a3 in Double -> Cl3
R Double
m
absolute (BV Double
a23 Double
a31 Double
a12) = let m :: Double
m = Double -> Double -> Double -> Double
rss3 Double
a23 Double
a31 Double
a12 in Double -> Cl3
R Double
m
absolute (I Double
a123) = Double -> Cl3
R (Double -> Double
forall a. Num a => a -> a
abs Double
a123)
absolute (PV Double
a0 Double
a1 Double
a2 Double
a3) = let m :: Double
m = Double -> Double -> Double -> Double -> Double
reimMag Double
a0 Double
a1 Double
a2 Double
a3 in Double -> Cl3
R Double
m
absolute (H Double
a0 Double
a23 Double
a31 Double
a12) = let m :: Double
m = Double -> Double -> Double -> Double -> Double
rss4 Double
a0 Double
a23 Double
a31 Double
a12 in Double -> Cl3
R Double
m
absolute (C Double
a0 Double
a123) = let m :: Double
m = Double -> Double -> Double
rss2 Double
a0 Double
a123 in Double -> Cl3
R Double
m
absolute (BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) = let mag0 :: Double
mag0 = Double -> Double -> Double -> Double
rss3 (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a23) (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a23) (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a31)
m :: Double
m = Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
mag0 in Double -> Cl3
R Double
m
absolute (ODD Double
a1 Double
a2 Double
a3 Double
a123) = let m :: Double
m = Double -> Double -> Double -> Double -> Double
rss4 Double
a1 Double
a2 Double
a3 Double
a123 in Double -> Cl3
R Double
m
absolute (TPV Double
a23 Double
a31 Double
a12 Double
a123) = let m :: Double
m = Double -> Double -> Double -> Double -> Double
reimMag Double
a123 Double
a23 Double
a31 Double
a12 in Double -> Cl3
R Double
m
absolute (APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) = let mag0 :: Double
mag0 = Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a23)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a31)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a12)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a31)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a12)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a23)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
m :: Double
m = Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
mag0 in Double -> Cl3
R Double
m
rss2 :: Double -> Double -> Double
Double
a0 Double
a123 = Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
rss3 :: Double -> Double -> Double -> Double
Double
x Double
y Double
z = Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
xDouble -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
yDouble -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
zDouble -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
rss4 :: Double -> Double -> Double -> Double -> Double
Double
t Double
x Double
y Double
z = Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
tDouble -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
xDouble -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
yDouble -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
zDouble -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
#ifdef O_LIQUID
tol :: Cl3
tol = R 0
tol' :: Double
tol' = 0
#else
tol :: Cl3
{-# INLINE tol #-}
tol :: Cl3
tol = Double -> Cl3
R Double
1.4210854715202004e-14
tol' :: Double
{-# INLINE tol' #-}
tol' :: Double
tol' = Double
1.4210854715202004e-14
#endif
bar :: Cl3 -> Cl3
bar :: Cl3 -> Cl3
bar (R Double
a0) = Double -> Cl3
R Double
a0
bar (V3 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Cl3
V3 (Double -> Double
forall a. Num a => a -> a
negate Double
a1) (Double -> Double
forall a. Num a => a -> a
negate Double
a2) (Double -> Double
forall a. Num a => a -> a
negate Double
a3)
bar (BV Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Cl3
BV (Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12)
bar (I Double
a123) = Double -> Cl3
I Double
a123
bar (PV Double
a0 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Double -> Cl3
PV Double
a0 (Double -> Double
forall a. Num a => a -> a
negate Double
a1) (Double -> Double
forall a. Num a => a -> a
negate Double
a2) (Double -> Double
forall a. Num a => a -> a
negate Double
a3)
bar (H Double
a0 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Cl3
H Double
a0 (Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12)
bar (C Double
a0 Double
a123) = Double -> Double -> Cl3
C Double
a0 Double
a123
bar (BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV (Double -> Double
forall a. Num a => a -> a
negate Double
a1) (Double -> Double
forall a. Num a => a -> a
negate Double
a2) (Double -> Double
forall a. Num a => a -> a
negate Double
a3) (Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12)
bar (ODD Double
a1 Double
a2 Double
a3 Double
a123) = Double -> Double -> Double -> Double -> Cl3
ODD (Double -> Double
forall a. Num a => a -> a
negate Double
a1) (Double -> Double
forall a. Num a => a -> a
negate Double
a2) (Double -> Double
forall a. Num a => a -> a
negate Double
a3) Double
a123
bar (TPV Double
a23 Double
a31 Double
a12 Double
a123) = Double -> Double -> Double -> Double -> Cl3
TPV (Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12) Double
a123
bar (APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 (Double -> Double
forall a. Num a => a -> a
negate Double
a1) (Double -> Double
forall a. Num a => a -> a
negate Double
a2) (Double -> Double
forall a. Num a => a -> a
negate Double
a3) (Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12) Double
a123
dag :: Cl3 -> Cl3
dag :: Cl3 -> Cl3
dag (R Double
a0) = Double -> Cl3
R Double
a0
dag (V3 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Cl3
V3 Double
a1 Double
a2 Double
a3
dag (BV Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Cl3
BV (Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12)
dag (I Double
a123) = Double -> Cl3
I (Double -> Double
forall a. Num a => a -> a
negate Double
a123)
dag (PV Double
a0 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Double -> Cl3
PV Double
a0 Double
a1 Double
a2 Double
a3
dag (H Double
a0 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Cl3
H Double
a0 (Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12)
dag (C Double
a0 Double
a123) = Double -> Double -> Cl3
C Double
a0 (Double -> Double
forall a. Num a => a -> a
negate Double
a123)
dag (BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV Double
a1 Double
a2 Double
a3 (Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12)
dag (ODD Double
a1 Double
a2 Double
a3 Double
a123) = Double -> Double -> Double -> Double -> Cl3
ODD Double
a1 Double
a2 Double
a3 (Double -> Double
forall a. Num a => a -> a
negate Double
a123)
dag (TPV Double
a23 Double
a31 Double
a12 Double
a123) = Double -> Double -> Double -> Double -> Cl3
TPV (Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12) (Double -> Double
forall a. Num a => a -> a
negate Double
a123)
dag (APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
a1 Double
a2 Double
a3 (Double -> Double
forall a. Num a => a -> a
negate Double
a23) (Double -> Double
forall a. Num a => a -> a
negate Double
a31) (Double -> Double
forall a. Num a => a -> a
negate Double
a12) (Double -> Double
forall a. Num a => a -> a
negate Double
a123)
toR :: Cl3 -> Cl3
toR :: Cl3 -> Cl3
toR (R Double
a0) = Double -> Cl3
R Double
a0
toR V3{} = Double -> Cl3
R Double
0
toR BV{} = Double -> Cl3
R Double
0
toR I{} = Double -> Cl3
R Double
0
toR (PV Double
a0 Double
_ Double
_ Double
_) = Double -> Cl3
R Double
a0
toR (H Double
a0 Double
_ Double
_ Double
_) = Double -> Cl3
R Double
a0
toR (C Double
a0 Double
_) = Double -> Cl3
R Double
a0
toR BPV{} = Double -> Cl3
R Double
0
toR ODD{} = Double -> Cl3
R Double
0
toR TPV{} = Double -> Cl3
R Double
0
toR (APS Double
a0 Double
_ Double
_ Double
_ Double
_ Double
_ Double
_ Double
_) = Double -> Cl3
R Double
a0
toV3 :: Cl3 -> Cl3
toV3 :: Cl3 -> Cl3
toV3 R{} = Double -> Double -> Double -> Cl3
V3 Double
0 Double
0 Double
0
toV3 (V3 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Cl3
V3 Double
a1 Double
a2 Double
a3
toV3 BV{} = Double -> Double -> Double -> Cl3
V3 Double
0 Double
0 Double
0
toV3 I{} = Double -> Double -> Double -> Cl3
V3 Double
0 Double
0 Double
0
toV3 (PV Double
_ Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Cl3
V3 Double
a1 Double
a2 Double
a3
toV3 H{} = Double -> Double -> Double -> Cl3
V3 Double
0 Double
0 Double
0
toV3 C{} = Double -> Double -> Double -> Cl3
V3 Double
0 Double
0 Double
0
toV3 (BPV Double
a1 Double
a2 Double
a3 Double
_ Double
_ Double
_) = Double -> Double -> Double -> Cl3
V3 Double
a1 Double
a2 Double
a3
toV3 (ODD Double
a1 Double
a2 Double
a3 Double
_) = Double -> Double -> Double -> Cl3
V3 Double
a1 Double
a2 Double
a3
toV3 TPV{} = Double -> Double -> Double -> Cl3
V3 Double
0 Double
0 Double
0
toV3 (APS Double
_ Double
a1 Double
a2 Double
a3 Double
_ Double
_ Double
_ Double
_) = Double -> Double -> Double -> Cl3
V3 Double
a1 Double
a2 Double
a3
toBV :: Cl3 -> Cl3
toBV :: Cl3 -> Cl3
toBV R{} = Double -> Double -> Double -> Cl3
BV Double
0 Double
0 Double
0
toBV V3{} = Double -> Double -> Double -> Cl3
BV Double
0 Double
0 Double
0
toBV (BV Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Cl3
BV Double
a23 Double
a31 Double
a12
toBV I{} = Double -> Double -> Double -> Cl3
BV Double
0 Double
0 Double
0
toBV PV{} = Double -> Double -> Double -> Cl3
BV Double
0 Double
0 Double
0
toBV (H Double
_ Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Cl3
BV Double
a23 Double
a31 Double
a12
toBV C{} = Double -> Double -> Double -> Cl3
BV Double
0 Double
0 Double
0
toBV (BPV Double
_ Double
_ Double
_ Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Cl3
BV Double
a23 Double
a31 Double
a12
toBV ODD{} = Double -> Double -> Double -> Cl3
BV Double
0 Double
0 Double
0
toBV (TPV Double
a23 Double
a31 Double
a12 Double
_) = Double -> Double -> Double -> Cl3
BV Double
a23 Double
a31 Double
a12
toBV (APS Double
_ Double
_ Double
_ Double
_ Double
a23 Double
a31 Double
a12 Double
_) = Double -> Double -> Double -> Cl3
BV Double
a23 Double
a31 Double
a12
toI :: Cl3 -> Cl3
toI :: Cl3 -> Cl3
toI R{} = Double -> Cl3
I Double
0
toI V3{} = Double -> Cl3
I Double
0
toI BV{} = Double -> Cl3
I Double
0
toI (I Double
a123) = Double -> Cl3
I Double
a123
toI PV{} = Double -> Cl3
I Double
0
toI H{} = Double -> Cl3
I Double
0
toI (C Double
_ Double
a123) = Double -> Cl3
I Double
a123
toI BPV{} = Double -> Cl3
I Double
0
toI (ODD Double
_ Double
_ Double
_ Double
a123) = Double -> Cl3
I Double
a123
toI (TPV Double
_ Double
_ Double
_ Double
a123) = Double -> Cl3
I Double
a123
toI (APS Double
_ Double
_ Double
_ Double
_ Double
_ Double
_ Double
_ Double
a123) = Double -> Cl3
I Double
a123
toPV :: Cl3 -> Cl3
toPV :: Cl3 -> Cl3
toPV (R Double
a0) = Double -> Double -> Double -> Double -> Cl3
PV Double
a0 Double
0 Double
0 Double
0
toPV (V3 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Double -> Cl3
PV Double
0 Double
a1 Double
a2 Double
a3
toPV BV{} = Double -> Double -> Double -> Double -> Cl3
PV Double
0 Double
0 Double
0 Double
0
toPV I{} = Double -> Double -> Double -> Double -> Cl3
PV Double
0 Double
0 Double
0 Double
0
toPV (PV Double
a0 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Double -> Cl3
PV Double
a0 Double
a1 Double
a2 Double
a3
toPV (H Double
a0 Double
_ Double
_ Double
_) = Double -> Double -> Double -> Double -> Cl3
PV Double
a0 Double
0 Double
0 Double
0
toPV (C Double
a0 Double
_) = Double -> Double -> Double -> Double -> Cl3
PV Double
a0 Double
0 Double
0 Double
0
toPV (BPV Double
a1 Double
a2 Double
a3 Double
_ Double
_ Double
_) = Double -> Double -> Double -> Double -> Cl3
PV Double
0 Double
a1 Double
a2 Double
a3
toPV (ODD Double
a1 Double
a2 Double
a3 Double
_) = Double -> Double -> Double -> Double -> Cl3
PV Double
a1 Double
a2 Double
a3 Double
0
toPV TPV{} = Double -> Double -> Double -> Double -> Cl3
PV Double
0 Double
0 Double
0 Double
0
toPV (APS Double
a0 Double
a1 Double
a2 Double
a3 Double
_ Double
_ Double
_ Double
_) = Double -> Double -> Double -> Double -> Cl3
PV Double
a0 Double
a1 Double
a2 Double
a3
toH :: Cl3 -> Cl3
toH :: Cl3 -> Cl3
toH (R Double
a0) = Double -> Double -> Double -> Double -> Cl3
H Double
a0 Double
0 Double
0 Double
0
toH V3{} = Double -> Double -> Double -> Double -> Cl3
H Double
0 Double
0 Double
0 Double
0
toH (BV Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Cl3
H Double
0 Double
a23 Double
a31 Double
a12
toH (I Double
_) = Double -> Double -> Double -> Double -> Cl3
H Double
0 Double
0 Double
0 Double
0
toH (PV Double
a0 Double
_ Double
_ Double
_) = Double -> Double -> Double -> Double -> Cl3
H Double
a0 Double
0 Double
0 Double
0
toH (H Double
a0 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Cl3
H Double
a0 Double
a23 Double
a31 Double
a12
toH (C Double
a0 Double
_) = Double -> Double -> Double -> Double -> Cl3
H Double
a0 Double
0 Double
0 Double
0
toH (BPV Double
_ Double
_ Double
_ Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Cl3
H Double
0 Double
a23 Double
a31 Double
a12
toH ODD{} = Double -> Double -> Double -> Double -> Cl3
H Double
0 Double
0 Double
0 Double
0
toH (TPV Double
a23 Double
a31 Double
a12 Double
_) = Double -> Double -> Double -> Double -> Cl3
H Double
0 Double
a23 Double
a31 Double
a12
toH (APS Double
a0 Double
_ Double
_ Double
_ Double
a23 Double
a31 Double
a12 Double
_) = Double -> Double -> Double -> Double -> Cl3
H Double
a0 Double
a23 Double
a31 Double
a12
toC :: Cl3 -> Cl3
toC :: Cl3 -> Cl3
toC (R Double
a0) = Double -> Double -> Cl3
C Double
a0 Double
0
toC V3{} = Double -> Double -> Cl3
C Double
0 Double
0
toC BV{} = Double -> Double -> Cl3
C Double
0 Double
0
toC (I Double
a123) = Double -> Double -> Cl3
C Double
0 Double
a123
toC (PV Double
a0 Double
_ Double
_ Double
_) = Double -> Double -> Cl3
C Double
a0 Double
0
toC (H Double
a0 Double
_ Double
_ Double
_) = Double -> Double -> Cl3
C Double
a0 Double
0
toC (C Double
a0 Double
a123) = Double -> Double -> Cl3
C Double
a0 Double
a123
toC BPV{} = Double -> Double -> Cl3
C Double
0 Double
0
toC (ODD Double
_ Double
_ Double
_ Double
a123) = Double -> Double -> Cl3
C Double
0 Double
a123
toC (TPV Double
_ Double
_ Double
_ Double
a123) = Double -> Double -> Cl3
C Double
0 Double
a123
toC (APS Double
a0 Double
_ Double
_ Double
_ Double
_ Double
_ Double
_ Double
a123) = Double -> Double -> Cl3
C Double
a0 Double
a123
toBPV :: Cl3 -> Cl3
toBPV :: Cl3 -> Cl3
toBPV R{} = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV Double
0 Double
0 Double
0 Double
0 Double
0 Double
0
toBPV (V3 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV Double
a1 Double
a2 Double
a3 Double
0 Double
0 Double
0
toBPV (BV Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV Double
0 Double
0 Double
0 Double
a23 Double
a31 Double
a12
toBPV I{} = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV Double
0 Double
0 Double
0 Double
0 Double
0 Double
0
toBPV (PV Double
_ Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV Double
a1 Double
a2 Double
a3 Double
0 Double
0 Double
0
toBPV (H Double
_ Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV Double
0 Double
0 Double
0 Double
a23 Double
a31 Double
a12
toBPV C{} = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV Double
0 Double
0 Double
0 Double
0 Double
0 Double
0
toBPV (BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12
toBPV (ODD Double
a1 Double
a2 Double
a3 Double
_) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV Double
a1 Double
a2 Double
a3 Double
0 Double
0 Double
0
toBPV (TPV Double
a23 Double
a31 Double
a12 Double
_) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV Double
0 Double
0 Double
0 Double
a23 Double
a31 Double
a12
toBPV (APS Double
_ Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
_) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12
toODD :: Cl3 -> Cl3
toODD :: Cl3 -> Cl3
toODD R{} = Double -> Double -> Double -> Double -> Cl3
ODD Double
0 Double
0 Double
0 Double
0
toODD (V3 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Double -> Cl3
ODD Double
a1 Double
a2 Double
a3 Double
0
toODD BV{} = Double -> Double -> Double -> Double -> Cl3
ODD Double
0 Double
0 Double
0 Double
0
toODD (I Double
a123) = Double -> Double -> Double -> Double -> Cl3
ODD Double
0 Double
0 Double
0 Double
a123
toODD (PV Double
_ Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Double -> Cl3
ODD Double
a1 Double
a2 Double
a3 Double
0
toODD H{} = Double -> Double -> Double -> Double -> Cl3
ODD Double
0 Double
0 Double
0 Double
0
toODD (C Double
_ Double
a123) = Double -> Double -> Double -> Double -> Cl3
ODD Double
0 Double
0 Double
0 Double
a123
toODD (BPV Double
a1 Double
a2 Double
a3 Double
_ Double
_ Double
_) = Double -> Double -> Double -> Double -> Cl3
ODD Double
a1 Double
a2 Double
a3 Double
0
toODD (ODD Double
a1 Double
a2 Double
a3 Double
a123) = Double -> Double -> Double -> Double -> Cl3
ODD Double
a1 Double
a2 Double
a3 Double
a123
toODD (TPV Double
_ Double
_ Double
_ Double
a123) = Double -> Double -> Double -> Double -> Cl3
ODD Double
0 Double
0 Double
0 Double
a123
toODD (APS Double
_ Double
a1 Double
a2 Double
a3 Double
_ Double
_ Double
_ Double
a123) = Double -> Double -> Double -> Double -> Cl3
ODD Double
a1 Double
a2 Double
a3 Double
a123
toTPV :: Cl3 -> Cl3
toTPV :: Cl3 -> Cl3
toTPV R{} = Double -> Double -> Double -> Double -> Cl3
TPV Double
0 Double
0 Double
0 Double
0
toTPV V3{} = Double -> Double -> Double -> Double -> Cl3
TPV Double
0 Double
0 Double
0 Double
0
toTPV (BV Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Cl3
TPV Double
a23 Double
a31 Double
a12 Double
0
toTPV (I Double
a123) = Double -> Double -> Double -> Double -> Cl3
TPV Double
0 Double
0 Double
0 Double
a123
toTPV PV{} = Double -> Double -> Double -> Double -> Cl3
TPV Double
0 Double
0 Double
0 Double
0
toTPV (H Double
_ Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Cl3
TPV Double
a23 Double
a31 Double
a12 Double
0
toTPV (C Double
_ Double
a123) = Double -> Double -> Double -> Double -> Cl3
TPV Double
0 Double
0 Double
0 Double
a123
toTPV (BPV Double
_ Double
_ Double
_ Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Cl3
TPV Double
a23 Double
a31 Double
a12 Double
0
toTPV (ODD Double
_ Double
_ Double
_ Double
a123) = Double -> Double -> Double -> Double -> Cl3
TPV Double
0 Double
0 Double
0 Double
a123
toTPV (TPV Double
a23 Double
a31 Double
a12 Double
a123) = Double -> Double -> Double -> Double -> Cl3
TPV Double
a23 Double
a31 Double
a12 Double
a123
toTPV (APS Double
_ Double
_ Double
_ Double
_ Double
a23 Double
a31 Double
a12 Double
a123) = Double -> Double -> Double -> Double -> Cl3
TPV Double
a23 Double
a31 Double
a12 Double
a123
toAPS :: Cl3 -> Cl3
toAPS :: Cl3 -> Cl3
toAPS (R Double
a0) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
0 Double
0 Double
0 Double
0 Double
0 Double
0 Double
0
toAPS (V3 Double
a1 Double
a2 Double
a3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0 Double
a1 Double
a2 Double
a3 Double
0 Double
0 Double
0 Double
0
toAPS (BV Double
a23 Double
a31 Double
a12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0 Double
0 Double
0 Double
0 Double
a23 Double
a31 Double
a12 Double
0
toAPS (I Double
a123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0 Double
0 Double
0 Double
0 Double
0 Double
0 Double
0 Double
a123
toAPS (PV Double
a0 Double
a1 Double
a2 Double
a3) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
a1 Double
a2 Double
a3 Double
0 Double
0 Double
0 Double
0
toAPS (H Double
a0 Double
a23 Double
a31 Double
a12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
0 Double
0 Double
0 Double
a23 Double
a31 Double
a12 Double
0
toAPS (C Double
a0 Double
a123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
0 Double
0 Double
0 Double
0 Double
0 Double
0 Double
a123
toAPS (BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
0
toAPS (ODD Double
a1 Double
a2 Double
a3 Double
a123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0 Double
a1 Double
a2 Double
a3 Double
0 Double
0 Double
0 Double
a123
toAPS (TPV Double
a23 Double
a31 Double
a12 Double
a123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
0 Double
0 Double
0 Double
0 Double
a23 Double
a31 Double
a12 Double
a123
toAPS (APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123
recip' :: Cl3 -> Cl3
recip' :: Cl3 -> Cl3
recip' = Cl3 -> Cl3
forall a. Num a => a -> a
negate(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3 -> Cl3
forall a. Fractional a => a -> a
recip(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Cl3 -> Integer -> Cl3
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2)
exp' :: Cl3 -> Cl3
exp' :: Cl3 -> Cl3
exp' = Cl3 -> Cl3
forall a. Floating a => a -> a
exp
log' :: Cl3 -> Cl3
log' :: Cl3 -> Cl3
log' = Cl3 -> Cl3
forall a. Fractional a => a -> a
recip
sqrt' :: Cl3 -> Cl3
sqrt' :: Cl3 -> Cl3
sqrt' = (Cl3 -> Cl3 -> Cl3
forall a. Fractional a => a -> a -> a
/Cl3
2)(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3 -> Cl3
forall a. Fractional a => a -> a
recip(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3 -> Cl3
forall a. Floating a => a -> a
sqrt
sin' :: Cl3 -> Cl3
sin' :: Cl3 -> Cl3
sin' = Cl3 -> Cl3
forall a. Floating a => a -> a
cos
cos' :: Cl3 -> Cl3
cos' :: Cl3 -> Cl3
cos' = Cl3 -> Cl3
forall a. Num a => a -> a
negate(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3 -> Cl3
forall a. Floating a => a -> a
sin
tan' :: Cl3 -> Cl3
tan' :: Cl3 -> Cl3
tan' = Cl3 -> Cl3
forall a. Fractional a => a -> a
recip(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Cl3 -> Integer -> Cl3
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2)(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3 -> Cl3
forall a. Floating a => a -> a
cos
asin' :: Cl3 -> Cl3
asin' :: Cl3 -> Cl3
asin' = Cl3 -> Cl3
forall a. Fractional a => a -> a
recip(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3 -> Cl3
forall a. Floating a => a -> a
sqrt(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Cl3
1Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
-)(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Cl3 -> Integer -> Cl3
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2)
acos' :: Cl3 -> Cl3
acos' :: Cl3 -> Cl3
acos' = Cl3 -> Cl3
forall a. Num a => a -> a
negate(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3 -> Cl3
forall a. Fractional a => a -> a
recip(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3 -> Cl3
forall a. Floating a => a -> a
sqrt(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Cl3
1Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
-)(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Cl3 -> Integer -> Cl3
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2)
atan' :: Cl3 -> Cl3
atan' :: Cl3 -> Cl3
atan' = Cl3 -> Cl3
forall a. Fractional a => a -> a
recip(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Cl3
1Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
+)(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Cl3 -> Integer -> Cl3
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2)
sinh' :: Cl3 -> Cl3
sinh' :: Cl3 -> Cl3
sinh' = Cl3 -> Cl3
forall a. Floating a => a -> a
cosh
cosh' :: Cl3 -> Cl3
cosh' :: Cl3 -> Cl3
cosh' = Cl3 -> Cl3
forall a. Floating a => a -> a
sinh
tanh' :: Cl3 -> Cl3
tanh' :: Cl3 -> Cl3
tanh' = Cl3 -> Cl3
forall a. Fractional a => a -> a
recip(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Cl3 -> Integer -> Cl3
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2)(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3 -> Cl3
forall a. Floating a => a -> a
cosh
asinh' :: Cl3 -> Cl3
asinh' :: Cl3 -> Cl3
asinh' = Cl3 -> Cl3
forall a. Fractional a => a -> a
recip(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3 -> Cl3
forall a. Floating a => a -> a
sqrt(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Cl3
1Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
+)(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Cl3 -> Integer -> Cl3
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2)
acosh' :: Cl3 -> Cl3
acosh' :: Cl3 -> Cl3
acosh' Cl3
x = Cl3 -> Cl3
forall a. Fractional a => a -> a
recip (Cl3 -> Cl3) -> Cl3 -> Cl3
forall a b. (a -> b) -> a -> b
$ Cl3 -> Cl3
forall a. Floating a => a -> a
sqrt (Cl3
x Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
- Cl3
1) Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
* Cl3 -> Cl3
forall a. Floating a => a -> a
sqrt (Cl3
x Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
+ Cl3
1)
atanh' :: Cl3 -> Cl3
atanh' :: Cl3 -> Cl3
atanh' = Cl3 -> Cl3
forall a. Fractional a => a -> a
recip(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Cl3
1Cl3 -> Cl3 -> Cl3
forall a. Num a => a -> a -> a
-)(Cl3 -> Cl3) -> (Cl3 -> Cl3) -> Cl3 -> Cl3
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Cl3 -> Integer -> Cl3
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2)
#ifndef O_NO_STORABLE
instance Storable Cl3 where
sizeOf :: Cl3 -> Int
sizeOf Cl3
_ = Int
8 Int -> Int -> Int
forall a. Num a => a -> a -> a
* Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
alignment :: Cl3 -> Int
alignment Cl3
_ = Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
peek :: Ptr Cl3 -> IO Cl3
peek Ptr Cl3
ptr = do
Double
a0 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0)
Double
a1 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1)
Double
a2 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
2)
Double
a3 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
3)
Double
a23 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
4)
Double
a31 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
5)
Double
a12 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
6)
Double
a123 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
7)
Cl3 -> IO Cl3
forall (m :: * -> *) a. Monad m => a -> m a
return (Cl3 -> IO Cl3) -> Cl3 -> IO Cl3
forall a b. (a -> b) -> a -> b
$ Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3 -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
poke :: Ptr Cl3 -> Cl3 -> IO ()
poke Ptr Cl3
ptr (Cl3 -> Cl3
toAPS -> APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) = do
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0) Double
a0
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1) Double
a1
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
2) Double
a2
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
3) Double
a3
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
4) Double
a23
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
5) Double
a31
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
6) Double
a12
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
7) Double
a123
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3 -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
poke Ptr Cl3
_ Cl3
_ = String -> IO ()
forall a. HasCallStack => String -> a
error String
"Serious Issues with poke in Cl3.Storable"
data Cl3_R where
Cl3_R :: !Double -> Cl3_R
toCl3_R :: Cl3 -> Cl3_R
toCl3_R :: Cl3 -> Cl3_R
toCl3_R (R Double
a0) = Double -> Cl3_R
Cl3_R Double
a0
toCl3_R Cl3
err = String -> Cl3_R
forall a. HasCallStack => String -> a
error (String -> Cl3_R) -> String -> Cl3_R
forall a b. (a -> b) -> a -> b
$ String
"Please don't try and cast something that's not R to Cl3_R, Got: " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Cl3 -> String
forall a. Show a => a -> String
show Cl3
err
fromCl3_R :: Cl3_R -> Cl3
fromCl3_R :: Cl3_R -> Cl3
fromCl3_R (Cl3_R Double
a0) = Double -> Cl3
R Double
a0
instance Show Cl3_R where
show :: Cl3_R -> String
show = Cl3 -> String
forall a. Show a => a -> String
show(Cl3 -> String) -> (Cl3_R -> Cl3) -> Cl3_R -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3_R -> Cl3
fromCl3_R
#ifndef O_NO_DERIVED
instance Read Cl3_R where
readPrec :: ReadPrec Cl3_R
readPrec = Cl3 -> Cl3_R
toCl3_R (Cl3 -> Cl3_R) -> ReadPrec Cl3 -> ReadPrec Cl3_R
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Cl3
forall a. Read a => ReadPrec a
readPrec
#endif
instance Storable Cl3_R where
sizeOf :: Cl3_R -> Int
sizeOf Cl3_R
_ = Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
alignment :: Cl3_R -> Int
alignment Cl3_R
_ = Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
peek :: Ptr Cl3_R -> IO Cl3_R
peek Ptr Cl3_R
ptr = do
Double
a0 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek Ptr Double
offset
Cl3_R -> IO Cl3_R
forall (m :: * -> *) a. Monad m => a -> m a
return (Cl3_R -> IO Cl3_R) -> Cl3_R -> IO Cl3_R
forall a b. (a -> b) -> a -> b
$ Double -> Cl3_R
Cl3_R Double
a0
where
offset :: Ptr Double
offset = (Ptr Cl3_R -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_R
ptr :: Ptr Double)
poke :: Ptr Cl3_R -> Cl3_R -> IO ()
poke Ptr Cl3_R
ptr (Cl3_R Double
a0) = do
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr Double
offset Double
a0
where
offset :: Ptr Double
offset = (Ptr Cl3_R -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_R
ptr :: Ptr Double)
data Cl3_V3 where
Cl3_V3 :: !Double -> !Double -> !Double -> Cl3_V3
toCl3_V3 :: Cl3 -> Cl3_V3
toCl3_V3 :: Cl3 -> Cl3_V3
toCl3_V3 (V3 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Cl3_V3
Cl3_V3 Double
a1 Double
a2 Double
a3
toCl3_V3 Cl3
err = String -> Cl3_V3
forall a. HasCallStack => String -> a
error (String -> Cl3_V3) -> String -> Cl3_V3
forall a b. (a -> b) -> a -> b
$ String
"Please don't try and cast something that's not V3 to Cl3_V3, Got: " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Cl3 -> String
forall a. Show a => a -> String
show Cl3
err
fromCl3_V3 :: Cl3_V3 -> Cl3
fromCl3_V3 :: Cl3_V3 -> Cl3
fromCl3_V3 (Cl3_V3 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Cl3
V3 Double
a1 Double
a2 Double
a3
instance Show Cl3_V3 where
show :: Cl3_V3 -> String
show = Cl3 -> String
forall a. Show a => a -> String
show(Cl3 -> String) -> (Cl3_V3 -> Cl3) -> Cl3_V3 -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3_V3 -> Cl3
fromCl3_V3
#ifndef O_NO_DERIVED
instance Read Cl3_V3 where
readPrec :: ReadPrec Cl3_V3
readPrec = Cl3 -> Cl3_V3
toCl3_V3 (Cl3 -> Cl3_V3) -> ReadPrec Cl3 -> ReadPrec Cl3_V3
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Cl3
forall a. Read a => ReadPrec a
readPrec
#endif
instance Storable Cl3_V3 where
sizeOf :: Cl3_V3 -> Int
sizeOf Cl3_V3
_ = Int
3 Int -> Int -> Int
forall a. Num a => a -> a -> a
* Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
alignment :: Cl3_V3 -> Int
alignment Cl3_V3
_ = Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
peek :: Ptr Cl3_V3 -> IO Cl3_V3
peek Ptr Cl3_V3
ptr = do
Double
a1 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0)
Double
a2 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1)
Double
a3 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
2)
Cl3_V3 -> IO Cl3_V3
forall (m :: * -> *) a. Monad m => a -> m a
return (Cl3_V3 -> IO Cl3_V3) -> Cl3_V3 -> IO Cl3_V3
forall a b. (a -> b) -> a -> b
$ Double -> Double -> Double -> Cl3_V3
Cl3_V3 Double
a1 Double
a2 Double
a3
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3_V3 -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_V3
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
poke :: Ptr Cl3_V3 -> Cl3_V3 -> IO ()
poke Ptr Cl3_V3
ptr (Cl3_V3 Double
a1 Double
a2 Double
a3) = do
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0) Double
a1
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1) Double
a2
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
2) Double
a3
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3_V3 -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_V3
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
data Cl3_BV where
Cl3_BV :: !Double -> !Double -> !Double -> Cl3_BV
toCl3_BV :: Cl3 -> Cl3_BV
toCl3_BV :: Cl3 -> Cl3_BV
toCl3_BV (BV Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Cl3_BV
Cl3_BV Double
a23 Double
a31 Double
a12
toCl3_BV Cl3
err = String -> Cl3_BV
forall a. HasCallStack => String -> a
error (String -> Cl3_BV) -> String -> Cl3_BV
forall a b. (a -> b) -> a -> b
$ String
"Please don't try and cast something that's not BV to Cl3_BV, Got: " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Cl3 -> String
forall a. Show a => a -> String
show Cl3
err
fromCl3_BV :: Cl3_BV -> Cl3
fromCl3_BV :: Cl3_BV -> Cl3
fromCl3_BV (Cl3_BV Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Cl3
BV Double
a23 Double
a31 Double
a12
instance Show Cl3_BV where
show :: Cl3_BV -> String
show = Cl3 -> String
forall a. Show a => a -> String
show(Cl3 -> String) -> (Cl3_BV -> Cl3) -> Cl3_BV -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3_BV -> Cl3
fromCl3_BV
#ifndef O_NO_DERIVED
instance Read Cl3_BV where
readPrec :: ReadPrec Cl3_BV
readPrec = Cl3 -> Cl3_BV
toCl3_BV (Cl3 -> Cl3_BV) -> ReadPrec Cl3 -> ReadPrec Cl3_BV
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Cl3
forall a. Read a => ReadPrec a
readPrec
#endif
instance Storable Cl3_BV where
sizeOf :: Cl3_BV -> Int
sizeOf Cl3_BV
_ = Int
3 Int -> Int -> Int
forall a. Num a => a -> a -> a
* Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
alignment :: Cl3_BV -> Int
alignment Cl3_BV
_ = Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
peek :: Ptr Cl3_BV -> IO Cl3_BV
peek Ptr Cl3_BV
ptr = do
Double
a23 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0)
Double
a31 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1)
Double
a12 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
2)
Cl3_BV -> IO Cl3_BV
forall (m :: * -> *) a. Monad m => a -> m a
return (Cl3_BV -> IO Cl3_BV) -> Cl3_BV -> IO Cl3_BV
forall a b. (a -> b) -> a -> b
$ Double -> Double -> Double -> Cl3_BV
Cl3_BV Double
a23 Double
a31 Double
a12
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3_BV -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_BV
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
poke :: Ptr Cl3_BV -> Cl3_BV -> IO ()
poke Ptr Cl3_BV
ptr (Cl3_BV Double
a23 Double
a31 Double
a12) = do
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0) Double
a23
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1) Double
a31
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
2) Double
a12
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3_BV -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_BV
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
data Cl3_I where
Cl3_I :: !Double -> Cl3_I
toCl3_I :: Cl3 -> Cl3_I
toCl3_I :: Cl3 -> Cl3_I
toCl3_I (I Double
a123) = Double -> Cl3_I
Cl3_I Double
a123
toCl3_I Cl3
err = String -> Cl3_I
forall a. HasCallStack => String -> a
error (String -> Cl3_I) -> String -> Cl3_I
forall a b. (a -> b) -> a -> b
$ String
"Please don't try and cast something that's not R to Cl3_R, Got: " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Cl3 -> String
forall a. Show a => a -> String
show Cl3
err
fromCl3_I :: Cl3_I -> Cl3
fromCl3_I :: Cl3_I -> Cl3
fromCl3_I (Cl3_I Double
a123) = Double -> Cl3
I Double
a123
instance Show Cl3_I where
show :: Cl3_I -> String
show = Cl3 -> String
forall a. Show a => a -> String
show(Cl3 -> String) -> (Cl3_I -> Cl3) -> Cl3_I -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3_I -> Cl3
fromCl3_I
#ifndef O_NO_DERIVED
instance Read Cl3_I where
readPrec :: ReadPrec Cl3_I
readPrec = Cl3 -> Cl3_I
toCl3_I (Cl3 -> Cl3_I) -> ReadPrec Cl3 -> ReadPrec Cl3_I
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Cl3
forall a. Read a => ReadPrec a
readPrec
#endif
instance Storable Cl3_I where
sizeOf :: Cl3_I -> Int
sizeOf Cl3_I
_ = Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
alignment :: Cl3_I -> Int
alignment Cl3_I
_ = Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
peek :: Ptr Cl3_I -> IO Cl3_I
peek Ptr Cl3_I
ptr = do
Double
a123 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek Ptr Double
offset
Cl3_I -> IO Cl3_I
forall (m :: * -> *) a. Monad m => a -> m a
return (Cl3_I -> IO Cl3_I) -> Cl3_I -> IO Cl3_I
forall a b. (a -> b) -> a -> b
$ Double -> Cl3_I
Cl3_I Double
a123
where
offset :: Ptr Double
offset = (Ptr Cl3_I -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_I
ptr :: Ptr Double)
poke :: Ptr Cl3_I -> Cl3_I -> IO ()
poke Ptr Cl3_I
ptr (Cl3_I Double
a123) = do
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr Double
offset Double
a123
where
offset :: Ptr Double
offset = (Ptr Cl3_I -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_I
ptr :: Ptr Double)
data Cl3_PV where
Cl3_PV :: !Double -> !Double -> !Double -> !Double -> Cl3_PV
toCl3_PV :: Cl3 -> Cl3_PV
toCl3_PV :: Cl3 -> Cl3_PV
toCl3_PV (PV Double
a0 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Double -> Cl3_PV
Cl3_PV Double
a0 Double
a1 Double
a2 Double
a3
toCl3_PV Cl3
err = String -> Cl3_PV
forall a. HasCallStack => String -> a
error (String -> Cl3_PV) -> String -> Cl3_PV
forall a b. (a -> b) -> a -> b
$ String
"Please don't try and cast something that's not PV to Cl3_PV, Got: " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Cl3 -> String
forall a. Show a => a -> String
show Cl3
err
fromCl3_PV :: Cl3_PV -> Cl3
fromCl3_PV :: Cl3_PV -> Cl3
fromCl3_PV (Cl3_PV Double
a0 Double
a1 Double
a2 Double
a3) = Double -> Double -> Double -> Double -> Cl3
PV Double
a0 Double
a1 Double
a2 Double
a3
instance Show Cl3_PV where
show :: Cl3_PV -> String
show = Cl3 -> String
forall a. Show a => a -> String
show(Cl3 -> String) -> (Cl3_PV -> Cl3) -> Cl3_PV -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3_PV -> Cl3
fromCl3_PV
#ifndef O_NO_DERIVED
instance Read Cl3_PV where
readPrec :: ReadPrec Cl3_PV
readPrec = Cl3 -> Cl3_PV
toCl3_PV (Cl3 -> Cl3_PV) -> ReadPrec Cl3 -> ReadPrec Cl3_PV
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Cl3
forall a. Read a => ReadPrec a
readPrec
#endif
instance Storable Cl3_PV where
sizeOf :: Cl3_PV -> Int
sizeOf Cl3_PV
_ = Int
4 Int -> Int -> Int
forall a. Num a => a -> a -> a
* Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
alignment :: Cl3_PV -> Int
alignment Cl3_PV
_ = Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
peek :: Ptr Cl3_PV -> IO Cl3_PV
peek Ptr Cl3_PV
ptr = do
Double
a0 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0)
Double
a1 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1)
Double
a2 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
2)
Double
a3 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
4)
Cl3_PV -> IO Cl3_PV
forall (m :: * -> *) a. Monad m => a -> m a
return (Cl3_PV -> IO Cl3_PV) -> Cl3_PV -> IO Cl3_PV
forall a b. (a -> b) -> a -> b
$ Double -> Double -> Double -> Double -> Cl3_PV
Cl3_PV Double
a0 Double
a1 Double
a2 Double
a3
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3_PV -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_PV
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
poke :: Ptr Cl3_PV -> Cl3_PV -> IO ()
poke Ptr Cl3_PV
ptr (Cl3_PV Double
a0 Double
a1 Double
a2 Double
a3) = do
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0) Double
a0
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1) Double
a1
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
2) Double
a2
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
3) Double
a3
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3_PV -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_PV
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
data Cl3_H where
Cl3_H :: !Double -> !Double -> !Double -> !Double -> Cl3_H
toCl3_H :: Cl3 -> Cl3_H
toCl3_H :: Cl3 -> Cl3_H
toCl3_H (H Double
a0 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Cl3_H
Cl3_H Double
a0 Double
a23 Double
a31 Double
a12
toCl3_H Cl3
err = String -> Cl3_H
forall a. HasCallStack => String -> a
error (String -> Cl3_H) -> String -> Cl3_H
forall a b. (a -> b) -> a -> b
$ String
"Please don't try and cast something that's not H to Cl3_H, Got: " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Cl3 -> String
forall a. Show a => a -> String
show Cl3
err
fromCl3_H :: Cl3_H -> Cl3
fromCl3_H :: Cl3_H -> Cl3
fromCl3_H (Cl3_H Double
a0 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Cl3
H Double
a0 Double
a23 Double
a31 Double
a12
instance Show Cl3_H where
show :: Cl3_H -> String
show = Cl3 -> String
forall a. Show a => a -> String
show(Cl3 -> String) -> (Cl3_H -> Cl3) -> Cl3_H -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3_H -> Cl3
fromCl3_H
#ifndef O_NO_DERIVED
instance Read Cl3_H where
readPrec :: ReadPrec Cl3_H
readPrec = Cl3 -> Cl3_H
toCl3_H (Cl3 -> Cl3_H) -> ReadPrec Cl3 -> ReadPrec Cl3_H
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Cl3
forall a. Read a => ReadPrec a
readPrec
#endif
instance Storable Cl3_H where
sizeOf :: Cl3_H -> Int
sizeOf Cl3_H
_ = Int
4 Int -> Int -> Int
forall a. Num a => a -> a -> a
* Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
alignment :: Cl3_H -> Int
alignment Cl3_H
_ = Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
peek :: Ptr Cl3_H -> IO Cl3_H
peek Ptr Cl3_H
ptr = do
Double
a0 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0)
Double
a23 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1)
Double
a31 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
2)
Double
a12 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
3)
Cl3_H -> IO Cl3_H
forall (m :: * -> *) a. Monad m => a -> m a
return (Cl3_H -> IO Cl3_H) -> Cl3_H -> IO Cl3_H
forall a b. (a -> b) -> a -> b
$ Double -> Double -> Double -> Double -> Cl3_H
Cl3_H Double
a0 Double
a23 Double
a31 Double
a12
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3_H -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_H
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
poke :: Ptr Cl3_H -> Cl3_H -> IO ()
poke Ptr Cl3_H
ptr (Cl3_H Double
a0 Double
a23 Double
a31 Double
a12) = do
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0) Double
a0
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1) Double
a23
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
2) Double
a31
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
3) Double
a12
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3_H -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_H
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
data Cl3_C where
Cl3_C :: !Double -> !Double -> Cl3_C
toCl3_C :: Cl3 -> Cl3_C
toCl3_C :: Cl3 -> Cl3_C
toCl3_C (C Double
a0 Double
a123) = Double -> Double -> Cl3_C
Cl3_C Double
a0 Double
a123
toCl3_C Cl3
err = String -> Cl3_C
forall a. HasCallStack => String -> a
error (String -> Cl3_C) -> String -> Cl3_C
forall a b. (a -> b) -> a -> b
$ String
"Please don't try and cast something that's not C to Cl3_C, Got: " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Cl3 -> String
forall a. Show a => a -> String
show Cl3
err
fromCl3_C :: Cl3_C -> Cl3
fromCl3_C :: Cl3_C -> Cl3
fromCl3_C (Cl3_C Double
a0 Double
a123) = Double -> Double -> Cl3
C Double
a0 Double
a123
instance Show Cl3_C where
show :: Cl3_C -> String
show = Cl3 -> String
forall a. Show a => a -> String
show(Cl3 -> String) -> (Cl3_C -> Cl3) -> Cl3_C -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3_C -> Cl3
fromCl3_C
#ifndef O_NO_DERIVED
instance Read Cl3_C where
readPrec :: ReadPrec Cl3_C
readPrec = Cl3 -> Cl3_C
toCl3_C (Cl3 -> Cl3_C) -> ReadPrec Cl3 -> ReadPrec Cl3_C
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Cl3
forall a. Read a => ReadPrec a
readPrec
#endif
instance Storable Cl3_C where
sizeOf :: Cl3_C -> Int
sizeOf Cl3_C
_ = Int
2 Int -> Int -> Int
forall a. Num a => a -> a -> a
* Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
alignment :: Cl3_C -> Int
alignment Cl3_C
_ = Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
peek :: Ptr Cl3_C -> IO Cl3_C
peek Ptr Cl3_C
ptr = do
Double
a0 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0)
Double
a123 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1)
Cl3_C -> IO Cl3_C
forall (m :: * -> *) a. Monad m => a -> m a
return (Cl3_C -> IO Cl3_C) -> Cl3_C -> IO Cl3_C
forall a b. (a -> b) -> a -> b
$ Double -> Double -> Cl3_C
Cl3_C Double
a0 Double
a123
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3_C -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_C
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
poke :: Ptr Cl3_C -> Cl3_C -> IO ()
poke Ptr Cl3_C
ptr (Cl3_C Double
a0 Double
a123) = do
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0) Double
a0
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1) Double
a123
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3_C -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_C
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
data Cl3_BPV where
Cl3_BPV :: !Double -> !Double -> !Double -> !Double -> !Double -> !Double -> Cl3_BPV
toCl3_BPV :: Cl3 -> Cl3_BPV
toCl3_BPV :: Cl3 -> Cl3_BPV
toCl3_BPV (BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3_BPV
Cl3_BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12
toCl3_BPV Cl3
err = String -> Cl3_BPV
forall a. HasCallStack => String -> a
error (String -> Cl3_BPV) -> String -> Cl3_BPV
forall a b. (a -> b) -> a -> b
$ String
"Please don't try and cast something that's not BPV to Cl3_BPV, Got: " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Cl3 -> String
forall a. Show a => a -> String
show Cl3
err
fromCl3_BPV :: Cl3_BPV -> Cl3
fromCl3_BPV :: Cl3_BPV -> Cl3
fromCl3_BPV (Cl3_BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) = Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12
instance Show Cl3_BPV where
show :: Cl3_BPV -> String
show = Cl3 -> String
forall a. Show a => a -> String
show(Cl3 -> String) -> (Cl3_BPV -> Cl3) -> Cl3_BPV -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3_BPV -> Cl3
fromCl3_BPV
#ifndef O_NO_DERIVED
instance Read Cl3_BPV where
readPrec :: ReadPrec Cl3_BPV
readPrec = Cl3 -> Cl3_BPV
toCl3_BPV (Cl3 -> Cl3_BPV) -> ReadPrec Cl3 -> ReadPrec Cl3_BPV
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Cl3
forall a. Read a => ReadPrec a
readPrec
#endif
instance Storable Cl3_BPV where
sizeOf :: Cl3_BPV -> Int
sizeOf Cl3_BPV
_ = Int
6 Int -> Int -> Int
forall a. Num a => a -> a -> a
* Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
alignment :: Cl3_BPV -> Int
alignment Cl3_BPV
_ = Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
peek :: Ptr Cl3_BPV -> IO Cl3_BPV
peek Ptr Cl3_BPV
ptr = do
Double
a1 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0)
Double
a2 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1)
Double
a3 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
2)
Double
a23 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
3)
Double
a31 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
4)
Double
a12 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
5)
Cl3_BPV -> IO Cl3_BPV
forall (m :: * -> *) a. Monad m => a -> m a
return (Cl3_BPV -> IO Cl3_BPV) -> Cl3_BPV -> IO Cl3_BPV
forall a b. (a -> b) -> a -> b
$ Double -> Double -> Double -> Double -> Double -> Double -> Cl3_BPV
Cl3_BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3_BPV -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_BPV
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
poke :: Ptr Cl3_BPV -> Cl3_BPV -> IO ()
poke Ptr Cl3_BPV
ptr (Cl3_BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12) = do
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0) Double
a1
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1) Double
a2
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
2) Double
a3
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
3) Double
a23
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
4) Double
a31
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
5) Double
a12
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3_BPV -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_BPV
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
data Cl3_ODD where
Cl3_ODD :: !Double -> !Double -> !Double -> !Double -> Cl3_ODD
toCl3_ODD :: Cl3 -> Cl3_ODD
toCl3_ODD :: Cl3 -> Cl3_ODD
toCl3_ODD (ODD Double
a1 Double
a2 Double
a3 Double
a123) = Double -> Double -> Double -> Double -> Cl3_ODD
Cl3_ODD Double
a1 Double
a2 Double
a3 Double
a123
toCl3_ODD Cl3
err = String -> Cl3_ODD
forall a. HasCallStack => String -> a
error (String -> Cl3_ODD) -> String -> Cl3_ODD
forall a b. (a -> b) -> a -> b
$ String
"Please don't try and cast something that's not ODD to Cl3_ODD, Got: " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Cl3 -> String
forall a. Show a => a -> String
show Cl3
err
fromCl3_ODD :: Cl3_ODD -> Cl3
fromCl3_ODD :: Cl3_ODD -> Cl3
fromCl3_ODD (Cl3_ODD Double
a1 Double
a2 Double
a3 Double
a123) = Double -> Double -> Double -> Double -> Cl3
ODD Double
a1 Double
a2 Double
a3 Double
a123
instance Show Cl3_ODD where
show :: Cl3_ODD -> String
show = Cl3 -> String
forall a. Show a => a -> String
show(Cl3 -> String) -> (Cl3_ODD -> Cl3) -> Cl3_ODD -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3_ODD -> Cl3
fromCl3_ODD
#ifndef O_NO_DERIVED
instance Read Cl3_ODD where
readPrec :: ReadPrec Cl3_ODD
readPrec = Cl3 -> Cl3_ODD
toCl3_ODD (Cl3 -> Cl3_ODD) -> ReadPrec Cl3 -> ReadPrec Cl3_ODD
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Cl3
forall a. Read a => ReadPrec a
readPrec
#endif
instance Storable Cl3_ODD where
sizeOf :: Cl3_ODD -> Int
sizeOf Cl3_ODD
_ = Int
4 Int -> Int -> Int
forall a. Num a => a -> a -> a
* Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
alignment :: Cl3_ODD -> Int
alignment Cl3_ODD
_ = Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
peek :: Ptr Cl3_ODD -> IO Cl3_ODD
peek Ptr Cl3_ODD
ptr = do
Double
a1 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0)
Double
a2 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1)
Double
a3 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
2)
Double
a123 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
3)
Cl3_ODD -> IO Cl3_ODD
forall (m :: * -> *) a. Monad m => a -> m a
return (Cl3_ODD -> IO Cl3_ODD) -> Cl3_ODD -> IO Cl3_ODD
forall a b. (a -> b) -> a -> b
$ Double -> Double -> Double -> Double -> Cl3_ODD
Cl3_ODD Double
a1 Double
a2 Double
a3 Double
a123
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3_ODD -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_ODD
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
poke :: Ptr Cl3_ODD -> Cl3_ODD -> IO ()
poke Ptr Cl3_ODD
ptr (Cl3_ODD Double
a1 Double
a2 Double
a3 Double
a123) = do
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0) Double
a1
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1) Double
a2
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
2) Double
a3
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
3) Double
a123
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3_ODD -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_ODD
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
data Cl3_TPV where
Cl3_TPV :: !Double -> !Double -> !Double -> !Double -> Cl3_TPV
toCl3_TPV :: Cl3 -> Cl3_TPV
toCl3_TPV :: Cl3 -> Cl3_TPV
toCl3_TPV (TPV Double
a23 Double
a31 Double
a12 Double
a123) = Double -> Double -> Double -> Double -> Cl3_TPV
Cl3_TPV Double
a23 Double
a31 Double
a12 Double
a123
toCl3_TPV Cl3
err = String -> Cl3_TPV
forall a. HasCallStack => String -> a
error (String -> Cl3_TPV) -> String -> Cl3_TPV
forall a b. (a -> b) -> a -> b
$ String
"Please don't try and cast something that's not TPV to Cl3_TPV, Got: " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Cl3 -> String
forall a. Show a => a -> String
show Cl3
err
fromCl3_TPV :: Cl3_TPV -> Cl3
fromCl3_TPV :: Cl3_TPV -> Cl3
fromCl3_TPV (Cl3_TPV Double
a23 Double
a31 Double
a12 Double
a123) = Double -> Double -> Double -> Double -> Cl3
TPV Double
a23 Double
a31 Double
a12 Double
a123
instance Show Cl3_TPV where
show :: Cl3_TPV -> String
show = Cl3 -> String
forall a. Show a => a -> String
show(Cl3 -> String) -> (Cl3_TPV -> Cl3) -> Cl3_TPV -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3_TPV -> Cl3
fromCl3_TPV
#ifndef O_NO_DERIVED
instance Read Cl3_TPV where
readPrec :: ReadPrec Cl3_TPV
readPrec = Cl3 -> Cl3_TPV
toCl3_TPV (Cl3 -> Cl3_TPV) -> ReadPrec Cl3 -> ReadPrec Cl3_TPV
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Cl3
forall a. Read a => ReadPrec a
readPrec
#endif
instance Storable Cl3_TPV where
sizeOf :: Cl3_TPV -> Int
sizeOf Cl3_TPV
_ = Int
4 Int -> Int -> Int
forall a. Num a => a -> a -> a
* Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
alignment :: Cl3_TPV -> Int
alignment Cl3_TPV
_ = Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
peek :: Ptr Cl3_TPV -> IO Cl3_TPV
peek Ptr Cl3_TPV
ptr = do
Double
a23 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0)
Double
a31 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1)
Double
a12 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
2)
Double
a123 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
3)
Cl3_TPV -> IO Cl3_TPV
forall (m :: * -> *) a. Monad m => a -> m a
return (Cl3_TPV -> IO Cl3_TPV) -> Cl3_TPV -> IO Cl3_TPV
forall a b. (a -> b) -> a -> b
$ Double -> Double -> Double -> Double -> Cl3_TPV
Cl3_TPV Double
a23 Double
a31 Double
a12 Double
a123
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3_TPV -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_TPV
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
poke :: Ptr Cl3_TPV -> Cl3_TPV -> IO ()
poke Ptr Cl3_TPV
ptr (Cl3_TPV Double
a23 Double
a31 Double
a12 Double
a123) = do
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0) Double
a23
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1) Double
a31
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
2) Double
a12
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
3) Double
a123
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3_TPV -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_TPV
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
data Cl3_APS where
Cl3_APS :: !Double -> !Double -> !Double -> !Double -> !Double -> !Double -> !Double -> !Double -> Cl3_APS
toCl3_APS :: Cl3 -> Cl3_APS
toCl3_APS :: Cl3 -> Cl3_APS
toCl3_APS (APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3_APS
Cl3_APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123
toCl3_APS Cl3
err = String -> Cl3_APS
forall a. HasCallStack => String -> a
error (String -> Cl3_APS) -> String -> Cl3_APS
forall a b. (a -> b) -> a -> b
$ String
"Please don't try and cast something that's not APS to Cl3_APS, Got: " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Cl3 -> String
forall a. Show a => a -> String
show Cl3
err
fromCl3_APS :: Cl3_APS -> Cl3
fromCl3_APS :: Cl3_APS -> Cl3
fromCl3_APS (Cl3_APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) = Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123
instance Show Cl3_APS where
show :: Cl3_APS -> String
show = Cl3 -> String
forall a. Show a => a -> String
show(Cl3 -> String) -> (Cl3_APS -> Cl3) -> Cl3_APS -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Cl3_APS -> Cl3
fromCl3_APS
#ifndef O_NO_DERIVED
instance Read Cl3_APS where
readPrec :: ReadPrec Cl3_APS
readPrec = Cl3 -> Cl3_APS
toCl3_APS (Cl3 -> Cl3_APS) -> ReadPrec Cl3 -> ReadPrec Cl3_APS
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Cl3
forall a. Read a => ReadPrec a
readPrec
#endif
instance Storable Cl3_APS where
sizeOf :: Cl3_APS -> Int
sizeOf Cl3_APS
_ = Int
8 Int -> Int -> Int
forall a. Num a => a -> a -> a
* Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
alignment :: Cl3_APS -> Int
alignment Cl3_APS
_ = Double -> Int
forall a. Storable a => a -> Int
sizeOf (Double
forall a. HasCallStack => a
undefined :: Double)
peek :: Ptr Cl3_APS -> IO Cl3_APS
peek Ptr Cl3_APS
ptr = do
Double
a0 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0)
Double
a1 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1)
Double
a2 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
2)
Double
a3 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
3)
Double
a23 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
4)
Double
a31 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
5)
Double
a12 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
6)
Double
a123 <- Ptr Double -> IO Double
forall a. Storable a => Ptr a -> IO a
peek (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
7)
Cl3_APS -> IO Cl3_APS
forall (m :: * -> *) a. Monad m => a -> m a
return (Cl3_APS -> IO Cl3_APS) -> Cl3_APS -> IO Cl3_APS
forall a b. (a -> b) -> a -> b
$ Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3_APS
Cl3_APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3_APS -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_APS
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
poke :: Ptr Cl3_APS -> Cl3_APS -> IO ()
poke Ptr Cl3_APS
ptr (Cl3_APS Double
a0 Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12 Double
a123) = do
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
0) Double
a0
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
1) Double
a1
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
2) Double
a2
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
3) Double
a3
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
4) Double
a23
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
5) Double
a31
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
6) Double
a12
Ptr Double -> Double -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Int -> Ptr Double
forall b. Int -> Ptr b
offset Int
7) Double
a123
where
offset :: Int -> Ptr b
offset Int
i = (Ptr Cl3_APS -> Ptr Double
forall a b. Ptr a -> Ptr b
castPtr Ptr Cl3_APS
ptr :: Ptr Double) Ptr Double -> Int -> Ptr b
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
*Int
8)
#endif
#ifndef O_NO_RANDOM
instance Random Cl3 where
randomR :: (Cl3, Cl3) -> g -> (Cl3, g)
randomR (Cl3
minAbs,Cl3
maxAbs) g
g =
case (Int, Int) -> g -> (Int, g)
forall a g. (Random a, RandomGen g) => (a, a) -> g -> (a, g)
randomR (ConCl3 -> Int
forall a. Enum a => a -> Int
fromEnum (ConCl3
forall a. Bounded a => a
minBound :: ConCl3), ConCl3 -> Int
forall a. Enum a => a -> Int
fromEnum (ConCl3
forall a. Bounded a => a
maxBound :: ConCl3)) g
g of
(Int
r, g
g') -> case Int -> ConCl3
forall a. Enum a => Int -> a
toEnum Int
r of
ConCl3
ConR -> (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeR (Cl3
minAbs,Cl3
maxAbs) g
g'
ConCl3
ConV3 -> (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeV3 (Cl3
minAbs,Cl3
maxAbs) g
g'
ConCl3
ConBV -> (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeBV (Cl3
minAbs,Cl3
maxAbs) g
g'
ConCl3
ConI -> (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeI (Cl3
minAbs,Cl3
maxAbs) g
g'
ConCl3
ConPV -> (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangePV (Cl3
minAbs,Cl3
maxAbs) g
g'
ConCl3
ConH -> (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeH (Cl3
minAbs,Cl3
maxAbs) g
g'
ConCl3
ConC -> (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeC (Cl3
minAbs,Cl3
maxAbs) g
g'
ConCl3
ConBPV -> (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeBPV (Cl3
minAbs,Cl3
maxAbs) g
g'
ConCl3
ConODD -> (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeODD (Cl3
minAbs,Cl3
maxAbs) g
g'
ConCl3
ConTPV -> (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeTPV (Cl3
minAbs,Cl3
maxAbs) g
g'
ConCl3
ConAPS -> (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeAPS (Cl3
minAbs,Cl3
maxAbs) g
g'
ConCl3
ConProj -> (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeProjector (Cl3
minAbs,Cl3
maxAbs) g
g'
ConCl3
ConNilpotent -> (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeNilpotent (Cl3
minAbs,Cl3
maxAbs) g
g'
ConCl3
ConUnitary -> (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeUnitary (Cl3
minAbs,Cl3
maxAbs) g
g'
random :: g -> (Cl3, g)
random = (Cl3, Cl3) -> g -> (Cl3, g)
forall a g. (Random a, RandomGen g) => (a, a) -> g -> (a, g)
randomR (Cl3
0,Cl3
1)
data ConCl3 = ConR
| ConV3
| ConBV
| ConI
| ConPV
| ConH
| ConC
| ConBPV
| ConODD
| ConTPV
| ConAPS
| ConProj
| ConNilpotent
| ConUnitary
deriving (ConCl3
ConCl3 -> ConCl3 -> Bounded ConCl3
forall a. a -> a -> Bounded a
maxBound :: ConCl3
$cmaxBound :: ConCl3
minBound :: ConCl3
$cminBound :: ConCl3
Bounded, Int -> ConCl3
ConCl3 -> Int
ConCl3 -> [ConCl3]
ConCl3 -> ConCl3
ConCl3 -> ConCl3 -> [ConCl3]
ConCl3 -> ConCl3 -> ConCl3 -> [ConCl3]
(ConCl3 -> ConCl3)
-> (ConCl3 -> ConCl3)
-> (Int -> ConCl3)
-> (ConCl3 -> Int)
-> (ConCl3 -> [ConCl3])
-> (ConCl3 -> ConCl3 -> [ConCl3])
-> (ConCl3 -> ConCl3 -> [ConCl3])
-> (ConCl3 -> ConCl3 -> ConCl3 -> [ConCl3])
-> Enum ConCl3
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: ConCl3 -> ConCl3 -> ConCl3 -> [ConCl3]
$cenumFromThenTo :: ConCl3 -> ConCl3 -> ConCl3 -> [ConCl3]
enumFromTo :: ConCl3 -> ConCl3 -> [ConCl3]
$cenumFromTo :: ConCl3 -> ConCl3 -> [ConCl3]
enumFromThen :: ConCl3 -> ConCl3 -> [ConCl3]
$cenumFromThen :: ConCl3 -> ConCl3 -> [ConCl3]
enumFrom :: ConCl3 -> [ConCl3]
$cenumFrom :: ConCl3 -> [ConCl3]
fromEnum :: ConCl3 -> Int
$cfromEnum :: ConCl3 -> Int
toEnum :: Int -> ConCl3
$ctoEnum :: Int -> ConCl3
pred :: ConCl3 -> ConCl3
$cpred :: ConCl3 -> ConCl3
succ :: ConCl3 -> ConCl3
$csucc :: ConCl3 -> ConCl3
Enum)
randR :: RandomGen g => g -> (Cl3, g)
randR :: g -> (Cl3, g)
randR = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeR (Cl3
0,Cl3
1)
rangeR :: RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeR :: (Cl3, Cl3) -> g -> (Cl3, g)
rangeR = (Double -> Cl3) -> (Cl3, Cl3) -> g -> (Cl3, g)
forall g.
RandomGen g =>
(Double -> Cl3) -> (Cl3, Cl3) -> g -> (Cl3, g)
scalarHelper Double -> Cl3
R
randV3 :: RandomGen g => g -> (Cl3, g)
randV3 :: g -> (Cl3, g)
randV3 = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeV3 (Cl3
0,Cl3
1)
rangeV3 :: RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeV3 :: (Cl3, Cl3) -> g -> (Cl3, g)
rangeV3 = (Double -> Double -> Double -> Cl3) -> (Cl3, Cl3) -> g -> (Cl3, g)
forall g.
RandomGen g =>
(Double -> Double -> Double -> Cl3) -> (Cl3, Cl3) -> g -> (Cl3, g)
vectorHelper Double -> Double -> Double -> Cl3
V3
randBV :: RandomGen g => g -> (Cl3, g)
randBV :: g -> (Cl3, g)
randBV = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeBV (Cl3
0,Cl3
1)
rangeBV :: RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeBV :: (Cl3, Cl3) -> g -> (Cl3, g)
rangeBV = (Double -> Double -> Double -> Cl3) -> (Cl3, Cl3) -> g -> (Cl3, g)
forall g.
RandomGen g =>
(Double -> Double -> Double -> Cl3) -> (Cl3, Cl3) -> g -> (Cl3, g)
vectorHelper Double -> Double -> Double -> Cl3
BV
randI :: RandomGen g => g -> (Cl3, g)
randI :: g -> (Cl3, g)
randI = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeI (Cl3
0,Cl3
1)
rangeI :: RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeI :: (Cl3, Cl3) -> g -> (Cl3, g)
rangeI = (Double -> Cl3) -> (Cl3, Cl3) -> g -> (Cl3, g)
forall g.
RandomGen g =>
(Double -> Cl3) -> (Cl3, Cl3) -> g -> (Cl3, g)
scalarHelper Double -> Cl3
I
randPV :: RandomGen g => g -> (Cl3, g)
randPV :: g -> (Cl3, g)
randPV = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangePV (Cl3
0,Cl3
1)
rangePV :: RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangePV :: (Cl3, Cl3) -> g -> (Cl3, g)
rangePV (Cl3
lo, Cl3
hi) g
g =
let (R Double
scale, g
g') = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeR (Cl3
lo, Cl3
hi) g
g
(R Double
a0, g
g'') = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randR g
g'
(V3 Double
a1 Double
a2 Double
a3, g
g''') = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randV3 g
g''
sumsqs :: Double
sumsqs = Double
a1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
x :: Double
x = Double -> Double
forall a. Num a => a -> a
abs Double
a0 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
sqrt Double
sumsqs
invMag :: Double
invMag = Double -> Double
forall a. Fractional a => a -> a
recip(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
sumsqs Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
x Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
x
mag :: Double
mag = Double
scale Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
invMag
in (Double -> Double -> Double -> Double -> Cl3
PV (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a0) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a1) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a2) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a3), g
g''')
randH :: RandomGen g => g -> (Cl3, g)
randH :: g -> (Cl3, g)
randH = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeH (Cl3
0,Cl3
1)
rangeH :: RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeH :: (Cl3, Cl3) -> g -> (Cl3, g)
rangeH (Cl3
lo, Cl3
hi) g
g =
let (R Double
scale, g
g') = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeR (Cl3
lo, Cl3
hi) g
g
(R Double
a0, g
g'') = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randR g
g'
(BV Double
a23 Double
a31 Double
a12, g
g''') = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randBV g
g''
invMag :: Double
invMag = Double -> Double
forall a. Fractional a => a -> a
recip(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
mag :: Double
mag = Double
scale Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
invMag
in (Double -> Double -> Double -> Double -> Cl3
H (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a0) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a23) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a31) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a12), g
g''')
randC :: RandomGen g => g -> (Cl3, g)
randC :: g -> (Cl3, g)
randC = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeC (Cl3
0,Cl3
1)
rangeC :: RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeC :: (Cl3, Cl3) -> g -> (Cl3, g)
rangeC (Cl3
lo, Cl3
hi) g
g =
let (R Double
scale, g
g') = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeR (Cl3
lo, Cl3
hi) g
g
(Double
phi, g
g'') = (Double, Double) -> g -> (Double, g)
forall a g. (Random a, RandomGen g) => (a, a) -> g -> (a, g)
randomR (Double
0, Double
2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
forall a. Floating a => a
pi) g
g'
in (Double -> Double -> Cl3
C (Double
scale Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
cos Double
phi) (Double
scale Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
sin Double
phi), g
g'')
randBPV :: RandomGen g => g -> (Cl3, g)
randBPV :: g -> (Cl3, g)
randBPV = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeBPV (Cl3
0,Cl3
1)
rangeBPV :: RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeBPV :: (Cl3, Cl3) -> g -> (Cl3, g)
rangeBPV (Cl3
lo, Cl3
hi) g
g =
let (R Double
scale, g
g') = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeR (Cl3
lo, Cl3
hi) g
g
(V3 Double
a1 Double
a2 Double
a3, g
g'') = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randV3 g
g'
(BV Double
a23 Double
a31 Double
a12, g
g''') = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randBV g
g''
x :: Double
x = Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a23)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a23)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a31)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
invMag :: Double
invMag = Double -> Double
forall a. Fractional a => a -> a
recip(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
x Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
x
mag :: Double
mag = Double
scale Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
invMag
in (Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a1) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a2) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a3) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a23) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a31) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a12), g
g''')
randODD :: RandomGen g => g -> (Cl3, g)
randODD :: g -> (Cl3, g)
randODD = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeODD (Cl3
0,Cl3
1)
rangeODD :: RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeODD :: (Cl3, Cl3) -> g -> (Cl3, g)
rangeODD (Cl3
lo, Cl3
hi) g
g =
let (R Double
scale, g
g') = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeR (Cl3
lo, Cl3
hi) g
g
(V3 Double
a1 Double
a2 Double
a3, g
g'') = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randV3 g
g'
(I Double
a123, g
g''') = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randI g
g''
invMag :: Double
invMag = Double -> Double
forall a. Fractional a => a -> a
recip(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
mag :: Double
mag = Double
scale Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
invMag
in (Double -> Double -> Double -> Double -> Cl3
ODD (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a1) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a2) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a3) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a123), g
g''')
randTPV :: RandomGen g => g -> (Cl3, g)
randTPV :: g -> (Cl3, g)
randTPV = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeTPV (Cl3
0,Cl3
1)
rangeTPV :: RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeTPV :: (Cl3, Cl3) -> g -> (Cl3, g)
rangeTPV (Cl3
lo, Cl3
hi) g
g =
let (R Double
scale, g
g') = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeR (Cl3
lo, Cl3
hi) g
g
(BV Double
a23 Double
a31 Double
a12, g
g'') = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randBV g
g'
(I Double
a123, g
g''') = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randI g
g''
sumsqs :: Double
sumsqs = Double
a23Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
x :: Double
x = Double -> Double
forall a. Num a => a -> a
abs Double
a123 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
sqrt Double
sumsqs
invMag :: Double
invMag = Double -> Double
forall a. Fractional a => a -> a
recip(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
sumsqs Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
x Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
x
mag :: Double
mag = Double
scale Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
invMag
in (Double -> Double -> Double -> Double -> Cl3
TPV (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a23) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a31) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a12) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a123), g
g''')
randAPS :: RandomGen g => g -> (Cl3, g)
randAPS :: g -> (Cl3, g)
randAPS = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeAPS (Cl3
0,Cl3
1)
rangeAPS :: RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeAPS :: (Cl3, Cl3) -> g -> (Cl3, g)
rangeAPS (Cl3
lo, Cl3
hi) g
g =
let (R Double
scale, g
g') = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeR (Cl3
lo, Cl3
hi) g
g
(C Double
a0 Double
a123, g
g'') = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randC g
g'
(V3 Double
a1 Double
a2 Double
a3, g
g''') = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randV3 g
g''
(BV Double
a23 Double
a31 Double
a12, g
g'v) = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randBV g
g'''
x :: Double
x = Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a23)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a31)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a0Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a12)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a12 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a31)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a23 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a12)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ (Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a31 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a23)Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
invMag :: Double
invMag = Double -> Double
forall a. Fractional a => a -> a
recip(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
a0Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a23Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a31Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a12Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
a123Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
x Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
x
mag :: Double
mag = Double
scale Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
invMag
in (Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Double
-> Cl3
APS (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a0) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a1) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a2) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a3) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a23) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a31) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a12) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a123), g
g'v)
randUnitV3 :: RandomGen g => g -> (Cl3, g)
randUnitV3 :: g -> (Cl3, g)
randUnitV3 g
g =
let (Double
theta, g
g') = (Double, Double) -> g -> (Double, g)
forall a g. (Random a, RandomGen g) => (a, a) -> g -> (a, g)
randomR (Double
0,Double
2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
forall a. Floating a => a
pi) g
g
(Double
u, g
g'') = (Double, Double) -> g -> (Double, g)
forall a g. (Random a, RandomGen g) => (a, a) -> g -> (a, g)
randomR (-Double
1,Double
1) g
g'
semicircle :: Double
semicircle = Double -> Double
forall a. Floating a => a -> a
sqrt (Double
1Double -> Double -> Double
forall a. Num a => a -> a -> a
-Double
uDouble -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2)
in (Double -> Double -> Double -> Cl3
V3 (Double
semicircle Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
cos Double
theta) (Double
semicircle Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double -> Double
forall a. Floating a => a -> a
sin Double
theta) Double
u, g
g'')
randProjector :: RandomGen g => g -> (Cl3, g)
randProjector :: g -> (Cl3, g)
randProjector g
g =
let (V3 Double
a1 Double
a2 Double
a3, g
g') = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randUnitV3 g
g
in (Double -> Double -> Double -> Double -> Cl3
PV Double
0.5 (Double
0.5 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a1) (Double
0.5 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a2) (Double
0.5 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a3), g
g')
rangeProjector :: RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeProjector :: (Cl3, Cl3) -> g -> (Cl3, g)
rangeProjector (Cl3
lo, Cl3
hi) g
g =
let (R Double
mag, g
g') = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeR (Cl3
lo, Cl3
hi) g
g
(PV Double
a0 Double
a1 Double
a2 Double
a3, g
g'') = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randProjector g
g'
in (Double -> Double -> Double -> Double -> Cl3
PV (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a0) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a1) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a2) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a3), g
g'')
randNilpotent :: RandomGen g => g -> (Cl3, g)
randNilpotent :: g -> (Cl3, g)
randNilpotent g
g =
let (PV Double
a0 Double
a1 Double
a2 Double
a3, g
g') = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randProjector g
g
(V3 Double
b1 Double
b2 Double
b3, g
g'') = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randUnitV3 g
g'
c1 :: Double
c1 = Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2
c2 :: Double
c2 = Double
a3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b3
c3 :: Double
c3 = Double
a1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
a2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
b1
invMag :: Double
invMag = Double -> Double
forall a. Fractional a => a -> a
recip(Double -> Double) -> (Double -> Double) -> Double -> Double
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Double -> Double
forall a. Floating a => a -> a
sqrt (Double -> Double) -> Double -> Double
forall a b. (a -> b) -> a -> b
$ Double
c1Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
c2Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2 Double -> Double -> Double
forall a. Num a => a -> a -> a
+ Double
c3Double -> Integer -> Double
forall a b. (Num a, Integral b) => a -> b -> a
^Integer
2
d1 :: Double
d1 = Double
invMag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
c1
d2 :: Double
d2 = Double
invMag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
c2
d3 :: Double
d3 = Double
invMag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
c3
in (Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV (Double
d1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a0) (Double
d2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a0) (Double
d3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a0) (Double
d2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a3 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
d3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a2) (Double
d3Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a1 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
d1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a3) (Double
d1Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a2 Double -> Double -> Double
forall a. Num a => a -> a -> a
- Double
d2Double -> Double -> Double
forall a. Num a => a -> a -> a
*Double
a1), g
g'')
rangeNilpotent :: RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeNilpotent :: (Cl3, Cl3) -> g -> (Cl3, g)
rangeNilpotent (Cl3
lo, Cl3
hi) g
g =
let (R Double
mag, g
g') = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeR (Cl3
lo, Cl3
hi) g
g
(BPV Double
a1 Double
a2 Double
a3 Double
a23 Double
a31 Double
a12, g
g'') = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randNilpotent g
g'
in (Double -> Double -> Double -> Double -> Double -> Double -> Cl3
BPV (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a1) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a2) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a3) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a23) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a31) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
a12), g
g'')
randUnitary :: RandomGen g => g -> (Cl3, g)
randUnitary :: g -> (Cl3, g)
randUnitary g
g =
let (Cl3
tpv,g
g') = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randTPV g
g
in (Cl3 -> Cl3
forall a. Floating a => a -> a
exp Cl3
tpv,g
g')
rangeUnitary :: RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeUnitary :: (Cl3, Cl3) -> g -> (Cl3, g)
rangeUnitary (Cl3
lo, Cl3
hi) g
g =
let (Cl3
tpv, g
g') = (Cl3, Cl3) -> g -> (Cl3, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Cl3, g)
rangeTPV (Cl3
lo, Cl3
hi) g
g
in (Cl3 -> Cl3
forall a. Floating a => a -> a
exp Cl3
tpv, g
g')
magHelper :: RandomGen g => (Cl3, Cl3) -> g -> (Double, g)
magHelper :: (Cl3, Cl3) -> g -> (Double, g)
magHelper (Cl3
lo, Cl3
hi) g
g =
let R Double
lo' = Cl3 -> Cl3
forall a. Num a => a -> a
abs Cl3
lo
R Double
hi' = Cl3 -> Cl3
forall a. Num a => a -> a
abs Cl3
hi
in (Double, Double) -> g -> (Double, g)
forall a g. (Random a, RandomGen g) => (a, a) -> g -> (a, g)
randomR (Double
lo', Double
hi') g
g
scalarHelper :: RandomGen g => (Double -> Cl3) -> (Cl3, Cl3) -> g -> (Cl3, g)
scalarHelper :: (Double -> Cl3) -> (Cl3, Cl3) -> g -> (Cl3, g)
scalarHelper Double -> Cl3
con (Cl3, Cl3)
rng g
g =
let (Double
mag, g
g') = (Cl3, Cl3) -> g -> (Double, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Double, g)
magHelper (Cl3, Cl3)
rng g
g
(Bool
sign, g
g'') = g -> (Bool, g)
forall a g. (Random a, RandomGen g) => g -> (a, g)
random g
g'
in if Bool
sign
then (Double -> Cl3
con Double
mag, g
g'')
else (Double -> Cl3
con (Double -> Double
forall a. Num a => a -> a
negate Double
mag), g
g'')
vectorHelper :: RandomGen g => (Double -> Double -> Double -> Cl3) -> (Cl3, Cl3) -> g -> (Cl3, g)
vectorHelper :: (Double -> Double -> Double -> Cl3) -> (Cl3, Cl3) -> g -> (Cl3, g)
vectorHelper Double -> Double -> Double -> Cl3
con (Cl3, Cl3)
rng g
g =
let (Double
mag, g
g') = (Cl3, Cl3) -> g -> (Double, g)
forall g. RandomGen g => (Cl3, Cl3) -> g -> (Double, g)
magHelper (Cl3, Cl3)
rng g
g
(V3 Double
x Double
y Double
z, g
g'') = g -> (Cl3, g)
forall g. RandomGen g => g -> (Cl3, g)
randUnitV3 g
g'
in (Double -> Double -> Double -> Cl3
con (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
x) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
y) (Double
mag Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
z), g
g'')
#endif