001040612 001__ 1040612
001040612 005__ 20250324202210.0
001040612 037__ $$aFZJ-2025-01961
001040612 1001_ $$0P:(DE-Juel1)131044$$aWuttke, Joachim$$b0$$ufzj
001040612 1112_ $$a5th conference for Research Software Engineering in Germany$$cKarlsruhe$$d2025-02-25 - 2025-02-27$$wGermany
001040612 245__ $$aHow to compute a special function with near machine-precision accuracy
001040612 260__ $$c2025
001040612 3367_ $$033$$2EndNote$$aConference Paper
001040612 3367_ $$2DataCite$$aOther
001040612 3367_ $$2BibTeX$$aINPROCEEDINGS
001040612 3367_ $$2DRIVER$$aconferenceObject
001040612 3367_ $$2ORCID$$aLECTURE_SPEECH
001040612 3367_ $$0PUB:(DE-HGF)6$$2PUB:(DE-HGF)$$aConference Presentation$$bconf$$mconf$$s1742798975_20755$$xOther
001040612 520__ $$aBased on my experience as developer and maintainer of some numerical open-source libraries (libcerf, libkww, libformfactor), I will explain key concepts for writing code that computes a special function or integral with high accuracy and high speed.-   Choose different numerical algorithms for different argument regions.-   Don't be afraid of divergent series or ill-conditioned recursions. -   Confine Chebyshev fits to small subregions. -   Use code instrumentation and bisection to ensure continuity where the algorithm changes. -   Beware of literature that is only concerned with truncation. Near machine precision, cancellation is the bigger problem. Visualization may reveal the difference. -   Never rely on non-standard facilities. "Long double" makes no sense if it is not longer than "double"? Tell Apple. -   Generate test references and hard-coded coefficients with high-precision scripts (e.g. mpmath based).  -  Be graceful with relative accuracy measures near zeros and for real or imaginary parts of complex numbers.-    Don't trust any performance measure you haven't tweaked yourself. Take caching into account.
001040612 536__ $$0G:(DE-HGF)POF4-6G4$$a6G4 - Jülich Centre for Neutron Research (JCNS) (FZJ) (POF4-6G4)$$cPOF4-6G4$$fPOF IV$$x0
001040612 536__ $$0G:(DE-HGF)POF4-632$$a632 - Materials – Quantum, Complex and Functional Materials (POF4-632)$$cPOF4-632$$fPOF IV$$x1
001040612 65027 $$0V:(DE-MLZ)SciArea-250$$2V:(DE-HGF)$$aOthers$$x0
001040612 65017 $$0V:(DE-MLZ)GC-120-2016$$2V:(DE-HGF)$$aInformation and Communication$$x0
001040612 693__ $$0EXP:(DE-MLZ)SCG-20150203$$5EXP:(DE-MLZ)SCG-20150203$$eSCG: Scientific Computing Group$$x0
001040612 909CO $$ooai:juser.fz-juelich.de:1040612$$pVDB:MLZ$$pVDB
001040612 9101_ $$0I:(DE-588b)5008462-8$$6P:(DE-Juel1)131044$$aForschungszentrum Jülich$$b0$$kFZJ
001040612 9131_ $$0G:(DE-HGF)POF4-6G4$$1G:(DE-HGF)POF4-6G0$$2G:(DE-HGF)POF4-600$$3G:(DE-HGF)POF4$$4G:(DE-HGF)POF$$aDE-HGF$$bForschungsbereich Materie$$lGroßgeräte: Materie$$vJülich Centre for Neutron Research (JCNS) (FZJ)$$x0
001040612 9131_ $$0G:(DE-HGF)POF4-632$$1G:(DE-HGF)POF4-630$$2G:(DE-HGF)POF4-600$$3G:(DE-HGF)POF4$$4G:(DE-HGF)POF$$aDE-HGF$$bForschungsbereich Materie$$lVon Materie zu Materialien und Leben$$vMaterials – Quantum, Complex and Functional Materials$$x1
001040612 9141_ $$y2025
001040612 920__ $$lyes
001040612 9201_ $$0I:(DE-Juel1)JCNS-4-20201012$$kJCNS-4$$lJCNS-4$$x0
001040612 9201_ $$0I:(DE-Juel1)JCNS-FRM-II-20110218$$kJCNS-FRM-II$$lJCNS-FRM-II$$x1
001040612 9201_ $$0I:(DE-588b)4597118-3$$kMLZ$$lHeinz Maier-Leibnitz Zentrum$$x2
001040612 980__ $$aconf
001040612 980__ $$aVDB
001040612 980__ $$aI:(DE-Juel1)JCNS-4-20201012
001040612 980__ $$aI:(DE-Juel1)JCNS-FRM-II-20110218
001040612 980__ $$aI:(DE-588b)4597118-3
001040612 980__ $$aUNRESTRICTED