packages feed

toysolver-0.4.0: toysolver.cabal

Name:		toysolver
Version:	0.4.0
License:	BSD3
License-File:	COPYING
Author:		Masahiro Sakai (masahiro.sakai@gmail.com)
Maintainer:	masahiro.sakai@gmail.com
Category:	Algorithms, Optimisation, Optimization, Theorem Provers, Constraints, Logic
Cabal-Version:	>= 1.10
Synopsis:	Assorted decision procedures for SAT, Max-SAT, PB, MIP, etc
Description:	Toy-level implementation of some decision procedures
Bug-Reports:	https://github.com/msakai/toysolver/issues
Tested-With:
   GHC ==7.6.3
   GHC ==7.8.3
   GHC ==7.10.3
Extra-Source-Files:
   README.md
   CHANGELOG.markdown
   COPYING
   COPYING-GPL
   .ghci
   .travis.yml
   appveyor.yml
   build_bdist_linux.sh
   build_bdist_macos.sh
   build_bdist_win32.sh
   build_bdist_win64.sh
   build_bdist_maxsat_evaluation.sh
   build_bdist_pb_evaluation.sh
   misc/maxsat/toysat/README.md
   misc/maxsat/toysat/toysat
   misc/maxsat/toysat_ls/README.md
   misc/maxsat/toysat_ls/toysat_ls
   misc/pb/README.md
   src/TseitinEncode.hs
   src/ToySolver/Data/Polyhedron.hs
   samples/gcnf/*.cnf
   samples/gcnf/*.gcnf
   samples/gcnf/edn_20403_8.cnf_0.03000000.unsat.gcnf
   samples/lp/*.lp
   samples/lp/error/*.lp
   samples/maxsat/*.cnf
   samples/maxsat/t3pm3-5555.spn.cnf
   samples/maxsat/*.wcnf
   samples/maxsat/ram_k3_n10.ra1.wcnf
   samples/mps/*.mps
   samples/pbo/*.opb
   samples/pbs/*.opb
   samples/pbs/normalized-1096.cudf.paranoid.opb
   samples/sat/*.cnf
   samples/wbo/*.wbo
   samples/sdp/*.dat
   samples/sdp/*.dat-s
   samples/smt/*.smt2
   samples/smt/*.ys
   samples/qbf/*.qdimacs
   samples/programs/sudoku/*.sdk
   samples/programs/knapsack/README.md
   samples/programs/knapsack/*.txt
   samples/programs/htc/test1.dat
   samples/programs/htc/test2.dat
   samples/programs/svm2lp/a1a
   samples/programs/nonogram/*.cwd
   samples/programs/nonogram/README.md
   benchmarks/UF250.1065.100/*.cnf
   benchmarks/UUF250.1065.100/*.cnf
Build-Type: Simple

Flag ForceChar8
  Description: set default encoding to char8 (not to use iconv)
  Default: False
  Manual: True

Flag LinuxStatic
  Description: build statically linked binaries
  Default: False
  Manual: True

Flag BuildToyFMF
  Description: build toyfmf command
  Default: False
  Manual: True

Flag BuildSamplePrograms
  Description: build sample programs
  Default: False
  Manual: True

Flag BuildMiscPrograms
  Description: build misc programs
  Default: False
  Manual: True

Flag Exceptions06
  Description: use exceptions >=0.6
  Manual: False

Flag Time15
  Description: use time >=1.5.0
  Manual: False

Flag Transformers051
  Description: use transformers >=0.5.1
  Manual: False

Flag UseHaskeline
  Description: use haskeline package
  Manual: True
  Default: True

source-repository head
  type:     git
  location: git://github.com/msakai/toysolver.git

Library
  Exposed: True
  Hs-source-dirs: src
  Build-Depends:
     base >=4.6 && <5,
     template-haskell,
     -- IntMap.mergeWithKey and IntMap.toDescList require containers >=0.5.0
     containers >=0.5.0,
     unordered-containers >=0.2.3 && <0.3.0,
     transformers >=0.2,
     transformers-compat >=0.3,
     mtl >=2.1.2,
     array >=0.4.0.0,
     stm >=2.3,
     parsec >=3.1.2 && <4,
     bytestring >=0.9.2.1 && <0.11,
     bytestring-builder,
     filepath,
     deepseq,
     time,
     primes,
     process >=1.1.0.2,
     parse-dimacs,
     queue,
     heaps,
     vector,
     vector-space >=0.8.6,
     multiset,
     prettyclass >=1.0.0,
     type-level-numbers >=0.1.1.0 && <0.2.0.0,
     hashable >=1.1.2.5 && <1.3.0.0,
     intern >=0.9.1.2 && <1.0.0.0,
     loop >=0.2.0 && < 1.0.0,
     data-default-class,
     -- createSystemRandom requires mwc-random >=0.13.1.0
     mwc-random >=0.13.1 && <0.14,
     semigroups >=0.17,
     OptDir,
     extended-reals >=0.1 && <1.0,
     data-interval >=1.0.1 && <1.3.0,
     finite-field >=0.7.0 && <1.0.0,
     sign >=0.2.0 && <1.0.0,
     pseudo-boolean >=0.1.3.0 && <0.2.0.0
  -- NOTE: temporary-1.2.0.2 does not work with exceptions-0.6
  if flag(Exceptions06)
     Build-Depends: temporary >1.2.0.2, exceptions >=0.6
  else
     Build-Depends: temporary >=1.2, exceptions ==0.5
  if impl(ghc <7.7)
    Build-Depends:
      -- vector-space depends on MemoTrie, but MemoTrie >=0.6.3 uses extensions that are not available on GHC 7.6.
      MemoTrie <=0.6.2
  if flag(Transformers051)
     Build-Depends: transformers >=0.5.1.0
  else
     Build-Depends: transformers <0.5.1.0
  if impl(ghc)
     Build-Depends: ghc-prim
  Default-Language: Haskell2010
  Other-Extensions:
     BangPatterns
     CPP
     DeriveDataTypeable
     FlexibleContexts
     FlexibleInstances
     FunctionalDependencies
     GeneralizedNewtypeDeriving
     MultiParamTypeClasses
     OverloadedStrings
     RecursiveDo
     Rank2Types
     ScopedTypeVariables
     TemplateHaskell
     TypeFamilies
     TypeSynonymInstances
  if impl(ghc)
     Other-Extensions:
        MagicHash
        UnboxedTuples
  Exposed-Modules:
     ToySolver.Arith.BoundsInference
     ToySolver.Arith.CAD
     ToySolver.Arith.ContiTraverso
     ToySolver.Arith.Cooper
     ToySolver.Arith.Cooper.Base
     ToySolver.Arith.Cooper.FOL
     ToySolver.Arith.FourierMotzkin
     ToySolver.Arith.FourierMotzkin.Base
     ToySolver.Arith.FourierMotzkin.FOL
     ToySolver.Arith.FourierMotzkin.Optimization
     ToySolver.Arith.LPSolver
     ToySolver.Arith.LPSolverHL
     ToySolver.Arith.LPUtil
     ToySolver.Arith.MIPSolverHL
     ToySolver.Arith.MIPSolver2
     ToySolver.Arith.OmegaTest
     ToySolver.Arith.OmegaTest.Base
     ToySolver.Arith.Simplex
     ToySolver.Arith.Simplex2
     ToySolver.Arith.VirtualSubstitution
     ToySolver.EUF.CongruenceClosure
     ToySolver.EUF.EUFSolver
     ToySolver.EUF.FiniteModelFinder
     ToySolver.Combinatorial.HittingSet.Simple
     ToySolver.Combinatorial.HittingSet.HTCBDD
     ToySolver.Combinatorial.HittingSet.SHD
     ToySolver.Combinatorial.HittingSet.FredmanKhachiyan1996
     ToySolver.Combinatorial.HittingSet.GurvichKhachiyan1999
     ToySolver.Combinatorial.Knapsack.BB
     ToySolver.Combinatorial.Knapsack.DPDense
     ToySolver.Combinatorial.Knapsack.DPSparse
     ToySolver.Combinatorial.SubsetSum
     ToySolver.Converter.ObjType
     ToySolver.Converter.MIP2SMT
     ToySolver.Converter.MaxSAT2IP
     ToySolver.Converter.MaxSAT2NLPB
     ToySolver.Converter.MaxSAT2WBO
     ToySolver.Converter.PB2IP
     ToySolver.Converter.PB2LSP
     ToySolver.Converter.PB2WBO
     ToySolver.Converter.PBSetObj
     ToySolver.Converter.PB2SMP
     ToySolver.Converter.SAT2PB
     ToySolver.Converter.SAT2IP
     ToySolver.Converter.WBO2PB
     ToySolver.Data.AlgebraicNumber.Complex
     ToySolver.Data.AlgebraicNumber.Real
     ToySolver.Data.AlgebraicNumber.Root
     ToySolver.Data.AlgebraicNumber.Sturm
     ToySolver.Data.Boolean
     ToySolver.Data.BoolExpr
     ToySolver.Data.Delta
     ToySolver.Data.DNF
     ToySolver.Data.FOL.Arith
     ToySolver.Data.FOL.Formula
     ToySolver.Data.LA
     ToySolver.Data.LA.FOL
     ToySolver.Data.LBool
     ToySolver.Data.MIP
     ToySolver.Data.MIP.Base
     ToySolver.Data.MIP.LPFile
     ToySolver.Data.MIP.MPSFile
     ToySolver.Data.OrdRel
     ToySolver.Data.Polynomial
     ToySolver.Data.Polynomial.Factorization.FiniteField
     ToySolver.Data.Polynomial.Factorization.Hensel
     ToySolver.Data.Polynomial.Factorization.Hensel.Internal
     ToySolver.Data.Polynomial.Factorization.Integer
     ToySolver.Data.Polynomial.Factorization.Kronecker
     ToySolver.Data.Polynomial.Factorization.Rational
     ToySolver.Data.Polynomial.Factorization.SquareFree
     ToySolver.Data.Polynomial.Factorization.Zassenhaus
     ToySolver.Data.Polynomial.GroebnerBasis
     ToySolver.Data.Polynomial.Interpolation.Lagrange
     ToySolver.Data.Var
     ToySolver.SAT
     ToySolver.SAT.Integer
     ToySolver.SAT.MUS
     ToySolver.SAT.MUS.CAMUS
     ToySolver.SAT.MUS.DAA
     ToySolver.SAT.MUS.Types
     ToySolver.SAT.MUS.QuickXplain
     ToySolver.SAT.PBNLC
     ToySolver.SAT.PBO
     ToySolver.SAT.PBO.Context
     ToySolver.SAT.PBO.BC
     ToySolver.SAT.PBO.BCD
     ToySolver.SAT.PBO.BCD2
     ToySolver.SAT.PBO.MSU4
     ToySolver.SAT.PBO.UnsatBased
     ToySolver.SAT.TheorySolver
     ToySolver.SAT.TseitinEncoder
     ToySolver.SAT.Types
     ToySolver.SAT.Printer
     ToySolver.SMT
     ToySolver.Text.GCNF
     ToySolver.Text.GurobiSol
     ToySolver.Text.MaxSAT
     ToySolver.Text.SDPFile
     ToySolver.Internal.Data.IndexedPriorityQueue
     ToySolver.Internal.Data.IOURef
     ToySolver.Internal.Data.PriorityQueue
     ToySolver.Internal.Data.SeqQueue
     ToySolver.Internal.Data.Vec
     ToySolver.Internal.ProcessUtil
     ToySolver.Internal.TextUtil
     ToySolver.Internal.Util
     ToySolver.Wang
     ToySolver.Version
  Other-Modules:
     ToySolver.Data.AlgebraicNumber.Graeffe
     ToySolver.Data.Polynomial.Base
     ToySolver.Version.TH
     Paths_toysolver
  -- GHC-Prof-Options: -auto-all

Executable toysolver
  Main-is: toysolver.hs
  HS-Source-Dirs: toysolver
  Build-Depends:
    base,
    containers,
    array,
    data-default-class,
    filepath,
    OptDir,
    parse-dimacs,
    pseudo-boolean,
    toysolver
  Default-Language: Haskell2010
  if impl(ghc)
    GHC-Options: -rtsopts -threaded
  if flag(LinuxStatic)
    GHC-Options: -static -optl-static -optl-pthread
  -- GHC-Prof-Options: -auto-all

Executable toysat
  Main-is: toysat.hs
  Other-Modules: UBCSAT
  HS-Source-Dirs: toysat
  Build-Depends:
    base,
    data-default-class,
    mwc-random,
    containers,
    array,
    process >=1.1.0.2,
    parsec,
    bytestring,
    filepath,
    parse-dimacs,
    unbounded-delays,
    vector,
    vector-space,
    pseudo-boolean,
    toysolver
  if flag(Time15)
    Build-Depends: time >=1.5.0
  else
    Build-Depends: time <1.5.0, old-locale
  Default-Language: Haskell2010
  Other-Extensions: ScopedTypeVariables, CPP
  if impl(ghc)
    GHC-Options: -rtsopts
  -- GHC-Prof-Options: -auto-all
  if flag(ForceChar8) && impl(ghc)
    Build-Depends: base >=4.5
    CPP-OPtions: "-DFORCE_CHAR8"
  if flag(LinuxStatic)
    GHC-Options: -static -optl-static -optl-pthread

Executable toysmt
  HS-Source-Dirs: toysmt, Smtlib
  Main-is: toysmt.hs
  Other-Modules:
     ToySolver.SMT.SMTLIB2Solver,
     -- Following modules are copied from SmtLib package.
     -- http://hackage.haskell.org/package/SmtLib
     -- https://github.com/MfesGA/Smtlib
     Smtlib.Parsers.CommonParsers,
     Smtlib.Parsers.ResponseParsers,
     Smtlib.Parsers.CommandsParsers,
     Smtlib.Syntax.Syntax,
     Smtlib.Syntax.ShowSL
  Build-Depends:
    base,
    containers,
    data-default-class,
    mtl,
    parsec,
    transformers,
    transformers-compat,
    toysolver
  if flag(UseHaskeline)
    Build-Depends: haskeline >=0.7 && <0.8
    CPP-Options: "-DUSE_HASKELINE_PACKAGE"
  Default-Language: Haskell2010
  Other-Extensions: ScopedTypeVariables, CPP
  if impl(ghc >= 7)
    GHC-Options: -rtsopts
  -- GHC-Prof-Options: -auto-all
  if flag(ForceChar8) && impl(ghc)
    Build-Depends: base >=4.5
    CPP-OPtions: "-DFORCE_CHAR8"
  if flag(LinuxStatic)
    GHC-Options: -static -optl-static -optl-pthread

Executable toyfmf
  If !flag(BuildToyFMF)
    Buildable: False
  Main-is: toyfmf.hs
  HS-Source-Dirs: toyfmf
  If flag(BuildToyFMF)
    Build-Depends:
      base,
      containers,
      toysolver,
      logic-TPTP >=0.4.1
    -- logic-TPTP <=0.4.3 has build error on ghc <7.9 and transformers >=0.5.1.
    if impl(ghc <7.9) && flag(Transformers051)
      Build-Depends: logic-TPTP >=0.4.4.0
  Default-Language: Haskell2010
  if impl(ghc)
    GHC-Options: -rtsopts
  if flag(LinuxStatic)
    GHC-Options: -static -optl-static -optl-pthread
  -- GHC-Prof-Options: -auto-all

-- Converters

Executable lpconvert
  Main-is: lpconvert.hs
  HS-Source-Dirs: lpconvert
  Build-Depends:
    base,
    filepath,
    data-default-class,
    parse-dimacs,
    pseudo-boolean,
    toysolver
  Default-Language: Haskell2010
  if flag(LinuxStatic)
    GHC-Options: -static -optl-static -optl-pthread

Executable pbconvert
  Main-is: pbconvert.hs
  HS-Source-Dirs: pbconvert
  Build-Depends:
    base >=4 && <5,
    filepath,
    data-default-class,
    parse-dimacs,
    pseudo-boolean,
    toysolver
  Default-Language: Haskell2010
  if flag(LinuxStatic)
    GHC-Options: -static -optl-static -optl-pthread

-- Sample Programs

Executable sudoku
  If !flag(BuildSamplePrograms)
    Buildable: False
  Main-is: sudoku.hs
  HS-Source-Dirs: samples/programs/sudoku
  Build-Depends:
    base,
    array,
    toysolver
  Default-Language: Haskell2010
  if flag(LinuxStatic)
    GHC-Options: -static -optl-static -optl-pthread

Executable nonogram
  If !flag(BuildSamplePrograms)
    Buildable: False
  Main-is: nonogram.hs
  HS-Source-Dirs: samples/programs/nonogram
  Build-Depends:
    base,
    array,
    containers,
    toysolver
  Default-Language: Haskell2010
  if flag(LinuxStatic)
    GHC-Options: -static -optl-static -optl-pthread

Executable nqueens
  If !flag(BuildSamplePrograms)
    Buildable: False
  Main-is: nqueens.hs
  HS-Source-Dirs: samples/programs/nqueens
  Build-Depends:
    base,
    array,
    toysolver
  Default-Language: Haskell2010
  if flag(LinuxStatic)
    GHC-Options: -static -optl-static -optl-pthread

Executable knapsack
  If !flag(BuildSamplePrograms)
    Buildable: False
  Main-is: knapsack.hs
  HS-Source-Dirs: samples/programs/knapsack
  Build-Depends:
    base,
    toysolver
  Default-Language: Haskell2010
  if flag(LinuxStatic)
    GHC-Options: -static -optl-static -optl-pthread

Executable htc
  If !flag(BuildSamplePrograms)
    Buildable: False
  Main-is: htc.hs
  HS-Source-Dirs: samples/programs/htc
  Build-Depends:
    base,
    containers,
    toysolver
  Default-Language: Haskell2010
  if flag(LinuxStatic)
    GHC-Options: -static -optl-static -optl-pthread

Executable svm2lp
  If !flag(BuildSamplePrograms)
    Buildable: False
  Main-is: svm2lp.hs
  HS-Source-Dirs: samples/programs/svm2lp
  Build-Depends:
    base,
    containers,
    data-default-class,
    split,
    toysolver
  Default-Language: Haskell2010
  if flag(LinuxStatic)
    GHC-Options: -static -optl-static -optl-pthread

-- Misc Programs

Executable pigeonhole
  If !flag(BuildMiscPrograms)
    Buildable: False
  Main-is: pigeonhole.hs
  HS-Source-Dirs: pigeonhole
  Build-Depends:
    base,
    containers,
    pseudo-boolean,
    toysolver
  Default-Language: Haskell2010
  if flag(LinuxStatic)
    GHC-Options: -static -optl-static -optl-pthread

Executable maxsatverify
  If !flag(BuildMiscPrograms)
    Buildable: False
  Main-is: maxsatverify.hs
  HS-Source-Dirs: maxsatverify
  Build-Depends:
    base,
    array,
    toysolver
  Default-Language: Haskell2010
  if flag(LinuxStatic)
    GHC-Options: -static -optl-static -optl-pthread

Executable pbverify
  Main-is: pbverify.hs
  If !flag(BuildMiscPrograms)
    Buildable: False
  HS-Source-Dirs: pbverify
  Build-Depends:
    base,
    array,
    pseudo-boolean,
    toysolver
  Default-Language: Haskell2010
  if flag(LinuxStatic)
    GHC-Options: -static -optl-static -optl-pthread

-- Test suites and benchmarks

Test-suite TestPolynomial
  Type:              exitcode-stdio-1.0
  HS-Source-Dirs:    test
  Main-is:           TestPolynomial.hs
  Build-depends:
    base,
    containers,
    toysolver,
    tasty >=0.10.1,
    tasty-hunit ==0.9.*,
    tasty-quickcheck ==0.8.*,
    tasty-th,
    data-interval,
    finite-field >=0.7.0 && <1.0.0,
    prettyclass >=1.0.0
  Default-Language: Haskell2010
  Other-Extensions: TemplateHaskell

Test-suite TestSuite
  Type:              exitcode-stdio-1.0
  HS-Source-Dirs:    test Smtlib toysmt
  Main-is:           TestSuite.hs
  Other-Modules:
    Test.AReal
    Test.AReal2
    Test.Arith
    Test.BoolExpr
    Test.CongruenceClosure
    Test.ContiTraverso
    Test.Delta
    Test.FiniteModelFinder
    Test.HittingSets
    Test.Knapsack
    Test.LPFile
    Test.Misc
    Test.MIPSolver2
    Test.MPSFile
    Test.SAT
    Test.SDPFile
    Test.Simplex
    Test.Simplex2
    Test.SMT
    Test.SMTLIB2Solver
    Test.SubsetSum
    Smtlib.Parsers.CommonParsers,
    Smtlib.Parsers.ResponseParsers,
    Smtlib.Parsers.CommandsParsers,
    Smtlib.Syntax.Syntax,
    Smtlib.Syntax.ShowSL
  Build-depends:
    base,
    array,
    containers,
    data-default-class,
    deepseq,
    mtl,
    mwc-random,
    parsec,
    transformers,
    transformers-compat,
    vector,
    vector-space,
    toysolver,
    data-interval,
    OptDir,
    tasty >=0.10.1,
    tasty-hunit ==0.9.*,
    tasty-quickcheck ==0.8.*,
    tasty-th,
    QuickCheck >=2.5 && <3
  Default-Language: Haskell2010
  Other-Extensions: TemplateHaskell, ScopedTypeVariables

Benchmark BenchmarkSATLIB
  type:             exitcode-stdio-1.0
  hs-source-dirs:   benchmarks
  main-is:          BenchmarkSATLIB.hs
  build-depends:
    base >=4 && <5,
    array,
    data-default-class,
    parse-dimacs,
    toysolver,
    criterion >=1.0 && <1.2
  Default-Language: Haskell2010

Benchmark BenchmarkKnapsack
  type:             exitcode-stdio-1.0
  hs-source-dirs:   benchmarks
  main-is:          BenchmarkKnapsack.hs
  build-depends:
    base >=4 && <5,
    toysolver,
    criterion >=1.0 && <1.2
  Default-Language: Haskell2010

Benchmark BenchmarkSubsetSum
  type:             exitcode-stdio-1.0
  hs-source-dirs:   benchmarks
  main-is:          BenchmarkSubsetSum.hs
  build-depends:
    base >=4 && <5,
    vector,
    toysolver,
    criterion >=1.0 && <1.2
  Default-Language: Haskell2010