packages feed

elliptic-integrals 0.1.0.0 → 0.1.0.1

raw patch · 6 files changed

+85/−74 lines, 6 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Math.EllipticIntegrals: carlsonRC :: Cplx -> Cplx -> Cplx
+ Math.EllipticIntegrals: carlsonRC :: Complex Double -> Complex Double -> Complex Double
- Math.EllipticIntegrals: carlsonRC' :: Double -> Cplx -> Cplx -> Cplx
+ Math.EllipticIntegrals: carlsonRC' :: Double -> Complex Double -> Complex Double -> Complex Double
- Math.EllipticIntegrals: carlsonRD :: Cplx -> Cplx -> Cplx -> Cplx
+ Math.EllipticIntegrals: carlsonRD :: Complex Double -> Complex Double -> Complex Double -> Complex Double
- Math.EllipticIntegrals: carlsonRD' :: Double -> Cplx -> Cplx -> Cplx -> Cplx
+ Math.EllipticIntegrals: carlsonRD' :: Double -> Complex Double -> Complex Double -> Complex Double -> Complex Double
- Math.EllipticIntegrals: carlsonRF :: Cplx -> Cplx -> Cplx -> Cplx
+ Math.EllipticIntegrals: carlsonRF :: Complex Double -> Complex Double -> Complex Double -> Complex Double
- Math.EllipticIntegrals: carlsonRF' :: Double -> Cplx -> Cplx -> Cplx -> Cplx
+ Math.EllipticIntegrals: carlsonRF' :: Double -> Complex Double -> Complex Double -> Complex Double -> Complex Double
- Math.EllipticIntegrals: carlsonRG :: Cplx -> Cplx -> Cplx -> Cplx
+ Math.EllipticIntegrals: carlsonRG :: Complex Double -> Complex Double -> Complex Double -> Complex Double
- Math.EllipticIntegrals: carlsonRG' :: Double -> Cplx -> Cplx -> Cplx -> Cplx
+ Math.EllipticIntegrals: carlsonRG' :: Double -> Complex Double -> Complex Double -> Complex Double -> Complex Double
- Math.EllipticIntegrals: carlsonRJ :: Cplx -> Cplx -> Cplx -> Cplx -> Cplx
+ Math.EllipticIntegrals: carlsonRJ :: Complex Double -> Complex Double -> Complex Double -> Complex Double -> Complex Double
- Math.EllipticIntegrals: carlsonRJ' :: Double -> Cplx -> Cplx -> Cplx -> Cplx -> Cplx
+ Math.EllipticIntegrals: carlsonRJ' :: Double -> Complex Double -> Complex Double -> Complex Double -> Complex Double -> Complex Double
- Math.EllipticIntegrals: ellipticE :: Cplx -> Cplx -> Cplx
+ Math.EllipticIntegrals: ellipticE :: Complex Double -> Complex Double -> Complex Double
- Math.EllipticIntegrals: ellipticE' :: Double -> Cplx -> Cplx -> Cplx
+ Math.EllipticIntegrals: ellipticE' :: Double -> Complex Double -> Complex Double -> Complex Double
- Math.EllipticIntegrals: ellipticF :: Cplx -> Cplx -> Cplx
+ Math.EllipticIntegrals: ellipticF :: Complex Double -> Complex Double -> Complex Double
- Math.EllipticIntegrals: ellipticF' :: Double -> Cplx -> Cplx -> Cplx
+ Math.EllipticIntegrals: ellipticF' :: Double -> Complex Double -> Complex Double -> Complex Double
- Math.EllipticIntegrals: ellipticPI :: Cplx -> Cplx -> Cplx -> Cplx
+ Math.EllipticIntegrals: ellipticPI :: Complex Double -> Complex Double -> Complex Double -> Complex Double
- Math.EllipticIntegrals: ellipticPI' :: Double -> Cplx -> Cplx -> Cplx -> Cplx
+ Math.EllipticIntegrals: ellipticPI' :: Double -> Complex Double -> Complex Double -> Complex Double -> Complex Double
- Math.EllipticIntegrals: jacobiZeta :: Cplx -> Cplx -> Cplx
+ Math.EllipticIntegrals: jacobiZeta :: Complex Double -> Complex Double -> Complex Double
- Math.EllipticIntegrals: jacobiZeta' :: Double -> Cplx -> Cplx -> Cplx
+ Math.EllipticIntegrals: jacobiZeta' :: Double -> Complex Double -> Complex Double -> Complex Double

Files

CHANGELOG.md view
@@ -1,4 +1,9 @@+0.1.0.1+-------+Removed a useless type alias.++ 0.1.0.0 --------* initial release+Initial release 
README.md view
@@ -1,3 +1,9 @@ # elliptic-integrals +<!-- badges: start -->+[![Stack-lts](https://github.com/stla/elliptic-integrals/actions/workflows/Stack-lts.yml/badge.svg)](https://github.com/stla/elliptic-integrals/actions/workflows/Stack-lts.yml)+[![Stack-nightly](https://github.com/stla/elliptic-integrals/actions/workflows/Stack-nightly.yml/badge.svg)](https://github.com/stla/elliptic-integrals/actions/workflows/Stack-nightly.yml)+<!-- badges: end -->++ Evaluation of the Carlson elliptic integrals and the incomplete elliptic integrals with complex arguments.
elliptic-integrals.cabal view
@@ -1,5 +1,5 @@ name:                elliptic-integrals-version:             0.1.0.0+version:             0.1.0.1 synopsis:            Carlson Elliptic Integrals and Incomplete Elliptic Integrals description:         Evaluation of the Carlson elliptic integrals and the incomplete elliptic integrals with complex arguments. homepage:            https://github.com/stla/elliptic-integrals#readme
src/Math/EllipticIntegrals/Carlson.hs view
@@ -5,8 +5,8 @@   carlsonRC, carlsonRC',   carlsonRG, carlsonRG')   where-import           Data.Complex-import           Math.EllipticIntegrals.Internal+import Data.Complex                    ( magnitude, Complex )+import Math.EllipticIntegrals.Internal ( Cplx, toCplx, atanC )  rf_ :: Cplx -> Cplx -> Cplx -> Double -> ((Double,Double,Double), Cplx) rf_ x y z err =@@ -22,10 +22,10 @@ -- | Carlson integral RF. carlsonRF' ::       Double -- ^ bound on the relative error-  -> Cplx   -- ^ first variable-  -> Cplx   -- ^ second variable -  -> Cplx   -- ^ third variable -  -> Cplx+  -> Complex Double -- ^ first variable+  -> Complex Double -- ^ second variable +  -> Complex Double -- ^ third variable +  -> Complex Double carlsonRF' err x y z =   if zeros > 1     then error "At most one of x, y, z can be 0"@@ -39,10 +39,10 @@  -- | Carlson integral RF. carlsonRF :: -     Cplx   -- ^ first variable-  -> Cplx   -- ^ second variable -  -> Cplx   -- ^ third variable -  -> Cplx+     Complex Double -- ^ first variable+  -> Complex Double -- ^ second variable +  -> Complex Double -- ^ third variable +  -> Complex Double carlsonRF = carlsonRF' 1e-15  rd_ :: Cplx -> Cplx -> Cplx -> Cplx -> Cplx -> Double ->@@ -61,10 +61,10 @@ -- | Carlson integral RD. carlsonRD' ::      Double -- ^ bound on the relative error-  -> Cplx   -- ^ first variable-  -> Cplx   -- ^ second variable -  -> Cplx   -- ^ third variable -  -> Cplx+  -> Complex Double -- ^ first variable+  -> Complex Double -- ^ second variable +  -> Complex Double -- ^ third variable +  -> Complex Double carlsonRD' err x y z =   if zeros > 1     then error "At most one of x, y, z can be 0"@@ -83,10 +83,10 @@  -- | Carlson integral RD. carlsonRD ::-     Cplx   -- ^ first variable-  -> Cplx   -- ^ second variable -  -> Cplx   -- ^ third variable -  -> Cplx+     Complex Double -- ^ first variable+  -> Complex Double -- ^ second variable +  -> Complex Double -- ^ third variable +  -> Complex Double carlsonRD = carlsonRD' 1e-15  rj_ :: Cplx -> Cplx -> Cplx -> Cplx -> Cplx -> Double -> Cplx -> Int ->@@ -111,11 +111,11 @@ -- | Carlson integral RJ. carlsonRJ' ::      Double -- ^ bound on the relative error-  -> Cplx   -- ^ first variable-  -> Cplx   -- ^ second variable -  -> Cplx   -- ^ third variable -  -> Cplx   -- ^ fourth variable -  -> Cplx+  -> Complex Double -- ^ first variable+  -> Complex Double -- ^ second variable +  -> Complex Double -- ^ third variable +  -> Complex Double -- ^ fourth variable +  -> Complex Double carlsonRJ' err x y z p =   if zeros > 1     then error "At most one of x, y, z, p can be 0"@@ -145,11 +145,11 @@  -- | Carlson integral RJ. carlsonRJ ::-     Cplx   -- ^ first variable-  -> Cplx   -- ^ second variable -  -> Cplx   -- ^ third variable -  -> Cplx   -- ^ fourth variable -  -> Cplx+     Complex Double -- ^ first variable+  -> Complex Double -- ^ second variable +  -> Complex Double -- ^ third variable +  -> Complex Double -- ^ fourth variable +  -> Complex Double carlsonRJ = carlsonRJ' 1e-15  @@ -169,9 +169,9 @@ -- | Carlson integral RC. carlsonRC' ::      Double -- ^ bound on the relative error-  -> Cplx   -- ^ first variable-  -> Cplx   -- ^ second variable -  -> Cplx+  -> Complex Double -- ^ first variable+  -> Complex Double -- ^ second variable +  -> Complex Double carlsonRC' err x y =   if y == 0     then error "y cannot be 0"@@ -188,19 +188,19 @@  -- | Carlson integral RC. carlsonRC ::-     Cplx   -- ^ first variable-  -> Cplx   -- ^ second variable -  -> Cplx+     Complex Double -- ^ first variable+  -> Complex Double -- ^ second variable +  -> Complex Double carlsonRC = carlsonRC' 1e-15   -- | Carlson integral RG. carlsonRG' ::      Double -- ^ bound on the relative error passed to `CarlsonRD'`-  -> Cplx   -- ^ first variable-  -> Cplx   -- ^ second variable -  -> Cplx   -- ^ third variable -  -> Cplx+  -> Complex Double -- ^ first variable+  -> Complex Double -- ^ second variable +  -> Complex Double -- ^ third variable +  -> Complex Double carlsonRG' err x y z =   if zeros > 1     then sqrt(x+y+z) / 2@@ -216,9 +216,9 @@  -- | Carlson integral RG. carlsonRG ::-     Cplx   -- ^ first variable-  -> Cplx   -- ^ second variable -  -> Cplx   -- ^ third variable -  -> Cplx+     Complex Double -- ^ first variable+  -> Complex Double -- ^ second variable +  -> Complex Double -- ^ third variable +  -> Complex Double carlsonRG = carlsonRG' 1e-15 
src/Math/EllipticIntegrals/Elliptic.hs view
@@ -1,15 +1,15 @@ module Math.EllipticIntegrals.Elliptic   where-import Math.EllipticIntegrals.Carlson-import Data.Complex-import Math.EllipticIntegrals.Internal+import Math.EllipticIntegrals.Carlson  ( carlsonRF', carlsonRD', carlsonRJ' )+import Data.Complex                    ( realPart, Complex )+import Math.EllipticIntegrals.Internal ( toCplx, getPhiK )  -- | Elliptic integral of the first kind. ellipticF' ::       Double -- ^ bound on the relative error passed to `carlsonRF'`-  -> Cplx   -- ^ amplitude-  -> Cplx   -- ^ parameter-  -> Cplx+  -> Complex Double -- ^ amplitude+  -> Complex Double -- ^ parameter+  -> Complex Double ellipticF' err phi m   | phi == 0 =     toCplx 0@@ -32,17 +32,17 @@  -- | Elliptic integral of the first kind. ellipticF :: -     Cplx -- ^ amplitude-  -> Cplx -- ^ parameter-  -> Cplx+     Complex Double -- ^ amplitude+  -> Complex Double -- ^ parameter+  -> Complex Double ellipticF = ellipticF' 1e-15  -- | Elliptic integral of the second kind. ellipticE' ::       Double -- ^ bound on the relative error passed to `carlsonRF'` and `carlsonRD'` -  -> Cplx   -- ^ amplitude-  -> Cplx   -- ^ parameter-  -> Cplx+  -> Complex Double -- ^ amplitude+  -> Complex Double -- ^ parameter+  -> Complex Double ellipticE' err phi m   | phi == 0 =     toCplx 0@@ -62,18 +62,18 @@  -- | Elliptic integral of the second kind. ellipticE :: -     Cplx -- ^ amplitude-  -> Cplx -- ^ parameter-  -> Cplx+     Complex Double -- ^ amplitude+  -> Complex Double -- ^ parameter+  -> Complex Double ellipticE = ellipticE' 1e-15  -- | Elliptic integral of the third kind. ellipticPI' ::       Double -- ^ bound on the relative error passed to `carlsonRF'` and `carlsonRJ'` -  -> Cplx   -- ^ amplitude-  -> Cplx   -- ^ characteristic-  -> Cplx   -- ^ parameter-  -> Cplx+  -> Complex Double -- ^ amplitude+  -> Complex Double -- ^ characteristic+  -> Complex Double -- ^ parameter+  -> Complex Double ellipticPI' err phi n m   | phi == 0 =     toCplx 0@@ -97,18 +97,18 @@  -- | Elliptic integral of the third kind. ellipticPI ::-     Cplx -- ^ amplitude-  -> Cplx -- ^ characteristic-  -> Cplx -- ^ parameter-  -> Cplx+     Complex Double -- ^ amplitude+  -> Complex Double -- ^ characteristic+  -> Complex Double -- ^ parameter+  -> Complex Double ellipticPI = ellipticPI' 1e-15  -- | Jacobi zeta function. jacobiZeta' ::      Double -- ^ bound on the relative error passed to `ellipticF'` and `ellipticE'` -  -> Cplx   -- ^ amplitude-  -> Cplx   -- ^ parameter-  -> Cplx+  -> Complex Double -- ^ amplitude+  -> Complex Double -- ^ parameter+  -> Complex Double jacobiZeta' err phi m =   if m == 1     then@@ -122,8 +122,8 @@  -- | Jacobi zeta function. jacobiZeta ::-     Cplx -- ^ amplitude-  -> Cplx -- ^ parameter-  -> Cplx+     Complex Double -- ^ amplitude+  -> Complex Double -- ^ parameter+  -> Complex Double jacobiZeta = jacobiZeta' 1e-15 
src/Math/EllipticIntegrals/Internal.hs view
@@ -1,6 +1,6 @@ module Math.EllipticIntegrals.Internal   where-import Data.Complex+import Data.Complex ( realPart, Complex(..) )  type Cplx = Complex Double