module Data.Number.ER.RnToRm.UnitDom.ChebyshevBase.Polynom.Tests.Enclosure
where
import Data.Number.ER.RnToRm.UnitDom.ChebyshevBase.Polynom.Enclosure
import Data.Number.ER.RnToRm.UnitDom.ChebyshevBase.Polynom.Tests.Generate
import Data.Number.ER.Real.Approx.Interval
prop_enclAdd_ThickEncls_consistent
reportFileName
(Deg20Size20 maxDegree maxSize,
(PSize30 (n11,p11), PSize30 (n12, p12)),
(PSize30 (n21,p21), PSize30 (n22, p22))) =
enclAtKeyPointsPointwiseBinaryDownUpConsistent
reportFileName
((maxDegree, maxSize), (n11, n12), (n21, n22))
intervalPlusInner
p1Encl p2Encl sumEncl
where
sumEncl = p1Encl +: p2Encl
p1Encl = makeThickEncl maxDegree maxSize p11 p12
p2Encl = makeThickEncl maxDegree maxSize p21 p22
prop_enclMultiply_ThickEncls_consistent
reportFileName
(Deg20Size20 maxDegree maxSize,
(PSize30 (n11,p11), PSize30 (n12, p12)),
(PSize30 (n21,p21), PSize30 (n22, p22))) =
enclAtKeyPointsPointwiseBinaryDownUpConsistent
reportFileName
((maxDegree, maxSize), (n11, n12), (n21, n22))
intervalTimesInner
p1Encl p2Encl prodEncl
where
prodEncl = enclMultiply maxDegree maxSize p1Encl p2Encl
p1Encl = makeThickEncl maxDegree maxSize p11 p12
p2Encl = makeThickEncl maxDegree maxSize p21 p22
prop_enclMultiply_ParalEncls_consistent
reportFileName
(Deg20Size20 maxDegree maxSize,
(SmallRatio num1 denom1,
PSize30 (n1,p1)),
(SmallRatio num2 denom2,
PSize30 (n2,p2))) =
enclAtKeyPointsPointwiseBinaryDownUpConsistent
reportFileName
((maxDegree, maxSize), ((num1, denom1), n1), ((num2, denom2), n2))
intervalTimesInner
p1Encl p2Encl prodEncl
where
prodEncl = enclMultiply maxDegree maxSize p1Encl p2Encl
p1Encl = makeParalEncl p1 num1 denom1
p2Encl = makeParalEncl p2 num2 denom2
prop_enclScale_ThickEncl_consistent
reportFileName
(Deg20Size20 maxDegree maxSize,
SmallRatio num denom,
PSize30 (n1, p1),
PSize30 (n2, p2)) =
enclAtKeyPointsPointwiseBinaryDownUpConsistent
reportFileName
((maxDegree, maxSize), (num, denom), (n1, n2))
intervalTimesInner
cEncl pEncl scaledEncl
where
scaledEncl = enclScale maxDegree maxSize cB pEncl
pEncl = makeThickEncl maxDegree maxSize p1 p2
cEncl = enclConst cB
cB = numB / denomB
numB = fromInteger $ toInteger num
denomB = fromInteger $ toInteger denom
prop_enclScale_ParalEncl_consistent
reportFileName
(Deg20Size20 maxDegree maxSize,
SmallRatio cNum cDenom,
(SmallRatio wNum wDenom, PSize30 (n, p))) =
enclAtKeyPointsPointwiseBinaryDownUpConsistent
reportFileName
((maxDegree, maxSize), (cNum, cDenom), ((wNum, wDenom), n))
intervalTimesInner
cEncl pEncl scaledEncl
where
scaledEncl = enclScale maxDegree maxSize cB pEncl
pEncl = makeParalEncl p wNum wDenom
cEncl = enclConst cB
cB = cNumB / cDenomB
cNumB = fromInteger $ toInteger cNum
cDenomB = fromInteger $ toInteger cDenom