43 lines
1.7 KiB
Python
43 lines
1.7 KiB
Python
# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
|
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
|
#
|
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
|
|
|
from spack.package import *
|
|
|
|
|
|
class Fasttransforms(MakefilePackage):
|
|
"""FastTransforms provides computational kernels and driver routines for
|
|
orthogonal polynomial transforms. The univariate algorithms have a runtime
|
|
complexity of O(n log n), while the multivariate algorithms are 2-normwise
|
|
backward stable with a runtime complexity of O(nd+1), where n is the
|
|
polynomial degree and d is the spatial dimension of the problem."""
|
|
|
|
homepage = "https://github.com/MikaelSlevinsky/FastTransforms"
|
|
url = "https://github.com/MikaelSlevinsky/FastTransforms/archive/v0.3.4.tar.gz"
|
|
|
|
version("0.6.2", sha256="fd00befcb0c20ba962a8744a7b9139355071ee95be70420de005b7c0f6e023aa")
|
|
version("0.5.0", sha256="9556d0037bd5348a33f15ad6100e32053b6e22cab16a97c504f30d6c52fd0efd")
|
|
version("0.3.4", sha256="a5c8b5aedbdb40218521d061a7df65ef32ce153d4e19d232957db7e3e63c7e9b")
|
|
|
|
variant("quadmath", default=False, description="Support 128-bit floats")
|
|
|
|
depends_on("blas")
|
|
depends_on("fftw")
|
|
depends_on("mpfr")
|
|
|
|
def build(self, spec, prefix):
|
|
makeargs = ["CC=cc"]
|
|
if "openblas" in spec:
|
|
makeargs += ["FT_BLAS=openblas"]
|
|
if "quadmath" in spec:
|
|
makeargs += ["FT_QUADMATH=1"]
|
|
make("assembly", *makeargs)
|
|
make("lib", *makeargs)
|
|
|
|
def install(self, spec, prefix):
|
|
mkdirp(prefix.include)
|
|
install(join_path("src", "*.h"), prefix.include)
|
|
mkdirp(prefix.lib)
|
|
install("libfasttransforms." + dso_suffix, prefix.lib)
|