{ "{" (1, 1)
ID "lib" (1, 3)
, "," (1, 6)
ID "stdenv" (1, 8)
, "," (1, 14)
ID "fetchurl" (1, 16)
, "," (1, 24)
ID "gfortran" (1, 26)
, "," (1, 34)
ID "blas" (1, 36)
, "," (1, 40)
ID "lapack" (1, 42)
, "," (2, 1)
ID "enableCuda" (2, 3)
? "?" (2, 14)
ID "false" (2, 16)
, "," (2, 21)
ID "cudatoolkit" (2, 23)
} "}" (3, 1)
: ":" (3, 2)
LET "let" (5, 1)
ID "int_t" (6, 3)
= "=" (6, 9)
IF "if" (6, 11)
ID "blas" (6, 14)
. "." (6, 18)
ID "isILP64" (6, 19)
THEN "then" (6, 27)
" "\"" (6, 32)
STR "int64_t" (6, 33)
" "\"" (6, 40)
ELSE "else" (6, 42)
" "\"" (6, 47)
STR "int32_t" (6, 48)
" "\"" (6, 55)
; ";" (6, 56)
ID "SHLIB_EXT" (7, 3)
= "=" (7, 13)
ID "stdenv" (7, 15)
. "." (7, 21)
ID "hostPlatform" (7, 22)
. "." (7, 34)
ID "extensions" (7, 35)
. "." (7, 45)
ID "sharedLibrary" (7, 46)
; ";" (7, 59)
IN "in" (8, 1)
ID "stdenv" (9, 1)
. "." (9, 7)
ID "mkDerivation" (9, 8)
REC "rec" (9, 21)
{ "{" (9, 25)
ID "version" (10, 3)
= "=" (10, 11)
" "\"" (10, 13)
STR "4.4.4" (10, 14)
" "\"" (10, 19)
; ";" (10, 20)
ID "pname" (11, 3)
= "=" (11, 9)
" "\"" (11, 11)
STR "suitesparse" (11, 12)
" "\"" (11, 23)
; ";" (11, 24)
ID "src" (13, 3)
= "=" (13, 7)
ID "fetchurl" (13, 9)
{ "{" (13, 18)
ID "url" (14, 5)
= "=" (14, 9)
" "\"" (14, 11)
STR "http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-" (14, 12)
DOLLAR_CURLY "${" (14, 70)
ID "version" (14, 72)
} "}" (14, 79)
STR ".tar.gz" (14, 80)
" "\"" (14, 87)
; ";" (14, 88)
ID "sha256" (15, 5)
= "=" (15, 12)
" "\"" (15, 14)
STR "1zdn1y0ij6amj7smmcslkqgbqv9yy5cwmbyzqc9v6drzdzllgbpj" (15, 15)
" "\"" (15, 67)
; ";" (15, 68)
} "}" (16, 3)
; ";" (16, 4)
ID "preConfigure" (18, 3)
= "=" (18, 16)
IND_STRING_OPEN "''\n" (18, 18)
IND_STR "    mkdir -p $out/lib\n    mkdir -p $out/include\n\n    sed -i \"SuiteSparse_config/SuiteSparse_config.mk\" \\\n        -e 's/METIS .*$/METIS =/' \\\n        -e 's/METIS_PATH .*$/METIS_PATH =/' \\\n        -e '/CHOLMOD_CONFIG/ s/$/-DNPARTITION -DLONGBLAS=" (19, 1)
DOLLAR_CURLY "${" (25, 58)
ID "int_t" (25, 60)
} "}" (25, 65)
IND_STR "/' \\\n        -e '/UMFPACK_CONFIG/ s/$/-DLONGBLAS=" (25, 66)
DOLLAR_CURLY "${" (26, 45)
ID "int_t" (26, 47)
} "}" (26, 52)
IND_STR "/'\n  " (26, 53)
IND_STRING_CLOSE "''" (27, 3)
+ "+" (28, 3)
ID "lib" (28, 5)
. "." (28, 8)
ID "optionalString" (28, 9)
ID "stdenv" (28, 24)
. "." (28, 30)
ID "isDarwin" (28, 31)
IND_STRING_OPEN "''\n" (28, 40)
IND_STR "    sed -i \"SuiteSparse_config/SuiteSparse_config.mk\" \\\n        -e 's/^[[:space:]]*\\(LIB = -lm\\) -lrt/\\1/'\n  " (29, 1)
IND_STRING_CLOSE "''" (31, 3)
+ "+" (32, 3)
ID "lib" (32, 5)
. "." (32, 8)
ID "optionalString" (32, 9)
ID "enableCuda" (32, 24)
IND_STRING_OPEN "''\n" (32, 35)
IND_STR "    sed -i \"SuiteSparse_config/SuiteSparse_config.mk\" \\\n        -e 's|^[[:space:]]*\\(CUDA_ROOT     =\\)|CUDA_ROOT = " (33, 1)
DOLLAR_CURLY "${" (34, 60)
ID "cudatoolkit" (34, 62)
} "}" (34, 73)
IND_STR "|' \\\n        -e 's|^[[:space:]]*\\(GPU_BLAS_PATH =\\)|GPU_BLAS_PATH = $(CUDA_ROOT)|' \\\n        -e 's|^[[:space:]]*\\(GPU_CONFIG    =\\)|GPU_CONFIG = -I$(CUDA_ROOT)/include -DGPU_BLAS -DCHOLMOD_OMP_NUM_THREADS=$(NIX_BUILD_CORES) |' \\\n        -e 's|^[[:space:]]*\\(CUDA_PATH     =\\)|CUDA_PATH = $(CUDA_ROOT)|' \\\n        -e 's|^[[:space:]]*\\(CUDART_LIB    =\\)|CUDART_LIB = $(CUDA_ROOT)/lib64/libcudart.so|' \\\n        -e 's|^[[:space:]]*\\(CUBLAS_LIB    =\\)|CUBLAS_LIB = $(CUDA_ROOT)/lib64/libcublas.so|' \\\n        -e 's|^[[:space:]]*\\(CUDA_INC_PATH =\\)|CUDA_INC_PATH = $(CUDA_ROOT)/include/|' \\\n        -e 's|^[[:space:]]*\\(NV20          =\\)|NV20 = -arch=sm_20 -Xcompiler -fPIC|' \\\n        -e 's|^[[:space:]]*\\(NV30          =\\)|NV30 = -arch=sm_30 -Xcompiler -fPIC|' \\\n        -e 's|^[[:space:]]*\\(NV35          =\\)|NV35 = -arch=sm_35 -Xcompiler -fPIC|' \\\n        -e 's|^[[:space:]]*\\(NVCC          =\\) echo|NVCC = $(CUDA_ROOT)/bin/nvcc|' \\\n        -e 's|^[[:space:]]*\\(NVCCFLAGS     =\\)|NVCCFLAGS = $(NV20) -O3 -gencode=arch=compute_20,code=sm_20 -gencode=arch=compute_30,code=sm_30 -gencode=arch=compute_35,code=sm_35 -gencode=arch=compute_60,code=sm_60|'\n  " (34, 74)
IND_STRING_CLOSE "''" (46, 3)
; ";" (46, 5)
ID "makeFlags" (48, 3)
= "=" (48, 13)
[ "[" (48, 15)
" "\"" (49, 5)
STR "PREFIX=\"$(out)\"" (49, 6)
" "\"" (49, 23)
" "\"" (50, 5)
STR "INSTALL_LIB=$(out)/lib" (50, 6)
" "\"" (50, 28)
" "\"" (51, 5)
STR "INSTALL_INCLUDE=$(out)/include" (51, 6)
" "\"" (51, 36)
" "\"" (52, 5)
STR "BLAS=-lblas" (52, 6)
" "\"" (52, 17)
" "\"" (53, 5)
STR "LAPACK=-llapack" (53, 6)
" "\"" (53, 21)
] "]" (54, 3)
; ";" (54, 4)
ID "NIX_CFLAGS_COMPILE" (56, 3)
= "=" (56, 22)
ID "lib" (56, 24)
. "." (56, 27)
ID "optionalString" (56, 28)
ID "stdenv" (56, 43)
. "." (56, 49)
ID "isDarwin" (56, 50)
" "\"" (56, 59)
STR " -DNTIMER" (56, 60)
" "\"" (56, 69)
; ";" (56, 70)
ID "postInstall" (58, 3)
= "=" (58, 15)
IND_STRING_OPEN "''\n" (58, 17)
IND_STR "    # Build and install shared library\n    (\n        cd \"$(mktemp -d)\"\n        for i in \"$out\"/lib/lib*.a; do\n          ar -x $i\n        done\n        " (59, 1)
DOLLAR_CURLY "${" (65, 9)
IF "if" (65, 11)
ID "enableCuda" (65, 14)
THEN "then" (65, 25)
ID "cudatoolkit" (65, 30)
ELSE "else" (65, 42)
ID "stdenv" (65, 47)
. "." (65, 53)
ID "cc" (65, 54)
. "." (65, 56)
ID "outPath" (65, 57)
} "}" (65, 64)
IND_STR "/bin/" (65, 65)
DOLLAR_CURLY "${" (65, 70)
IF "if" (65, 72)
ID "enableCuda" (65, 75)
THEN "then" (65, 86)
" "\"" (65, 91)
STR "nvcc" (65, 92)
" "\"" (65, 96)
ELSE "else" (65, 98)
" "\"" (65, 103)
STR "cc" (65, 104)
" "\"" (65, 106)
} "}" (65, 107)
IND_STR " *.o " (65, 108)
DOLLAR_CURLY "${" (65, 113)
IF "if" (65, 115)
ID "stdenv" (65, 118)
. "." (65, 124)
ID "isDarwin" (65, 125)
THEN "then" (65, 134)
" "\"" (65, 139)
STR "-dynamiclib" (65, 140)
" "\"" (65, 151)
ELSE "else" (65, 153)
" "\"" (65, 158)
STR "--shared" (65, 159)
" "\"" (65, 167)
} "}" (65, 168)
IND_STR " -o \"$out/lib/libsuitesparse" (65, 169)
DOLLAR_CURLY "${" (65, 197)
ID "SHLIB_EXT" (65, 199)
} "}" (65, 208)
IND_STR "\" -lblas " (65, 209)
DOLLAR_CURLY "${" (65, 218)
ID "lib" (65, 220)
. "." (65, 223)
ID "optionalString" (65, 224)
ID "enableCuda" (65, 239)
" "\"" (65, 250)
STR "-lcublas" (65, 251)
" "\"" (65, 259)
} "}" (65, 260)
IND_STR "\n    )\n    for i in umfpack cholmod amd camd colamd spqr; do\n      ln -s libsuitesparse" (65, 261)
DOLLAR_CURLY "${" (68, 27)
ID "SHLIB_EXT" (68, 29)
} "}" (68, 38)
IND_STR " \"$out\"/lib/lib$i" (68, 39)
DOLLAR_CURLY "${" (68, 56)
ID "SHLIB_EXT" (68, 58)
} "}" (68, 67)
IND_STR "\n    done\n\n    # Install documentation\n    outdoc=$out/share/doc/suitesparse-" (68, 68)
DOLLAR_CURLY "${" (72, 39)
ID "version" (72, 41)
} "}" (72, 48)
IND_STR "\n    mkdir -p $outdoc\n    cp -r AMD/Doc $outdoc/amd\n    cp -r BTF/Doc $outdoc/bft\n    cp -r CAMD/Doc $outdoc/camd\n    cp -r CCOLAMD/Doc $outdoc/ccolamd\n    cp -r CHOLMOD/Doc $outdoc/cholmod\n    cp -r COLAMD/Doc $outdoc/colamd\n    cp -r CXSparse/Doc $outdoc/cxsparse\n    cp -r KLU/Doc $outdoc/klu\n    cp -r LDL/Doc $outdoc/ldl\n    cp -r RBio/Doc $outdoc/rbio\n    cp -r SPQR/Doc $outdoc/spqr\n    cp -r UMFPACK/Doc $outdoc/umfpack\n  " (72, 49)
IND_STRING_CLOSE "''" (86, 3)
; ";" (86, 5)
ID "nativeBuildInputs" (88, 3)
= "=" (88, 21)
[ "[" (88, 23)
ID "gfortran" (88, 25)
] "]" (88, 34)
; ";" (88, 35)
ID "buildInputs" (89, 3)
= "=" (89, 15)
[ "[" (89, 17)
ID "blas" (89, 19)
ID "lapack" (89, 24)
] "]" (89, 31)
; ";" (89, 32)
ID "meta" (91, 3)
= "=" (91, 8)
WITH "with" (91, 10)
ID "lib" (91, 15)
; ";" (91, 18)
{ "{" (91, 20)
ID "homepage" (92, 5)
= "=" (92, 14)
" "\"" (92, 16)
STR "http://faculty.cse.tamu.edu/davis/suitesparse.html" (92, 17)
" "\"" (92, 67)
; ";" (92, 68)
ID "description" (93, 5)
= "=" (93, 17)
" "\"" (93, 19)
STR "A suite of sparse matrix algorithms" (93, 20)
" "\"" (93, 55)
; ";" (93, 56)
ID "license" (94, 5)
= "=" (94, 13)
WITH "with" (94, 15)
ID "licenses" (94, 20)
; ";" (94, 28)
[ "[" (94, 30)
ID "bsd2" (94, 32)
ID "gpl2Plus" (94, 37)
ID "lgpl21Plus" (94, 46)
] "]" (94, 57)
; ";" (94, 58)
ID "maintainers" (95, 5)
= "=" (95, 17)
WITH "with" (95, 19)
ID "maintainers" (95, 24)
; ";" (95, 35)
[ "[" (95, 37)
ID "ttuegel" (95, 39)
] "]" (95, 47)
; ";" (95, 48)
ID "platforms" (96, 5)
= "=" (96, 15)
WITH "with" (96, 17)
ID "platforms" (96, 22)
; ";" (96, 31)
ID "unix" (96, 33)
; ";" (96, 37)
} "}" (97, 3)
; ";" (97, 4)
} "}" (98, 1)