packages feed

finite-field 0.7.0 → 0.8.0

raw patch · 8 files changed

+80/−73 lines, 8 filesdep −algebraPVP ok

version bump matches the API change (PVP)

Dependencies removed: algebra

API changes (from Hackage documentation)

- Data.FiniteField.PrimeField: instance Nat p => Abelian (PrimeField p)
- Data.FiniteField.PrimeField: instance Nat p => Additive (PrimeField p)
- Data.FiniteField.PrimeField: instance Nat p => Characteristic (PrimeField p)
- Data.FiniteField.PrimeField: instance Nat p => Commutative (PrimeField p)
- Data.FiniteField.PrimeField: instance Nat p => Division (PrimeField p)
- Data.FiniteField.PrimeField: instance Nat p => Field (PrimeField p)
- Data.FiniteField.PrimeField: instance Nat p => Group (PrimeField p)
- Data.FiniteField.PrimeField: instance Nat p => LeftModule Integer (PrimeField p)
- Data.FiniteField.PrimeField: instance Nat p => LeftModule Natural (PrimeField p)
- Data.FiniteField.PrimeField: instance Nat p => Monoidal (PrimeField p)
- Data.FiniteField.PrimeField: instance Nat p => Multiplicative (PrimeField p)
- Data.FiniteField.PrimeField: instance Nat p => Rig (PrimeField p)
- Data.FiniteField.PrimeField: instance Nat p => RightModule Integer (PrimeField p)
- Data.FiniteField.PrimeField: instance Nat p => RightModule Natural (PrimeField p)
- Data.FiniteField.PrimeField: instance Nat p => Ring (PrimeField p)
- Data.FiniteField.PrimeField: instance Nat p => Semiring (PrimeField p)
- Data.FiniteField.PrimeField: instance Nat p => Unital (PrimeField p)

Files

.travis.yml view
@@ -1,1 +1,55 @@-language: haskell+# NB: don't set `language: haskell` here++# The following enables several GHC versions to be tested; often it's enough to test only against the last release in a major GHC version. Feel free to omit lines listings versions you don't need/want testing for.+env:+# - GHCVER=6.12.3+# - GHCVER=7.0.1+# - GHCVER=7.0.2+# - GHCVER=7.0.3+# - GHCVER=7.0.4+# - GHCVER=7.2.1+# - GHCVER=7.2.2+# - GHCVER=7.4.1+# - GHCVER=7.4.2+# - GHCVER=7.6.1+# - GHCVER=7.6.2+ - GHCVER=7.6.3+# - GHCVER=7.8.1 # see note about Alex/Happy+ - GHCVER=7.8.2 # see note about Alex/Happy+# - GHCVER=head  # see section about GHC HEAD snapshots++# Note: the distinction between `before_install` and `install` is not important.+before_install:+ - travis_retry sudo add-apt-repository -y ppa:hvr/ghc+ - travis_retry sudo apt-get update+ - travis_retry sudo apt-get install cabal-install-1.18 ghc-$GHCVER # see note about happy/alex+ - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/1.18/bin:$PATH+ - |+   if [ $GHCVER = "head" ] || [ ${GHCVER%.*} = "7.8" ]; then+     travis_retry sudo apt-get install happy-1.19.3 alex-3.1.3+     export PATH=/opt/alex/3.1.3/bin:/opt/happy/1.19.3/bin:$PATH+   else+     travis_retry sudo apt-get install happy alex+   fi++install:+ - cabal update+ - cabal install --only-dependencies --enable-tests -v2  # -v2 provides useful information for debugging++# Here starts the actual work to be performed for the package under test; any command which exits with a non-zero exit code causes the build to fail.+script:+ - cabal configure --enable-tests -v2  # -v2 provides useful information for debugging+ - cabal build   # this builds all libraries and executables (including tests/benchmarks)+ - cabal test+ - cabal check+ - cabal sdist   # tests that a source-distribution can be generated++# The following scriptlet checks that the resulting source distribution can be built & installed+ - export SRC_TGZ=$(cabal-1.18 info . | awk '{print $2 ".tar.gz";exit}') ;+   cd dist/;+   if [ -f "$SRC_TGZ" ]; then+      cabal install "$SRC_TGZ";+   else+      echo "expected '$SRC_TGZ' not found";+      exit 1;+   fi
+ CHANGELOG.markdown view
@@ -0,0 +1,17 @@+0.8.0+-----+* remove dependency on `algebra` package, since it is outdated and not compatible with recent version of other packages++0.7.0+-----+* use extended GCD to compute reciprocals+* conform with the addition of SomeNat type to type-level-numbers-0.1.1.0.++0.6.0+-----+* add Hashable instance+* add allValues to FiniteField class+  .+0.5.0+-----+* introduce FiniteField class
README.md view
@@ -1,2 +1,4 @@ finite-field ============++[![Build Status](https://secure.travis-ci.org/msakai/finite-field.png?branch=master)](http://travis-ci.org/msakai/finite-field)
finite-field.cabal view
@@ -1,5 +1,5 @@ Name:		finite-field-Version:	0.7.0+Version:	0.8.0 License:	BSD3 License-File:	COPYING Author:		Masahiro Sakai (masahiro.sakai@gmail.com)@@ -10,29 +10,11 @@ Description:   This is an implementation of finite fields.   Currently only prime fields are supported.-  .-  Changes in 0.7.0-  .-  * use extended GCD to compute reciprocals-  .-  * conform with the addition of SomeNat type to type-level-numbers-0.1.1.0.-  .-  Changes in 0.6.0-  .-  * add Hashable instance-  .-  Changes in 0.6.0-  .-  * add allValues to FiniteField class-  .-  Changes in 0.5.0-  .-  * introduce FiniteField class- Bug-Reports:	https://github.com/msakai/finite-field/issues Extra-Source-Files:    README.md    COPYING+   CHANGELOG.markdown    .travis.yml    .gitignore Build-Type: Simple@@ -44,7 +26,7 @@ Library   Hs-source-dirs: src   Build-Depends:-     base >=4 && <5, template-haskell, deepseq, hashable, type-level-numbers >=0.1.1.0 && <0.2.0.0, algebra >=3.1+     base >=4 && <5, template-haskell, deepseq, hashable, type-level-numbers >=0.1.1.0 && <0.2.0.0   Default-Language: Haskell2010   Other-Extensions:      DeriveDataTypeable
src/Data/FiniteField.hs view
@@ -1,3 +1,4 @@+{-# OPTIONS_GHC -Wall #-} ----------------------------------------------------------------------------- -- | -- module      :  Data.FiniteField
src/Data/FiniteField/Base.hs view
@@ -1,3 +1,4 @@+{-# OPTIONS_GHC -Wall #-} ----------------------------------------------------------------------------- -- | -- module      :  Data.FiniteField.Base@@ -12,9 +13,6 @@ module Data.FiniteField.Base   ( FiniteField (..)   ) where--import Data.Ratio-import qualified Numeric.Algebra as Alg  -- | Type class for finite fields class Fractional k => FiniteField k where
src/Data/FiniteField/PrimeField.hs view
@@ -31,7 +31,6 @@ import Data.Ratio (denominator, numerator) import Data.Typeable import qualified Language.Haskell.TH as TH-import qualified Numeric.Algebra as Alg import qualified TypeLevel.Number.Nat as TL import Data.FiniteField.Base @@ -114,53 +113,6 @@     f (g,u,v)       | g < 0 = (-g, -u, -v)       | otherwise = (g,u,v)---- -----------------------------------------------------------------------------instance TL.Nat p => Alg.Multiplicative (PrimeField p) where-  (*) = (*)--instance TL.Nat p => Alg.Commutative (PrimeField p)--instance TL.Nat p => Alg.Unital (PrimeField p) where-  one = 1--instance TL.Nat p => Alg.Division (PrimeField p) where-  recip = recip--instance TL.Nat p => Alg.Additive (PrimeField p) where-  (+) = (+)--instance TL.Nat p => Alg.Abelian (PrimeField p)--instance TL.Nat p => Alg.Semiring (PrimeField p)--instance TL.Nat p => Alg.LeftModule Alg.Natural (PrimeField p) where-  n .* a = fromIntegral n * a--instance TL.Nat p => Alg.RightModule Alg.Natural (PrimeField p) where-  a *. n = a * fromIntegral n--instance TL.Nat p => Alg.Monoidal (PrimeField p) where-  zero = 0--instance TL.Nat p => Alg.LeftModule Integer (PrimeField p) where-  n .* a = fromIntegral n * a--instance TL.Nat p => Alg.RightModule Integer (PrimeField p) where-  a *. n = a * fromIntegral n--instance TL.Nat p => Alg.Group (PrimeField p) where-  negate = negate--instance TL.Nat p => Alg.Rig (PrimeField p)--instance TL.Nat p => Alg.Ring (PrimeField p)--instance TL.Nat p => Alg.Characteristic (PrimeField p) where-  char _ = TL.toInt (undefined :: p)--instance TL.Nat p => Alg.Field (PrimeField p)  -- --------------------------------------------------------------------------- 
test/TestPrimeField.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE TemplateHaskell, ScopedTypeVariables #-}+{-# OPTIONS_GHC -fcontext-stack=32 #-}  import Test.HUnit hiding (Test) import Test.QuickCheck