{"id":16499355,"url":"https://github.com/expander/tsil-mma","last_synced_at":"2025-10-28T00:30:49.738Z","repository":{"id":53141646,"uuid":"145108722","full_name":"Expander/tsil-mma","owner":"Expander","description":"Mathematica interface for TSIL","archived":false,"fork":false,"pushed_at":"2025-01-27T05:21:46.000Z","size":230,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-27T06:25:29.443Z","etag":null,"topics":["cplusplus","high-energy-physics","mathematica"],"latest_commit_sha":null,"homepage":null,"language":"CMake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Expander.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-17T10:45:25.000Z","updated_at":"2025-01-27T05:21:49.000Z","dependencies_parsed_at":"2025-01-27T06:23:19.760Z","dependency_job_id":"7bb38c9b-85a4-4b34-89c3-c485c5e8275c","html_url":"https://github.com/Expander/tsil-mma","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Expander%2Ftsil-mma","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Expander%2Ftsil-mma/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Expander%2Ftsil-mma/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Expander%2Ftsil-mma/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Expander","download_url":"https://codeload.github.com/Expander/tsil-mma/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238574738,"owners_count":19494723,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cplusplus","high-energy-physics","mathematica"],"created_at":"2024-10-11T14:52:16.239Z","updated_at":"2025-10-28T00:30:49.352Z","avatar_url":"https://github.com/Expander.png","language":"CMake","funding_links":[],"categories":[],"sub_categories":[],"readme":"TSIL-Mma\n========\n\nTSIL-Mma provides a Mathematica interface for the two-loop self-energy\nintegral library [TSIL](https://www.niu.edu/spmartin/TSIL/) [[CPC 174\n(2006) 133-151](https://arxiv.org/abs/hep-ph/0501132)].  TSIL is\nwritten by Stephen P. Martin and David G. Robertson.\n\nBuilding TSIL\n----------------\n\nFirst, TSIL must be [downloaded](https://www.niu.edu/spmartin/TSIL/)\nand extracted.  Afterwards, edit the TSIL `Makefile` and add `-fPIC`\nto `TSIL_OPT`:\n\n```mak\nTSIL_OPT = -O3 -funroll-loops -fPIC\n```\n\nIn addition, we recommend to enable long double precision in the TSIL\n`Makefile` (enabled by default):\n\n```mak\nTSIL_SIZE = -DTSIL_SIZE_LONG\n```\n\nAfterwards, run\n\n```sh\nmake\n```\n\nBuilding TSIL-Mma\n-----------------\n\nTo build TSIL-Mma, first create a build sub-directory and enter that\ndirectory:\n\n```sh\nmkdir build\ncd build\n```\n\nThen, call `cmake` to search for the Mathematica installation and for\nthe TSIL library and header files:\n\n```sh\ncmake -DTSIL_DIR=/path/to/tsil -DCMAKE_CXX_FLAGS=-DTSIL_SIZE_LONG ..\n```\n\nThe variable `CMAKE_CXX_FLAGS` must be set to the value of `TSIL_SIZE`\nthat has been set in the TSIL `Makefile` (see above):\n\n* If TSIL has been build with long double precision (`TSIL_SIZE = -DTSIL_SIZE_LONG`), pass to cmake:\n\n  ```mak\n  -DCMAKE_CXX_FLAGS=-DTSIL_SIZE_LONG\n  ```\n\n  This is the default TSIL configuration.\n\n* If TSIL has been build with double precision (`TSIL_SIZE = -DTSIL_SIZE_DOUBLE`), pass to cmake:\n\n  ```mak\n  -DCMAKE_CXX_FLAGS=-DTSIL_SIZE_DOUBLE\n  ```\n\nFinally TSIL-Mma can be build by running\n\n```sh\nmake\n```\n\nUsage\n-----\n\nTo call the TSIL functions from Mathematica one has to first include\nthe file `src/LibraryLink.m` (assuming one is currently in the `build`\ndirectory):\n\n```wl\nGet[FileNameJoin[{\"..\", \"src\", \"LibraryLink.m\"}]];\n```\n\nAfterwards, the TSIL-Mma LibraryLink library must be loaded using the\nfunction `TSILInitialize[libName]`.  The function argument `libName`\nis the name of the created library, including the path.  On Linux the\nlibrary is called `LibraryLink.so`, on MacOS it is called\n`LibraryLink.dylib`.  Thus, on Linux you may write:\n\n```wl\nlibName = FileNameJoin[{\"src\", \"LibraryLink.so\"}];\nTSILInitialize[libName];\n```\n\nWhen these two steps are done, the TSIL functions can be called, for\nexample:\n\n```wl\nx  = 1;\ny  = 2;\nz  = 3;\nu  = 4;\nv  = 5;\ns  = 10;\nqq = 1;\n\n(* evaluate all TSIL integral functions *)\nPrint[TSILEvaluate[x, y, z, u, v, s, qq]];\n\n(* individual TSIL integral functions *)\nPrint[\"A(x,qq)          = \", TSILA[x, qq]];\nPrint[\"Ap(x,qq)         = \", TSILAp[x, qq]];\nPrint[\"Aeps(x,qq)       = \", TSILAeps[x, qq]];\nPrint[\"B(x,y,s,qq)      = \", TSILB[x, y, s, qq]];\nPrint[\"Bp(x,y,s,qq)     = \", TSILBp[x, y, s, qq]];\nPrint[\"dBds(x,y,s,qq)   = \", TSILdBds[x, y, s, qq]];\nPrint[\"Beps(x,y,s,qq)   = \", TSILBeps[x, y, s, qq]];\nPrint[\"I(x,y,z,qq)      = \", TSILI[x, y, z, qq]];\nPrint[\"Ip(x,y,z,qq)     = \", TSILIp[x, y, z, qq]];\nPrint[\"Ip2(x,y,z,qq)    = \", TSILIp2[x, y, z, qq]];\nPrint[\"Ipp(x,y,z,qq)    = \", TSILIpp[x, y, z, qq]];\nPrint[\"Ip3(x,y,z,qq)    = \", TSILIp3[x, y, z, qq]];\nPrint[\"M(x,y,z,u,v,s)   = \", TSILM[x, y, z, u, v, s]];\nPrint[\"S(x,y,z,s,qq)    = \", TSILS[x, y, z, s, qq]];\nPrint[\"T(x,y,z,s,qq)    = \", TSILT[x, y, z, s, qq]];\nPrint[\"Tbar(x,y,z,s,qq) = \", TSILTbar[x, y, z, s, qq]];\nPrint[\"U(x,y,z,u,s,qq)  = \", TSILU[x, y, z, u, s, qq]];\nPrint[\"V(x,y,z,u,s,qq)  = \", TSILV[x, y, z, u, s, qq]];\n```\n\nA full example script can be found in `example/example.m`.\nIt can be run from the `build` directory as:\n\n```wl\nmath -run '\u003c\u003c \"../example/example.m\"'\n```\n\nAuthor\n------\n\nTSIL-Mma is written by Alexander Voigt, RWTH Aachen University.\n\nCopying\n-------\n\nTSIL-Mma is licenced under the GNU General Public License (GNU GPL)\nversion 3.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexpander%2Ftsil-mma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexpander%2Ftsil-mma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexpander%2Ftsil-mma/lists"}