cabal-version: 3.0 name: ox-arrays version: 0.1.0.0 synopsis: An efficient CPU-based multidimensional array (tensor) library description: An efficient and richly typed CPU-based multidimensional array (tensor) library built upon the optimized tensor representation (strides list) implemented in the orthotope package. copyright: (c) 2025 Tom Smeding, Mikolaj Konarski author: Tom Smeding, Mikolaj Konarski maintainer: Tom Smeding license: BSD-3-Clause category: Array, Tensors build-type: Simple extra-source-files: cbits/arith_lists.h flag trace-wrappers description: Compile modules that define wrappers around the array methods that trace their arguments and results. This is conditional on a flag because these modules make documentation generation fail. (https://gitlab.haskell.org/ghc/ghc/-/issues/24964 , should be fixed in GHC 9.12) default: False manual: True flag nonportable-simd description: Assume the binary will be run on the same CPU as where it is built. Setting this flag causes `-march=native` to be passed to the C compiler when compiling arithmetic operations. The result is generally much faster arithmetic operations, but the executable is much less portable to different computers. default: False manual: True flag pedantic-c-warnings description: Compile embedded C code with a high warning level. Only useful for ox-arrays developers. default: False manual: True library exposed-modules: -- put this module on top so ghci considers it the "main" module Data.Array.Nested Data.Array.Mixed.Lemmas Data.Array.Mixed.Permutation Data.Array.Mixed.Types Data.Array.Nested.Internal.Lemmas Data.Array.Nested.Convert Data.Array.Nested.Mixed Data.Array.Nested.Ranked Data.Array.Nested.Ranked.Base Data.Array.Nested.Shaped Data.Array.Nested.Shaped.Base Data.Array.Nested.Mixed.Shape Data.Array.Nested.Ranked.Shape Data.Array.Nested.Shaped.Shape Data.Array.Strided.Orthotope Data.Array.XArray Data.Bag if flag(trace-wrappers) exposed-modules: Data.Array.Nested.Trace Data.Array.Nested.Trace.TH build-depends: strided-array-ops, base, deepseq < 1.7, ghc-typelits-knownnat, ghc-typelits-natnormalise, orthotope < 0.2, vector hs-source-dirs: src default-language: Haskell2010 ghc-options: -Wall -Wcompat -Widentities -Wunused-packages other-extensions: TemplateHaskell library strided-array-ops exposed-modules: Data.Array.Strided Data.Array.Strided.Array Data.Array.Strided.Arith Data.Array.Strided.Arith.Internal Data.Array.Strided.Arith.Internal.Foreign Data.Array.Strided.Arith.Internal.Lists Data.Array.Strided.Arith.Internal.Lists.TH build-depends: base >=4.18 && <4.22, ghc-typelits-knownnat < 1, ghc-typelits-natnormalise < 1, template-haskell < 3, vector < 0.14 hs-source-dirs: ops c-sources: cbits/arith.c cc-options: -O3 -std=c11 if flag(pedantic-c-warnings) cc-options: -Wall -Wextra -pedantic if flag(nonportable-simd) cc-options: -march=native elif arch(x86_64) || arch(i386) -- hmatrix assumes sse2, so we can too cc-options: -msse2 default-language: Haskell2010 ghc-options: -Wall -Wcompat -Widentities -Wunused-packages other-extensions: TemplateHaskell test-suite test type: exitcode-stdio-1.0 main-is: Main.hs other-modules: Gen Tests.C Tests.Permutation Util build-depends: ox-arrays, base, bytestring, ghc-typelits-knownnat, ghc-typelits-natnormalise, hedgehog, orthotope, random >= 1.3.0, tasty, tasty-hedgehog, vector hs-source-dirs: test default-language: Haskell2010 ghc-options: -Wall -Wcompat -Widentities -Wunused-packages test-suite example type: exitcode-stdio-1.0 main-is: Main.hs build-depends: ox-arrays, base hs-source-dirs: example default-language: Haskell2010 ghc-options: -Wall -Wcompat -Widentities -Wunused-packages benchmark bench type: exitcode-stdio-1.0 main-is: Main.hs build-depends: ox-arrays, strided-array-ops, base, hmatrix, orthotope, tasty-bench, vector hs-source-dirs: bench default-language: Haskell2010 ghc-options: -Wall -Wcompat -Widentities -Wunused-packages source-repository head type: git location: https://git.tomsmeding.com/ox-arrays