From a70b4e9bdf615a177db5936c4df14b39be54e9ef Mon Sep 17 00:00:00 2001 From: Alexis Montoison Date: Fri, 6 Feb 2026 18:03:26 -0600 Subject: [PATCH 01/16] Setup JOSS paper --- .github/workflows/draft-pdf.yml | 30 ++++++++++++++++++++++++++ compilation.sh | 7 +++++++ paper/paper.bib | 10 +++++++++ paper/paper.md | 37 +++++++++++++++++++++++++++++++++ 4 files changed, 84 insertions(+) create mode 100644 .github/workflows/draft-pdf.yml create mode 100755 compilation.sh create mode 100644 paper/paper.bib create mode 100644 paper/paper.md diff --git a/.github/workflows/draft-pdf.yml b/.github/workflows/draft-pdf.yml new file mode 100644 index 0000000..26e081b --- /dev/null +++ b/.github/workflows/draft-pdf.yml @@ -0,0 +1,30 @@ +name: JOSS +on: + push: + branches: + - joss-paper + tags: '*' + pull_request: + types: [opened, synchronize, reopened] +jobs: + paper: + runs-on: ubuntu-latest + name: Paper Draft + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Build draft PDF + uses: openjournals/openjournals-draft-action@master + with: + journal: joss + # This should be the path to the paper within your repo. + paper-path: paper.md + - name: Upload + uses: actions/upload-artifact@v4 + with: + name: paper + # This is the output path where Pandoc will write the compiled + # PDF. Note, this should be the same directory as the input + # paper.md + path: paper.pdf + diff --git a/compilation.sh b/compilation.sh new file mode 100755 index 0000000..2875fe1 --- /dev/null +++ b/compilation.sh @@ -0,0 +1,7 @@ +#!/bin/bash +sudo docker run --rm \ + --volume $PWD/paper:/data \ + --user $(id -u):$(id -g) \ + --env JOURNAL=joss \ + openjournals/inara + diff --git a/paper/paper.bib b/paper/paper.bib new file mode 100644 index 0000000..2c545c7 --- /dev/null +++ b/paper/paper.bib @@ -0,0 +1,10 @@ +@article{tapenade, + title = {The Tapenade automatic differentiation tool: principles, model, and specification}, + author = {Hascoet, Laurent and Pascual, Val{\'e}rie}, + journal = {ACM Transactions on Mathematical Software (TOMS)}, + volume = {39}, + number = {3}, + pages = {1--43}, + year = {2013}, + publisher = {ACM New York, NY, USA} +} diff --git a/paper/paper.md b/paper/paper.md new file mode 100644 index 0000000..c1a133b --- /dev/null +++ b/paper/paper.md @@ -0,0 +1,37 @@ +--- +title: 'diffblas: algorithmically differentiated BLAS routines' +tags: + - automatic differentiation + - linear algebra +authors: + - name: Alexis Montoison^[corresponding author] + orcid: 0000-0002-3403-5450 + affiliation: 1 + - name: Sri Hari Krishna Narayanan + orcid: 0000-0003-0388-5943 + affiliation: 1 + - name: Jean-Luc Bouchot + orcid: 0000-0003-4523-3986 + affiliation: 2 +affiliations: + - name: Argonne National Laboratory, Lemont, IL, USA. + index: 1 + - name: Inria de Saclay, Palaiseau, France. + index: 2 +date: 6 February 2026 +bibliography: paper.bib + +--- + +# Summary + +`diffblas`is a library that provides (algorithmically) differentiated BLAS routines from their reference implementation in LAPACK using the automatic differentiation tool Tapenade [@tapenade] in four modes: forward (`_d`), vector forward (`_dv`), reverse (`_b`), and vector reverse (`_bv`). + +# Statement of need + +# Acknowledgements + +This work was supported in part by the Applied Mathematics activity within the U.S. Department of Energy, Office of Science, Office +of Advanced Scientific Computing Research Applied Mathematics, and Office of Nuclear Physics SciDAC program under Contract No. DE-AC02-06CH11357. This work was supported in part by NSF CSSI grant 2104068. + +# References From 77beffc6391f9d795cac119953a677a013baa0da Mon Sep 17 00:00:00 2001 From: Alexis Montoison Date: Fri, 6 Feb 2026 18:08:01 -0600 Subject: [PATCH 02/16] Fix the workflow for JOSS --- .github/workflows/draft-pdf.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/draft-pdf.yml b/.github/workflows/draft-pdf.yml index 26e081b..b7f7289 100644 --- a/.github/workflows/draft-pdf.yml +++ b/.github/workflows/draft-pdf.yml @@ -18,7 +18,7 @@ jobs: with: journal: joss # This should be the path to the paper within your repo. - paper-path: paper.md + paper-path: paper/paper.md - name: Upload uses: actions/upload-artifact@v4 with: @@ -26,5 +26,5 @@ jobs: # This is the output path where Pandoc will write the compiled # PDF. Note, this should be the same directory as the input # paper.md - path: paper.pdf + path: paper/paper.pdf From 7467b9c807b59c42348597250e088f348620fdbe Mon Sep 17 00:00:00 2001 From: Alexis Montoison Date: Sun, 22 Feb 2026 23:36:35 -0600 Subject: [PATCH 03/16] Continue the JOSS paper --- .github/workflows/draft-pdf.yml | 16 ++++++++-- paper/paper.bib | 53 +++++++++++++++++++++++++++++++-- paper/paper.md | 52 ++++++++++++++++++++++++++------ 3 files changed, 107 insertions(+), 14 deletions(-) diff --git a/.github/workflows/draft-pdf.yml b/.github/workflows/draft-pdf.yml index b7f7289..efed27b 100644 --- a/.github/workflows/draft-pdf.yml +++ b/.github/workflows/draft-pdf.yml @@ -13,18 +13,28 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + with: + repository: ${{ github.event.pull_request.head.repo.full_name }} + ref: ${{ github.event.pull_request.head.ref }} + - name: Build draft PDF uses: openjournals/openjournals-draft-action@master with: journal: joss # This should be the path to the paper within your repo. - paper-path: paper/paper.md - - name: Upload + paper-path: joss/paper.md + + - name: Upload PDF uses: actions/upload-artifact@v4 with: name: paper # This is the output path where Pandoc will write the compiled # PDF. Note, this should be the same directory as the input # paper.md - path: paper/paper.pdf + path: joss/paper.pdf + - name: Commit PDF to repository + uses: EndBug/add-and-commit@v9 + with: + message: '(auto) paper draft' + add: 'joss/paper.pdf' diff --git a/paper/paper.bib b/paper/paper.bib index 2c545c7..d084a77 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -1,10 +1,59 @@ @article{tapenade, - title = {The Tapenade automatic differentiation tool: principles, model, and specification}, - author = {Hascoet, Laurent and Pascual, Val{\'e}rie}, + title = {{The Tapenade automatic differentiation tool: principles, model, and specification}}, + author = {Hasco{\"e}t, Laurent and Pascual, Val{\'e}rie}, journal = {ACM Transactions on Mathematical Software (TOMS)}, volume = {39}, number = {3}, pages = {1--43}, year = {2013}, + doi = {10.1145/2450153.2450158}, publisher = {ACM New York, NY, USA} } + +@book{griewank2008, + title = {Evaluating derivatives: principles and techniques of algorithmic differentiation}, + author = {Griewank, Andreas and Walther, Andrea}, + year = {2008}, + doi = {10.1137/1.9780898717761}, + publisher = {SIAM} +} + +@article{HFBTHO, +title = {{HFBTHO-AD: Differentiation of a nuclear energy density functional code}}, +author = {Laurent Hasco{\"e}t and Matt Menickelly and Sri Hari Krishna Narayanan and Jared O’Neal and Nicolas Schunck and Stefan M. Wild}, +journal = {Computer Physics Communications}, +volume = {320}, +pages = {109955}, +year = {2026}, +doi = {10.1016/j.cpc.2025.109955}, +} + +@article{ADOLC, +title = {{Algorithm 755: ADOL-C: a package for the automatic differentiation of algorithms written in C/C++}}, +author = {Griewank, Andreas and Juedes, David and Utke, Jean}, +journal = {ACM Transactions on Mathematical Software (TOMS)}, +volume = {22}, +number = {2}, +pages = {131--167}, +year = {1996}, +doi = {10.1145/229473.229474}, +publisher = {Association for Computing Machinery}, +} + +@article{jonasson2020, + title = {{Algorithm 1005: Fortran subroutines for reverse mode algorithmic differentiation of blas matrix operations}}, + author = {Jonasson, Kristjan and Sigurdsson, Sven and Yngvason, Hordur Freyr and Ragnarsson, Petur Orri and Melsted, Pall}, + journal = {ACM Transactions on Mathematical Software (TOMS)}, + volume = {46}, + number = {1}, + pages = {1--20}, + year = {2020}, + publisher = {ACM New York, NY, USA} +} + +@article{giles2008, + title = {An extended collection of matrix derivative results for forward and reverse mode automatic differentiation}, + author = {Giles, Mike}, + year = {2008}, + publisher = {Unspecified} +} diff --git a/paper/paper.md b/paper/paper.md index c1a133b..a1a6d6e 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -1,37 +1,71 @@ --- title: 'diffblas: algorithmically differentiated BLAS routines' tags: + - BLAS - automatic differentiation - - linear algebra + - numerical linear algebra + - scientific computing authors: - - name: Alexis Montoison^[corresponding author] - orcid: 0000-0002-3403-5450 - affiliation: 1 - - name: Sri Hari Krishna Narayanan + - name: Sri Hari Krishna Narayanan^[corresponding author] orcid: 0000-0003-0388-5943 affiliation: 1 + - name: Alexis Montoison + orcid: 0000-0002-3403-5450 + affiliation: 1 - name: Jean-Luc Bouchot orcid: 0000-0003-4523-3986 affiliation: 2 affiliations: - - name: Argonne National Laboratory, Lemont, IL, USA. + - name: Mathematics and Computer Science Division, Argonne National Laboratory, USA index: 1 - - name: Inria de Saclay, Palaiseau, France. + - name: Inria de Saclay, Palaiseau, France index: 2 -date: 6 February 2026 +date: 22 February 2026 bibliography: paper.bib --- # Summary -`diffblas`is a library that provides (algorithmically) differentiated BLAS routines from their reference implementation in LAPACK using the automatic differentiation tool Tapenade [@tapenade] in four modes: forward (`_d`), vector forward (`_dv`), reverse (`_b`), and vector reverse (`_bv`). +`diffblas` is a library that provides algorithmically differentiated [@griewank2008] BLAS routines from their reference implementations in [LAPACK](https://github.com/Reference-LAPACK/lapack) on GitHub using the automatic differentiation tool Tapenade [@tapenade]. +It supports four modes: forward (`_d`), vector forward (`_dv`), reverse (`_b`), and vector reverse (`_bv`). + +In addition to differentiating the standard Fortran-style `BLAS` interface, `diffblas` also provides differentiated `CBLAS` routines, facilitating interoperability with C and other languages. +Its API mirrors BLAS/CBLAS, with additional arguments specifying differentiation variables, making it straightforward to integrate into existing workflows. + +`diffblas` calls the underlying standard `BLAS `implementation, and is agnostic to the backend (OpenBLAS, BLIS, MKL, Apple Accelerate), ensuring both performance and portability. + +By providing accurate and efficient derivatives of linear algebra operations, `diffblas` facilitates gradient-based optimization, sensitivity analysis, and a wide range of scientific computing applications # Statement of need +Linear algebra routines such as those in LAPACK are fundamental to scientific computing, optimization, and machine learning. +However, they do not provide derivatives, which are often required for gradient-based algorithms. +Current approaches either rely on hand-coded derivatives or generic automatic differentiation applied to high-level code, which can be inefficient or error-prone. +`diffblas` addresses this gap by providing algorithmically differentiated BLAS routines directly from reference LAPACK implementations and following relevant differntiation rules [@giles2008]. +This enables accurate and efficient computation of derivatives while preserving compatibility with existing BLAS-based codes. + +# State of the field + +Automatic differentiation (AD) tools such as Tapenade [@tapenade], ADOL-C [@ADOLC], or Taf provide general mechanisms to compute derivatives of code. +However, applying AD naively to low-level BLAS or LAPACK routines can be inefficient due to loops, memory layout, and caching issues [@jonasson2020]. +Specialized libraries like diffblas that generate differentiated routines directly from reference implementations combine the reliability of LAPACK with the efficiency of AD, bridging a gap in current scientific computing workflows. + +# Research impact statement + +This work was inspired in part by a need to differentiate a Fortran code [@HFBTHO] that uses BLAS and LAPACK routines, and to use the differentiated application for gradient-based optimization. + +Providing both the standard and CBLAS interfaces ensures that diffblas can be adopted across different programming environments, facilitating derivative computations in diverse scientific computing projects. +Precompiled artifacts on GitHub further simplify integration, enabling rapid deployment in multiple languages and scientific computing projects. + # Acknowledgements This work was supported in part by the Applied Mathematics activity within the U.S. Department of Energy, Office of Science, Office of Advanced Scientific Computing Research Applied Mathematics, and Office of Nuclear Physics SciDAC program under Contract No. DE-AC02-06CH11357. This work was supported in part by NSF CSSI grant 2104068. +# AI usage disclosure + +Generative AI was used to ... +ChatGPT was used to check spelling, grammar, and clarity of the English text in this paper. + # References From 99004984150b698b1489c9158717e2a5e6f92d1e Mon Sep 17 00:00:00 2001 From: Alexis Montoison Date: Sun, 22 Feb 2026 23:40:13 -0600 Subject: [PATCH 04/16] Fix CI --- .github/workflows/draft-pdf.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/draft-pdf.yml b/.github/workflows/draft-pdf.yml index efed27b..3ff6391 100644 --- a/.github/workflows/draft-pdf.yml +++ b/.github/workflows/draft-pdf.yml @@ -22,7 +22,7 @@ jobs: with: journal: joss # This should be the path to the paper within your repo. - paper-path: joss/paper.md + paper-path: paper/paper.md - name: Upload PDF uses: actions/upload-artifact@v4 @@ -31,7 +31,7 @@ jobs: # This is the output path where Pandoc will write the compiled # PDF. Note, this should be the same directory as the input # paper.md - path: joss/paper.pdf + path: paper/paper.pdf - name: Commit PDF to repository uses: EndBug/add-and-commit@v9 From 1803c503c308fffaf0b569975120a8084605124a Mon Sep 17 00:00:00 2001 From: Alexis Montoison Date: Sun, 22 Feb 2026 23:46:34 -0600 Subject: [PATCH 05/16] [JOSS] More fixes for CI --- .../{draft-pdf.yml => draft-joss-paper.yml} | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) rename .github/workflows/{draft-pdf.yml => draft-joss-paper.yml} (87%) diff --git a/.github/workflows/draft-pdf.yml b/.github/workflows/draft-joss-paper.yml similarity index 87% rename from .github/workflows/draft-pdf.yml rename to .github/workflows/draft-joss-paper.yml index 3ff6391..442f7f6 100644 --- a/.github/workflows/draft-pdf.yml +++ b/.github/workflows/draft-joss-paper.yml @@ -1,11 +1,11 @@ -name: JOSS +name: Draft JOSS paper + on: push: - branches: - - joss-paper - tags: '*' + branches: [ "main" ] pull_request: - types: [opened, synchronize, reopened] + branches: [ "main" ] + jobs: paper: runs-on: ubuntu-latest @@ -37,4 +37,4 @@ jobs: uses: EndBug/add-and-commit@v9 with: message: '(auto) paper draft' - add: 'joss/paper.pdf' + add: 'paper/paper.pdf' From 28bb94545f4437ecc06aa855033d82d137eea5ad Mon Sep 17 00:00:00 2001 From: amontoison Date: Mon, 23 Feb 2026 05:47:23 +0000 Subject: [PATCH 06/16] (auto) paper draft --- paper/paper.pdf | Bin 0 -> 208333 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 paper/paper.pdf diff --git a/paper/paper.pdf b/paper/paper.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5cee767a6831c349a6edf36154e88d9708464001 GIT binary patch literal 208333 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

)3A|L+F^DiR9b+cC?f3bYjXI1+n% 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 literal 0 HcmV?d00001 From 850c5c3d179313ad47ea7cac6753dd11060e9e8b Mon Sep 17 00:00:00 2001 From: Alexis Montoison Date: Mon, 23 Feb 2026 00:04:01 -0600 Subject: [PATCH 07/16] Update a few sentences in paper.md --- paper/paper.bib | 14 +++++++++++++- paper/paper.md | 21 +++++++++++---------- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/paper/paper.bib b/paper/paper.bib index d084a77..5d99bd0 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -48,6 +48,7 @@ @article{jonasson2020 number = {1}, pages = {1--20}, year = {2020}, + doi = {10.1145/3382191}, publisher = {ACM New York, NY, USA} } @@ -55,5 +56,16 @@ @article{giles2008 title = {An extended collection of matrix derivative results for forward and reverse mode automatic differentiation}, author = {Giles, Mike}, year = {2008}, - publisher = {Unspecified} +} + +@inproceedings{TAF, + title = {{Applying TAF to generate efficient derivative code of Fortran 77-95 programs}}, + author = {Giering, Ralf and Kaminski, Thomas}, + booktitle = {{PAMM: Proceedings in Applied Mathematics and Mechanics}}, + volume = {2}, + number = {1}, + pages = {54--57}, + year = {2003}, + doi = {10.1002/pamm.200310014}, + organization = {Wiley Online Library} } diff --git a/paper/paper.md b/paper/paper.md index a1a6d6e..39ec3bf 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -27,29 +27,30 @@ bibliography: paper.bib # Summary -`diffblas` is a library that provides algorithmically differentiated [@griewank2008] BLAS routines from their reference implementations in [LAPACK](https://github.com/Reference-LAPACK/lapack) on GitHub using the automatic differentiation tool Tapenade [@tapenade]. +`diffblas` is a library that provides BLAS routines algorithmically differentiated using algorithmic differentiation principles [@griewank2008] from their reference implementations in [LAPACK](https://github.com/Reference-LAPACK/lapack) on GitHub using the automatic differentiation tool Tapenade [@tapenade]. It supports four modes: forward (`_d`), vector forward (`_dv`), reverse (`_b`), and vector reverse (`_bv`). In addition to differentiating the standard Fortran-style `BLAS` interface, `diffblas` also provides differentiated `CBLAS` routines, facilitating interoperability with C and other languages. -Its API mirrors BLAS/CBLAS, with additional arguments specifying differentiation variables, making it straightforward to integrate into existing workflows. +Its API mirrors BLAS / CBLAS, with additional arguments specifying differentiation variables, making integration into existing workflows straightforward. `diffblas` calls the underlying standard `BLAS `implementation, and is agnostic to the backend (OpenBLAS, BLIS, MKL, Apple Accelerate), ensuring both performance and portability. +Precompiled artifacts are available on GitHub to simplify installation and usage across different programming environments. -By providing accurate and efficient derivatives of linear algebra operations, `diffblas` facilitates gradient-based optimization, sensitivity analysis, and a wide range of scientific computing applications +By providing efficient and accurate derivatives of linear algebra operations, `diffblas` facilitates gradient-based optimization, sensitivity analysis, and derivative-based workflows in scientific computing. # Statement of need -Linear algebra routines such as those in LAPACK are fundamental to scientific computing, optimization, and machine learning. -However, they do not provide derivatives, which are often required for gradient-based algorithms. -Current approaches either rely on hand-coded derivatives or generic automatic differentiation applied to high-level code, which can be inefficient or error-prone. +Linear algebra routines such as those in LAPACK are widely used in scientific computing, optimization, and machine learning. However, they do not provide derivatives, which are often required for gradient-based algorithms. + +Existing approaches rely on hand-coded derivatives or generic automatic differentiation applied to high-level code, which can be inefficient or error-prone [@jonasson2020]. + `diffblas` addresses this gap by providing algorithmically differentiated BLAS routines directly from reference LAPACK implementations and following relevant differntiation rules [@giles2008]. -This enables accurate and efficient computation of derivatives while preserving compatibility with existing BLAS-based codes. # State of the field -Automatic differentiation (AD) tools such as Tapenade [@tapenade], ADOL-C [@ADOLC], or Taf provide general mechanisms to compute derivatives of code. -However, applying AD naively to low-level BLAS or LAPACK routines can be inefficient due to loops, memory layout, and caching issues [@jonasson2020]. -Specialized libraries like diffblas that generate differentiated routines directly from reference implementations combine the reliability of LAPACK with the efficiency of AD, bridging a gap in current scientific computing workflows. +Automatic source-to-source differentiation tools, such as Tapenade [@tapenade], ADOL-C [@ADOLC], or TAF [@TAF], provide general mechanisms to compute derivatives of code. +However, naively applying AD to low-level BLAS or LAPACK routines can be inefficient due to loop structures, memory layout, and caching constraints [@jonasson2020]. +`diffblas` addresses these challenges by generating differentiated routines directly from reference LAPACK implementations, combining the reliability and performance of LAPACK with the efficiency of algorithmic differentiation. # Research impact statement From cd5b8bcced0628c419087079ac36a00a98290ddf Mon Sep 17 00:00:00 2001 From: amontoison Date: Mon, 23 Feb 2026 06:05:00 +0000 Subject: [PATCH 08/16] (auto) paper draft --- paper/paper.pdf | Bin 208333 -> 209482 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/paper/paper.pdf b/paper/paper.pdf index 5cee767a6831c349a6edf36154e88d9708464001..106d68c4cd159bcd279d310c6c803763671055a0 100644 GIT binary patch delta 14884 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 Date: Mon, 23 Feb 2026 00:54:56 -0600 Subject: [PATCH 09/16] Update paper.md --- paper/paper.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/paper/paper.md b/paper/paper.md index 39ec3bf..e3efa69 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -28,13 +28,13 @@ bibliography: paper.bib # Summary `diffblas` is a library that provides BLAS routines algorithmically differentiated using algorithmic differentiation principles [@griewank2008] from their reference implementations in [LAPACK](https://github.com/Reference-LAPACK/lapack) on GitHub using the automatic differentiation tool Tapenade [@tapenade]. -It supports four modes: forward (`_d`), vector forward (`_dv`), reverse (`_b`), and vector reverse (`_bv`). +It supports four modes: tangent (`_d`), vector tangent (`_dv`), adjoint (`_b`), and vector adjoint (`_bv`). In addition to differentiating the standard Fortran-style `BLAS` interface, `diffblas` also provides differentiated `CBLAS` routines, facilitating interoperability with C and other languages. Its API mirrors BLAS / CBLAS, with additional arguments specifying differentiation variables, making integration into existing workflows straightforward. -`diffblas` calls the underlying standard `BLAS `implementation, and is agnostic to the backend (OpenBLAS, BLIS, MKL, Apple Accelerate), ensuring both performance and portability. -Precompiled artifacts are available on GitHub to simplify installation and usage across different programming environments. +`diffblas` relies on the underlying standard BLAS implementation and is agnostic to the backend (OpenBLAS, BLIS, MKL, Apple Accelerate, or libblastrampoline), ensuring both high performance and portability. +Precompiled artifacts are available on GitHub, simplifying installation and use across different programming environments. By providing efficient and accurate derivatives of linear algebra operations, `diffblas` facilitates gradient-based optimization, sensitivity analysis, and derivative-based workflows in scientific computing. From 960c02167d936981643019a9ee4db9ff4b8411bf Mon Sep 17 00:00:00 2001 From: amontoison Date: Mon, 23 Feb 2026 06:55:53 +0000 Subject: [PATCH 10/16] (auto) paper draft --- paper/paper.pdf | Bin 209482 -> 209470 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/paper/paper.pdf b/paper/paper.pdf index 106d68c4cd159bcd279d310c6c803763671055a0..d335f9df3cd92aa3efcc99e6827e51c5e630404b 100644 GIT binary patch delta 7763 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 Pgn>W|W@d%=iWvU`0oKWG delta 7763 zcmaitRa6v!qD5&Cq@=r3Vi>whx>LFvh8kL6knRrYhM~JlLOKMLZmD5tNvU^V{J+1w z_StKl{{8op`|lg+un_sP@Zd;bzsFwRR2%QEWQ(L)QSy=QEDFT+KsuhS5Ht3gD&K&XfG6zZL=6`|H3>;s}YOKLm zoxa5{wW!$rd;L4LJuoeeno)7*4Wj{z)|MX%&9nG&P|MwuoV?MaJ>0<|S(3fZfV4;< z1**jx`1U!{4SWv9ZJq&CXLG(<-(lHtyT4vGf4h;ZW4^nCZ*2q*5_etG2pVw#!txW6 z(!d^f%mR63=?Kb1S1r8@vsvg_hdWgdxNp}w8Xa$=`1hk?+RfjI>`{Ze!;9>AEr8SV zqA1nFWrd|t6D%g_MeiVKA>YDly8Gyv5qU5LpLg8Qm0@n&BnS^iDwDabYY#DPe3$!~QBpT)PE_HNo5kvVp#;Pa%=U@A7 zv3*&Qc*;&uz?jNCIMO)o`Df9zpmQ&;GDh6P3RQQWh|Vrb#S94Bf`$Gvne=zzf64ZV z;HC?1<{;BPCEd{NZp+iQUlrsHLB_9CCmlhR#E(7dVEIcs6#sex{3QR-9=9K6E$q|t z;S&s?>Ph(u?mD2pX|Of-N{!mQ+MDQs^0UUwR#iF>OAFE5p1uR;q;tIiFS3^7a53{uK30|bYr?I~ zm&mx2hLAC|H{qbi^&5n%0m5*Ys@@~$v*>`CwsCpxuOp5jYYH#HOK77QiPt4k&A>1v*miq{T$cF8mAUDiNzcrWEo?U zXwYHR>~^RPB-ZQzQVNhs35PDAlQ~jLkP#sdozb}wb3OD+$;wIUBj`gt5KH2^e`>Z? zaq?s_9YOkX-{T-?1}rMu;|ql)1^d66Ina{r2b3iGtjVupk^CxF{>b&0z1pP8yVL`N z#;@$oAcxPQ6HON0w&Y=?27BPzfxPLxzJ+9OlGKg#b78$zHxn@_NO{rrr1Wl-^d^i? zyu5eCqv%rmo&eIs@!DG<4-?O=C-R}`{N29N$PAgqG5o|W@atn!;LFxXQJqy2COR?3 zc8-C3#f9Rhw1>`@B^iYGsV9~1AJP#Efjc^A&x;cwqkTBB2#p35(?N8NGqdyhIdwgA zvr4k)!yIDzhw5&+?XmSUnG2Pm0@py0?>~Qw*&^(QQ>)4vJ7nVHoP^ZE88wOLxVbFId%qRV`O$0VKD zdHf14T9zAm3|u8i)1%-?YVi`A9^Sk-#*zL&<(yPI%Hg^i3-WQMkbd7^7kd#+cLQ-| z#;7S?I$@g`wew->X#W9&c|7CYk&J}on`Sx&wREGS6dPP8e6Ex#uKG z<6F55jnaCm+=NqvgZ5lnzUz*^io@HOjJ#^_8G^)1zH&MJDN)-pN2_ecpi%hE%quhE zxkc{ylxBW}YT-GdPUic52zPHpE*-){i;NRdQp|eb4Wf!b|Fkj~?DY|GvNe1dHJoq& z?)Mq&rcz*tG1`-#&@!yaBw+v*=Xl=yp(8}pj^;TXqAWu_Rpc~UAzvlL3Hod|T25G0 zF(DZoDL>^8aZe68qFQuJKSc9SlkE+4 zrqennjOF($9j&9$VUT$9{2@dRk0mPH*9RKcVpsS>(kIGCmQz%Bl3u@Y$!IpsSkQJI zI=hS%=(;&q_w;5D7g+1X*b{5^9-I+b-L{4QCmzM&BS=tXd}|GfAWP94ZJ7u>Uzjuf zCwj3kz}>U(xM~v$gs#}X9nWz?9zXU!`aVB9vZqHNA9YKzBve#_A;L80V>d_K0~p07 zut$1~?nfV=HZQ$riQdgJQ_Vh94gjtp@E(*2P{>;Y6zIvYe;&gyZr}d2kdc8CpI`Pd zJF=20RcQ#{`tC5u^>PmTRn+a0DXckVPwwa5*S>e}8hz5gl$RMxZ5AGMIO8x(YW|v% zcxilxO-Dx&%2NJJ3z>UT&zMJX=zv{;?Rq3fEY!>Ox~BrBgK9*mJ%km6t0J3xNj@X8 zaVJpOcf<*#f>XHb_ea0Yc007i_Mo+qQI)?1Kt%BDaOJxj{6&`Or2ig!xx@4*zxbqc ztW&P#HLCQFkHoY@?X)XWgrbqxGHE&+XC~Wi&td9Ekou}5L9*laejQFb7^=9CQj0~$ zG@4O9(CQe&(_9P2R1;wER8A9$&W52Z7_qMlkv5Y#*|)r0XT#2NYveL|$B`K2g_u?x z4)=v?wTIxIw-)fpssLIzEqRwVLklT0)R*7Ppy*15{ z7Zcg?#YEG0owGb$c>2jlP)q=yF#aE9jgNeR(`YC1z5zG_38gj8)Vqztz2(mPimn)T zA7@j<}rwcC>CN(@b`Bv}c1_fhKmv7Wo^6w=@$ll(RVE$2g!! zn`zGxq)VIPWKDCBzI(s%Il)zCg3qB_@3pMw5_Tb5T3IjgfyO$50KX zEdf1y%!l@S+DL~FxZO;4$Fl27gz-hhPupmI5!JQAmr)Wos#E{a&43YIzg@io)u~&D z=(I70UwS+2XPpH|fUH7PNvmIK1!4dRpP=*2SxQPak!Slv-Y+&8EHoXbPma}dsMUMk zOq4{$ivX=@dd_A$1J~~M!UPtxVP;NmZ6d4Y;LTJvEp=&P@eTn(c?Mq9!8NjKc}m|l z@?0>al$tpfp3I*MI+NR*5aD+&6}*CYSx@ub894kk6L`-xNP7Lj)T*^~VYd37~0Df7>;@#nd%+D2Wl zTH=Y=#~=kdxuKz>`(zXED0D@E$)dxCs6>iP-|?@1yLms74zBTsQZv+E)Y48v0;QDV zk!L+IsT`J#+oNfInn#Sd%gkk5W5g#b)XkvVQmE*i$CW$5=Dxb8CTCf0Y?Lz})hgj8 zz`-lOC~hCLZDAR$)#%e)2VO8hiArB42SOHK;ky-Ckz-05GSRP`ZZdenkp&Tdf_!$| zWgB+CER0N#5T9Y1`4moiXWb1#sGcqvCvb;JQafmx;^f5%QsT&G*jk`q^({+sXhH~? z!o-mYjyBe?bKcbEXUN>@R}4_7vbPsWh!hM=2q z+i9&}Gr_yFum-YUOST^(z)o8+KO|00_)4HpUM5M%d1ih*#-QD|B5zWc1x#+RyONk{ zQZdht`uk)1_hlj$q*A?@R(;r_<%!FxZJzp|uZJ8dH#J7kk$gQTgy+-qNzCXVvmiIl zwPLy5rM6$oBc`#voinEp7-&F}D^7Jf@tPL-_Q!KEmH{Qdbb(fKKp@e^QwxqUz~fFt zj6tns31pbB+7b!y>AAKZsz@r%thM6Yf1+I0I6GFioX@{&qjt8Z()SahAKUNcoa8CA zZXfQ|2xza4NY!taeRt8}M`P^fRCI$gTtbcit$x92t8UFkZQ&%Nbz=KmUnA&t3#10am9e`x45AJNu~lg4O*_oMv^eqt zm5U#gePUJ$>Yd;A9OmiAPikEI%al~m5nBRw9p%W$ppM5bUZY}~K_@&#e>rN+CuPX5 z$T(%C`_Ej6nEpakin8x_^-h2E*6_XG$i7d~gNXZr*_Z}7Xi8RQ7UisXQ;B!=hXZo(ana&vVHo&>a)D*9pm+G$O&jq_+WlV+n zz6>9%cEK_&JM52G`h0tu5jyH0!CABUywIOcN`)qladQxtZ-^!!YP*kTZln|zi6RrH zKV&2@smZ!OysM_$y*pW|sll{`WK?4{5XklxCd&%t@S=7Qs2pKa?o=++={djjX;8S z|1%vB4mN}Ad|1e!m`@$G8D-!-1Z^l*5~NC$$(4ws!^kPqTZb3 z7^dsH&JeksV@$HhAF)+rMy!(RO)N-Lk%nGLyyBj#)ul&zb6nW0L9fwBhq+ zO2HW0x!w;2#UwuiA_eYdt^1?+y_G~-I|St=8+EESQ#L(BRj7wOiLc!?pv=tnC9K?F zG6~4^kY%fn(L^p@lu{~2&x9)$esknozZD~i`*)Jw4?01HH(`Lo{W7}G6&(C{>m*G~ z&40)aU!cghK_+@e{>o|N{3=-I;SW1n4?yEFd-d55Y6IgD4$p>`7NI9z{;{#`E<_8{ zPgrqZB&o6r^aW4Rxh#WciAgJr-AM{o-De^D#(mi|lAd{50ChZzWR zAWb3t9%st!yvAjJ3aBXsG`j1-3lH?xPf`$R8Y8=tYC3YwF&mmuvfU(7$eV7nk8;F+ z-U>PFx=AQ*K~fZ-#vy@DI{PblTuMAQE}Tq2>Ki-{It6JZeb_M`)T^Dp#9u zcj>$7t7Iy?%@)Vm`6Nt`7rj>M=fd6xkD{7j`BXNFK|DCCvDaTkKaaOr+?eZmNyTCQ zz*C;WqpLrA$-aRY&V@{6{a|dW+`x2I(c~0$wlK-V`SbD(Fv&e)VW;D9 zm{e3f_PNfa_o8gYM_FiCKajJ_yQyN)H5M^16yZy%k`SCFf6;_p>EiGQGvb02DcoTBauv403w{3^2s9MO+4}r8t!GuEN6xY8|Y1Fy|fqx`Mn<#KNmdn@{Ur$n< zEKfUf!qM0$O^A_Q(Q-#E6Z3Sd!;&L0*<2i;M5+>fL7P0rsG7tlyYZV{Q?>rATRbIe z|L!ZHHyFgq^ryr)ey`Re{q#aVx&N~7MbdvzsrrmWqHRN2gse-Y`8gO89v2ifze>fU z2?%8U<7};PY~ZOV_s!n+Ye&2o)M+ADu`bOO3A3q}zk;Z5C#ddhv&Igba4F3#Ls1+- zet=QRA6F}s5h5gv8Kx+_?nx-}ryp}PAR`j|`;4M9EZ0Icv06$m5m2;$`tKgDx3nz@ z_R{&7^b`=IyY=tkSI`jz(Zz_>)poK+n%7q?nx!iHuNvx8W`gk}73Cw4R;)yIoGZar7DgKX7!85`$^4_?^hcZgyllrKpu(#XyLe!a(mouhGq4zXq3u3 zico@B+o0(-hW&3EE#3@bL!+IAgk+%pwjc+8pkTVUL|V(k(9*TId%td(*F3>OY8I-7 zY-XDI9)FM|rI^@R{IR{}u`snj>sBz)a+aY99bdC1g@Aqo7dLP6!*z4sHlq691KZrJ zITfl3uTzsQz8FPFQ?i99k}q@@y$ZFXVGUq*72Pja@j66ady9^Ev~bzsk% z(nVP9zo_f)wwAqfTaWnNhq<8ecr0J?MHdws3r87N{WJtw6erw|_r45pAa$Q?&v#%b z{Q(`*3=d=%OwcS_qbtA5Olp{~eHL_m*s*`Nky)(8;vjfJXf?$iTo<(C`OOl&ba($x z>RtZGi&zdu-xl5MeRM}nB_V3yx^$ZM(ZtjE#h3hRkD5RNbM*S6T{YjVFhCT*Gp%Qq zY2W<~{mU>Cm3de)ZAUUK;+onNQ%fP$S-VV#bd+6$;-d$81b`hZ$%qSxNc_O4 zrxe7Frxc{hOgaGHf3DbQxz*fkK3RI%(z1RM0Rn&m03eVTAn@N~)-Wq_O&T2*5oE>y zq_H87_ZmE4CBaN%aPg!PL2s(4q@{x@&EBT=U~&GQl2V{qP4+dY@Rk~j(8FYhJ~f&u zNnG&n>GbL8Dfu3uqQ{54Jci;+gc7B_2zN&QXck+Pt>kOk)c6r!+0o;aR+}~^vT+fL zTOnNU)LsOw{VU{hHVj#H*)}9+MTnwgt|mj*)icbT^#zGyF;2H~Y<> zbyjw=$4(ZUKcvJkW{6ZRD8;E8c`aBG*b`KysposGjjWDj+YE9l0&R#HS9vE2 zlp=9l{hhxN61nC27_}9aVg_qI>z@)DTWCJwlpHY!c?ow+m);o@kS0YKgmjQ&5D|PE z8pPn~7CS9&e*o0X#ex=o_<_LyT}XVC4eMQ;FUz;Q5JY(@TbMXh5J)<}-q zjt0p6;3e{%QD0=%g}kqKuaQ$^N#T`KdG@Z)i{C-y0s^RYcWy9lCP(SCb0yaBy9C={ z&arEf7a`oMK|mX1Vca(7>1NSn44?zpv>^D+G~tI;cLo$h`m9Z()&BJ4hdh6*0Qvut zM6XP7x8CR$*FiXDPxKsom>ZAwIaWs-TZ~Pz5gJ3~)Y|W}LUctrU8$@o(uyzW?PUS!-L*hI zB8a=4xJEw)3RIocpTrKkMcDQF;oS^TW1~4XKKvAWsH;9fS!6A}z7fWO?!ETQ zcA39zKed7Eo0e=7Bn29|_LQf89QjQid^Jv!5U@Ui2c zYD%N{;E*6J0IBw|zAhjTadb;XnDH+~$st7SPJ?foRWw;Sq=N_~zb?t`K0h=Um052^ z>5?R0BdIJ;)D z5V>2!x-8Cf; z)x6{R_Fgj1Og>Fv9_P61Wa{zx5a+PpOW6;7WvPp(TutmPTCZHsWLGG@mYFIm&*!z? zs~3RF}`fe%LX#wyc=GI@rfUt1m7WIVhLn;oM(AsA7Rgq9U$f>J=H|3`%MAu z>h6XODn`Al%Kow$Z#@i#c`2~(y56A+pifl62#$5ZiOabh&qmj(*~z8CpgH< zSpOcWFS+<4s4;tgxbb&0?}7l|U-K`&f)rCsY;1ZgzCWWAMOeL)zH!GcJ5yw@%-yVQ z=6*7<4RzMR2QL=LA)wr6#x`k!z@~CKz%)}q%qi8(Zq)X%ObX<_DNdYPSr$#0_F<2y zyevLF4O3gGdK|2+7FZUEqL}upavJiO{{^co@e2R| From 3b3c4848cbfff75e78276106f418b2bc9849ac4a Mon Sep 17 00:00:00 2001 From: Alexis Montoison Date: Wed, 25 Feb 2026 21:48:28 -0600 Subject: [PATCH 11/16] Update paper.md --- paper/paper.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/paper/paper.md b/paper/paper.md index e3efa69..951c67d 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -20,7 +20,7 @@ affiliations: index: 1 - name: Inria de Saclay, Palaiseau, France index: 2 -date: 22 February 2026 +date: 25 February 2026 bibliography: paper.bib --- @@ -49,8 +49,7 @@ Existing approaches rely on hand-coded derivatives or generic automatic differen # State of the field Automatic source-to-source differentiation tools, such as Tapenade [@tapenade], ADOL-C [@ADOLC], or TAF [@TAF], provide general mechanisms to compute derivatives of code. -However, naively applying AD to low-level BLAS or LAPACK routines can be inefficient due to loop structures, memory layout, and caching constraints [@jonasson2020]. -`diffblas` addresses these challenges by generating differentiated routines directly from reference LAPACK implementations, combining the reliability and performance of LAPACK with the efficiency of algorithmic differentiation. +... # Research impact statement From fdab3b27e2a6a0a30ae22f91f74a8744b2d314a3 Mon Sep 17 00:00:00 2001 From: amontoison Date: Thu, 26 Feb 2026 03:49:33 +0000 Subject: [PATCH 12/16] (auto) paper draft --- paper/paper.pdf | Bin 209470 -> 209027 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/paper/paper.pdf b/paper/paper.pdf index d335f9df3cd92aa3efcc99e6827e51c5e630404b..4b92b46e88167372de5acb4fd3ba249873fc18bf 100644 GIT binary patch delta 13528 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≪i4&u4U>iJZXwiR-XlXuS!GqVxg|I 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 Date: Fri, 27 Feb 2026 10:38:08 -0600 Subject: [PATCH 13/16] Enhance paper with derivative approaches and references Added references to existing derivative approaches and their efficiency in linear algebra routines. --- paper/paper.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/paper/paper.md b/paper/paper.md index 951c67d..b7ce159 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -42,13 +42,15 @@ By providing efficient and accurate derivatives of linear algebra operations, `d Linear algebra routines such as those in LAPACK are widely used in scientific computing, optimization, and machine learning. However, they do not provide derivatives, which are often required for gradient-based algorithms. -Existing approaches rely on hand-coded derivatives or generic automatic differentiation applied to high-level code, which can be inefficient or error-prone [@jonasson2020]. - `diffblas` addresses this gap by providing algorithmically differentiated BLAS routines directly from reference LAPACK implementations and following relevant differntiation rules [@giles2008]. # State of the field Automatic source-to-source differentiation tools, such as Tapenade [@tapenade], ADOL-C [@ADOLC], or TAF [@TAF], provide general mechanisms to compute derivatives of code. + +[@jonasson2020] derives scalar reverse mode derivative formulae for BLAS routines and provides their Fortran code. Such an approach is generally more efficient that differentiating through the BLAS routines using an AD tool [@jonasson2020]. They do not however consider the forward mode or vector modes. + +Derivatives of linear algebra routines are available in Python packages such as JAX [@jax] and PyTorch [@pytorch]. These implementations are not available outside these frameworks. Enzyme and Enzyme.jl perform optimized BLAS and CuBLAS differentiation at the MLIR level[@Enzyme] but the derivative code is not available externally. ... # Research impact statement From 1ba7ef10fd849a8ca48e8c562e2295f870f5d81e Mon Sep 17 00:00:00 2001 From: sriharikrishna Date: Fri, 27 Feb 2026 16:38:57 +0000 Subject: [PATCH 14/16] (auto) paper draft --- paper/paper.pdf | Bin 209027 -> 210221 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/paper/paper.pdf b/paper/paper.pdf index 4b92b46e88167372de5acb4fd3ba249873fc18bf..688e804fda9b2308573ec4c1211c6cc394f2c7f5 100644 GIT binary patch delta 25239 zcmZ^KbzGax)@=z|+})+PCc%ok7q=qC-CcuI+zAfFp}0$dQrz90;uL9dzr5!?=R4aBA5Iw7%vPAC_H-w|SQWT8i+Odlupy3gTTJ#2Er|il$UKjm4zOZ_)zt)V zJcsBGV+MG(HN04W{EfKpt})Lqa&lp`{T|bfk0oscW6k6-ZqX=;pf*G+$swbn(fwKJAm63`JWtUm`8Yn4h4qa{ zH0MHM(Ijj0^rMuGZp#ugk4~>*!qVVnk$Qjm3D0#<$I<54WtUoo#7nPj3=&lx=GM8J zgtHxGT>CS!(PvQLs!`jUSmweUf2GRNab!q{hT2o-EKegBo^NjF;8N&!=DsCWg2OM| z4?;yLt+Vg0-s8{n|K^$hdGfYO7Xl-|eS3B|vQhjV+oPE*;?7OTRO^(h7c}izbO#J>OWvvxg&D?578;cKc`o|)4AUMZLA!L* zC%72@N&8LOmwvSK{*e%IgYddOb^K^Zqq!>Y8<8VLWFpB;)cKX`N5L%-<-sd$GONPt zZv;$(;zgS3=Ai_&s)thBnDbLIyPROg@5*RF^Ky(&4QbO(OnDH*!Ka~-4GHf>QyqwWQxlQQWd+SCv?uI|WdQtqT zD74?2I-QRU#>y78X`!%hL#icNXl8gcB(#1zJv4^CVUU>nKy=OsD`fV)1oal0w2Cec zsb;jymyEkUHATbDc)$hc=I^P^`bK6z$W+ws7D72|1dR%kv*=C}!PeZ`yGSeR7B7Me zsWl@nPqx9+-YHMaJU`1-rR#=;dwqlvZQR(wq|^llAhokm48q9SO|!lc%R!v9#~6z2 z0nA8`UxJxDJ2VRZ1G@6!zqJf9>A3_UACF3+E%ff#8r3!^RGw88HFmNb9O`)zt$ieQEqv+J5|)aYTt2Eo3fydKVCQTDVGcuW z`W1N+-+krNkNK6QGF2@tCH7ZjQd9rokdyEJHIGDKj$*QvU%dh>s*3AXj75n^caXDGEdRYc6sNTn-EL# zmbY9z0c)E{dK&3C_mDIvV6Vsp_7G3rj% zb_C}Aba;8ivcmp#Vj^G=tsnkXZotPH)x<6{mSJ|I%7et=#2?obvOw8>2-+qCX5f$u zp40gwu!}LS6y%MU_zb1U{>?c^!b+~*tU`a8&^51l#b?u5X2vQc3TvoYlk|AoZQnD(%U%v5`YhCp7*Wdf)D_0{W<|hRKr5j7Lj+SBy zR}a#50!^3mVqcrq>z*qbArKCk$kf(KY5di196N>a=jfrt!t#G~9-DBN(dHPEN2pb6 zQgz3Z3Q6+qlJ~#D2+7_gxxT!_+jozlh>z10qL`8F4cTKD>xJ=hm!uJ;=hR=}>&p5)63~ci)$oJaQ3EBKZD}~YU z2hOLv5q1Rz3*SzT5Vp>2eO7(iE{p_{W|X?-0JuFWdGi%>r}}|1w4YYph0gBL@n#Px zboy4O-xp=uwyiv;DKp?mr=%U$=>s9yw`U5Qtig48+o4Xd>%*PXk9SsFy2sDC)hqk?<7YPk?n;h*w8Kkk#fIMvRRT&M5kg}s}(p!uCU})K= zTi#JS(ob{Mh{%rc>^+=_A+Xwt(mlH!4nYc`urqH7EJp^A?@@dppAa==Xc<;%jTe8O442(C6nV{}HKuE%o;Jl~M@ zjKe)Jt!`M?7SvjVMyAa`6BAD6e3;#XZkGHzPs;N=Pb&R5BA6InZbiTooal;BH`6lj zP<+`A;n#{IGzxU!Uxs*Jm5z339H!AGKkW~gGf;b)-8H9<^bQYUE5P3lmmq2G&PMD0 zK(bN5DM+wQ5}}=txku8HEWh?kP72>JG30A|%Q%yFp!pkzdu|G$D7MN9i6(hl4zL17 z4fnwQBLK6hOGo3#_$$?C3UI4@(E1K0e$<}=;%+Z_3eqSj#kb(B%l$L%ywD*sKAz0eZ{s4N;KjkPV!ve~RrCrKu%WGWRL~PZs zri-AOSFo0Y{!v-UDUtXsmH?0c+&QPUyi-KIJL9A#^IHL-R{D!CUU$)KLEkA{@q0ip z=@O;r9=5li(&VkC#2P6KF5UtM~Ps6mePB&EHTQ5^rL6n$TJn6FM5S!T$;&*0?k)h01LJ9t2YnGQ&KzgD{*=VAX zG(~A1+U6_Fr}t1gR$;^9YuA9q7t&Y<;pWke`GJk&?<(35dzq7gSV}mEa(scgt-qFw z5)kQM`qYX!gvSo2M-es~o@Ug7Tqf{_Zdr$X2ZrHmLQ5;+sp)cbR^>EGo$AWIgDgCS>oT2|3 zakKo>20vq=Txe~}k!nw}-Kn+rBl1lqCF32$VM?^$a(MA=MJpPq{JREP_~yI7-}O2_ zZVFk662^|sSM&rPso{Z%5Cu5%&khZx4`R zPkRG=`>}^%+hBT`#phQ<7`?t3Cl!fXp=H#|OrKf*z;@9rgQ=-sO2*rKfV*F3nH7)f zt#m0HBWeTp8f(rJE|5L8utEf2S1xc+8rioo^iA`L85LCHUBcuqEpQ9{JEoUc>T{MX zF|-eJ5{kKU>MHIjb!9*G8?+COGHnO`jVl2+xX=P9ZG7)y>*D|C^)HCZ*Xwu7w5%g~(IvcmJ& zSb{h^niqtS$q2+sO(QDIODceWRzueH2prZg==hE_!-G`W{Y0X-uSgqbXct?lvF$B5^EbLfu%2O} zwRz)2M80W7D^ol66GCEaZn$jy8ev-6!$WXA5SZI*W}il4yDa6cP#z0a^R)+PESlhR zBc7|H5!3il#uY!ir;{)HYTBDVG^J<~jY}Qw@Kh4r*{&5&G_`>qQ7)F8$(yPovih?9 zzv7&R)Yln?A1EZEY)!P@#!M}>0cxVJRydnJv=htvmjku`&^T%Ji!?YZ11eYKU26YzD`h z{bZi=OISeUoqWiGxYVWEbBxhjHoM4G~cldf>ZyJ;ZO!`2!jd(K9zq#e|~yo%MK>{&(cxuipc&;frZBKZM;a!*73z zNkl=J+n;`eTzpBA$sw7I&xVj-2y(caANpf+(JavI`_K)+-nqXcVeoJc*gi3X(SyPk z{(%Q32i&EY!A)y`?p7HDJ2?F`vvd406f%Saj7&=3lzx#T$KKeP?zVTd8fbMbcVj1# zMjY5qyo*<09cz$qV_;1zBW^V)O8FH2sZ$r>;;lDAC7q?;nNjga9dT%#nw5{)C2X?p z3fY&~6`e~6VH5C6xR)4Mg_B)UJ7?*f0|k+@P8)MotzSuI$_-OQGmlKbkpe}^83xvM z&Bm;}T2a{1But5r%VJtn-0XqnjYbC|+=aho{~a zGZcwMamXv1G_Q(pta-u+bjMz-AL)(oO-5WmA9Gdny(;0`W=>`n@C84|*Iex_jf!`Y^qU46zjGotLvuRq3onJ3gs-YQoSAkq@>}7m9h|iA&E0|E(#DNdH@ton zI`Ts7BxrUChHpART1P!AOQE$<`_9_)o2}2q{Q;;5R}SrVs1?jFQVC62^7h#emkoRz z0W@2pQMngy3r=YDzxgWLWq(*6=7*QJ3VVbwkb-Dhn~EFKB?W)=MbJ|>wO+}cTB|ig z*Dz~J6E$g*-7)U9meY7uwccY{BSxjJIES8@weA(g=v2YiZBULhZmMGF{GfA7R_nD* zN>HyzOL4=XYx`p#Z_q*We=*aEgOcuM%YxONPNQ*UJHM zlUWYMKz~P;{_WH<9F>7=V%Vlb_{PAH8{W#sInp_*eC>#768S*Ir9RouZe(Mc z5>XI^eO3agiCE8?R0M7o**h9l;hO!0lkM*ehLrXrw zVmkM0qoLtU|A$0wYOPm?2|*O!(c}b#W|C-@`$s&6zd7>QgGm6AAG93&=a`q=e=Q6ga~( z9XFD#7i78nw^|cUZ)LZ~i&Tt=#M1!p$o-I@7hQ z_*j{}N&CV}6PSu#$19T>R~RD!DMZIoscLlpq=*trD%+WN_(a4l^2o#HTZ{$|PshQ4&qLo8djT9XfDKcN&O&?KM zOy!D2jEQwS@0~Z~#hNVN?k^)&u@Ny4j@tS`>tve;1|tvd!fe`h+t{)=aW%M;XRyk~ zlbX#O9xQ$meewLDhsf5mrD65y``CEQswof($G7?dGeJ8W6C6U(96|vj$phfyfR1Rw zaKUkMaDtj)v|#i>C_L(%-26aZeh^p}iWv?=25f*FQE{&x&&76ZfepYOlK zz<~baee*^P3?U2+9~fi;;^r}D;*`m>$?>_J-Hq=IT}$C`@V;3{Eq>F(3vB1_8I?{@9MqjrfNB%_R?&O?+kYDfMZqFf) zT|N&d4-?EN?S2~{SJ;^ao6;{5BXE}ol3Y|g$r9c((%F1@`#@mNxW5%HPwm%F6fJ!In$s3^v?F~2W43Jsp3W*E>h>qus+AA#gtc$h=S zY+YiX*ltc%qNX@+26+n6E=LS(-an|U=sXpRTbb#i#8gr@am)gA_cbrSM*s57&Frsm zDOuq6F6_*i5OEdnVt#fwe_6+tDw>KOej4XB{E_0<;KoGSw>JU*5(ktV*Ub2$LCj!H zI&-FhtC(-V6)3WYmc-_e<^iewB?Gl7$yVkb%`B>#we!gZ+Jrb;oia`I_~VY-lSPW9 z@aZH3k(Q|{nRRocl>eF5SSGhE)QH4gV@cADjJN8Cu`>Kq8-q@JTKQ+0Lx|+%4MpSV zes8H)5UY^$as$`hXI9IkbhdP}UVa@0$)Pf?z(jL^>@r%>L1ZGN=L~|8%;!H&YtU>L zqBC#QH(8v8v#=sa`81iB%bwTN;4U6@as|g<>qo{$9qJ2VYotFPO#Pan`DozLc)d3Z zQ6(X~P*he>sjM)! zri{9-B0-8)9!1uk4}jDvqVlhlk}>7ST)X8QO9GEt7;+YR6DIbS74&76S9!APNp)wu zzbq!bW$Zd*5~2(JZM7bp4ZG4b!AP$#>!PLX`~AY1vi!EXVyE<6(RB|d#asP$mex~f z*I|WrNys!~M0eCiBU)!(`OTW+v4VFW3+S_#b}%9KuMk>HD+I}$*(?}m5!ZMvNS68>QCGhrANbVp%uRiDMiUv<-U3^ zShb;8=r6pF)qaTGAh7gGmZa(aPJK}Whg?Pkn{`d^0A%8+aJ)ul~#=8mV+5Tdq_-YSE#$_Jdk+IHs|fau>Er>4`eVL`F426%&Hy1X9BS zCXBN5AcB5JK_ckHH-Xk;(VK}q(cV}`uhE^*>MEM#PuQ}S2Vcz??df(s-eOM7nhJTe zDJ;e#aC{chivTr7khDK9l0k*-d8Cc3y$x-%o+Y5MI*DD?5gf_j-nr&yYfkFfUarxr z`@)`;aF@loE8HFRef50L8;8&eA#}*cp_ccqkwTchxQA@vutq<^BzH86IM9-XvYS|< z?;;d?Ddq+L9UlY3On*>b2t8^?))Ofd&mz3)VYvX3h4N89%l>r7b=dwX3pB;mqZDd? zeYi8K~R8WpYRiUz;$jK6Y=oqusT+}S^cA|nwtYgFs`DTgdhAA*vaqS$~ZaXrS9prGYKBV1X!`^w(M~03@KAF!~zf5{rU0n3kF+I zez~HuY3-k?lo2*#^-_~HR*sW=alPnS&akX*W0s}I@S5HH?Im=$%2&CM=BYO?QmUV0|uPj&&}91?CzqPZ}lpAepX%f`85`JU~;6G*v^ z9M=z@Z!m}TF3hpC(a}CoQW`3Z^)vTvt-_l!-WDYUBmG5ZN4L58uU{1Xc{mZZc+k!S zsH}QX>LD^rmF`qq12D5l`Fai(2ZSli?m?z)2wU?azL_yUTov)?@RRn!X8+JR%`J~Y zNJ>?dKA61)j#|~$!8an%lp@3cR0rq6PbD0k1)-u~12WO|*fKRo}p9pcJjnTx-v-w1vcqcNS9>Zs$ z7;)??qPESC`hhK)J6rX=+clY!P|MW}M6-Kd7>6;*g=tQTCd;nw^7c1%Nc(x*=J2;D zgk%T#b}^Et?&;Wtlv(CW&e9sHA*%t{SeIJCdCyWGmV&X4sQZu16TYHiA5wHjFhLlJ zI${7j#kz9XZ`(&iOr893HOihc>*ymtTHGj6t{M32j7o*x90BfI%MJ)0wX+!NAe*;8 zo+p4-#hYavn$%pIr=h!G^!$&C1u z8_lG%E4iLtd_)Zt_wO5`Li~us1%ZhuJ+i_#I4O3tjmd)}hhzPjEP!pWkc#NeBq+H= zG+-gy!}46KGl}Z<24kSAsUCGvMat!JUb%h&-=-GJ{hRej%jbkpt>OhQ1++k|{NU0x z+G`s5IW{C=I37%`iXMK4t`_eMEn6g3o?8NijNeCUym4?R| zYEw16!n^`i2wy$Y`?c}+{92K9vC^`+?_j5A_GdTs8EkEF(|-oX^2PuqnutXJ>ZxywXmHa?%2|4e@oGdR+PkdiGoxQaT zSY8xVJa}C($~7TXs(5_n#Y~AX6PB3(QIdx25#vbBW!ZkR zRi7U`6^vY4%3-&wouuwNvJq<5P=OAqoY*D!ORIO)g@0I1t}Fd#ePD;jSa23tKXAou zk8OVl-dlE=!ul<=mG2Puqm1MF)ffr7AzXQBVi} zTSW!;yZ6-HGml%!lIXHEO=60*^z;*yxnx5r?qI^teJ%L%)|&<8 zxL#^E6OsXTPtd2S3#M0~UWRTVutfTP%D#^{mR@R&ogqhzQTE z9_?#petTySkE?4~%#|St6Hk|03l_XQ)G4}1DbhW%HQ{^{xV*(Az2lPM2@_~Tyd1q7 z%u?j84o39>sJ0NiO!;Jp(la+4>(s5dUuBzXG&?J1V+8*t2M*k`wk$rW7YYjeHks5rU#eA&ZEaqmUh<=2(2Zu=hx?$S)mC*!9gkF!Pwu#|1z1!vT zDv?Z-dgeA!a==+gWjAEy1Gu5dP<0t-NAx-3J+?*3#a<;xCm%@Q%O^A6^E9K8;Ks>D zkEr4ikl-p;?@`!E57*$ba4c&ZmgQyk9s8n;PS-BH@Jd)|3R)XO;#=TG7=I(lm}u-c zW@$b1A%!Nqk(no%`Xm+=Q3Nd2?>K8y@*-*~CtdBLT(m*Rg5v1#dpOjH1x0f&HuH9D zpLaC!d^yhI`)6T%l^54E?-ao#M%lS#>pzynCscWOJm3b6Pd|Lcp*;1{g%iXkv&oLM zwsNwGDb@PPEg0#0*UKsPY?g65(p_E5#Q)9V+@*M%FdE6%cJ)DQ^Zl9f;@e`s^jeVS zVtfub^Nr9rVE*?)^Ls~AjF5TayV`)uP>Cb#W^~AhKEGNlp)kKV)mb>%FPuajx?>lM( zz(aS15R$_?T`Wf5uaxNZIys2uj7ulR>Cl+z7bW5gwb$S%A5MI(DRE8_UxyAn%O|vU z2Td5~S`&$0r9|d0fT5m~WRn?;_KzBmERPNaA~eR)5(|1iy#q00w)&}WBzHB)XriY% zg0I5tKN@49YZ>F%>KHc>C|P+9yDvwN4O6^8i1wW_;9PU~ttXrvwhFc}By1OY)2tLL z$*)Y#%F-S<-N-7>*GGF-qslCX#`JQ10-rcy=vQhf4nsb;o2fE&=cTcS(sMMNXKk^Z z?Vfw*?1uL?3_W}&{wPabeRPAlz}=8q>E@pelYK+~9B|u|!CLy~PGb2s3%+t(xH-=e zBH0806x`Nl^3K}kT91fuUhvwO3GV4tM)b5}mwtHrz5&Tfc7?rsYi%1$aRVs32V&*a zk`@lkRTIhso#aGM-y`PAnkcrTP+zIn8fVPqjg-@-X9s{cHv51PZbMN3!jTbC4~m$T zi40T0{gjM|tOAXKMFE^jIYkhCz2s?Jr;T7*XokDAHu?U)v`3HO*aKN&1TF| z^~FyU_o{xa5k3Gj8GhBh&vIH3laQwK$!8>I>KIi$K_(qa{$r8AsIbe>f1%*4DYYe@ zHSj3Dt#+B&P?Bq`ZgVq3KwJ|M^ZP<0$wTn_H}nMW2x?k0LQ^+w#<5&zImW#U#G+hi z*B)s=@|w1Eg}C6ojjwvJ+g)WC4F`WJD9^`&u0`HRG{LAWC9bT(-Noz@ugaT>%Q zHkUF$wWf$=4Y5k*@df)izqYQ|tmM^y6zPyN94nPo3`d8d$?TG8df-$#LFkt|;{;CU zb0z5uWg&#vwU=DN*RK6{HYQ^~BdvQMwx%35Mr?qLr^>mG=c1Mc!z3J#CsxB3pXbLc zuL?WO#FbAp zibZ;TLWlprBIuici2z(R2OWpRZAmlmG1TeZH8`RApxcaW91<&tQ74-lZ>;^boEw=10^`1E`<_uS3bXKy19P ziMcrW*f@YZlwb}J8#fm(B^Qu`jgOBD`UwKCfJOxX1jt|6yfWdY`?d&j3`YZx4VHdYld@hmK^w?vD2( z0Mh1(48T4B1_b>*1HeJx_{Y@^&C3DcK|Ol_=uqWs07~ir00nwZ4vPlG&jE0va{kRw zi}JM+)Mx{=Gh&uNTkjc)b6`qkRm(@E<&0Yy4dc43!@TP{Hs(Uu%grSB(RB0e@3rhGI_v z@^ED8*;f$%Cd~Oy!dx8C%~=2! z5*Od=MF)PJiZKV+fgb#PUB1Hs00{Q=R7#>k!GpMIp=hhm;ji~_xS(^OcRO;ZSs+MA zU}1_4TOj5C#zyU}`dlagw?hZabMG%HT`B4_q~8;UM}iexr{w1Utl zBW4O8JO9G0L=zTLzPeO&Up3rwUnmaFaJ0=&P}J&taN2xPxCuIgGlW!6*4_uaeNOTP zyo0+vw%8%Qa0a5?dx{&l8z>cX&TM{-n}B@6(A>denW=B0WPNW}OU0^Tn3kELna5*Z zcxW*Z6}2!iJOVx{;8L4@{i@5Gf}&$RKDBs)gZP5};f@FedcTLqawTuUjnMT=lqNXW zEo-78jqkUR%GMVnm+c?EG0ZXdm)`(>))`Jt=1tuTa=h&HU6W~=nAroxBTqPYFEbDx z8nA<`uBWwb73Yk$!lJZf7$*I;LJkd0MC?Jtdm>4JA;N9R{zRwV%xHR{UZ?`)^9~)h zf_Xe9ww!q)2UpbSyDi!vi9`l$#l3iKF6cM0Z5e@dY3#vADk^8{`t1j7LlSp0d8wo! z+Ndll!8+MG9@AHA)V67+~ zx+6}v8DmEm@kd6uA#}yw7X+}1pST#A9Ofw==+m}lw2?StViXG9X9G*F)%y-objpC# zH*oy8OIlVs<_{|={1M#|Mf&3q-YC}o&MsnU>$bBfi_qYh5}V~s+Fxv;pOEr@VCN;> z6+XX1KljSIh#EE;DT{N?t`SMKJ4gZZHDE2^I4YJ^fqdd>bv2G z$+wlD_!7QhO;mvhoV+aQY&x0J&(&#Nz;tPfJQ4(IOOOq@^d^$>uSeSjNCbwi7XrLs zOD7KWns-CeqoN;6J&a%RMPEyx+Vqr2Bkr01miuz_z}bMtU*D;T$o~95all_fL$~ci z#A&KO%tArN%;n32`?}@J_Y^Ar@;(#*n_sV0uY8A%;UyYKX`!r^(7QL1d`X`)#_xcN zVzB2SNMe1Dl7jotH%09(Aw3gAIz== zaJQ5a6p(YF8~kanqV^HNBG_s*@J250};aiT3;qQvy5l&tNGUQ@IUGjC+IgRK_Lxg2_~ z+xR7r9gN5Mlr`2~(+2CgQBBie~&wk=fd0IuQlZ`iDH>V7~)eKi}0pH zuKi6r?ve8WfzR`(C?spMA@P() zEMLn1(fWy4_NsvZ`7TDTG~fFdTE9$Ar@%p~sBvsQ>f9gtfNVM2CRbz9Hzbt^HLlb6 zwMqT8-}<(H9B((;)VY(=loM9F|H9KAmAjVN(a98%^)^?`r$vEyKZeqh5VYw~laGz0 z1A-K>y>3EOs7KK2-rPiJ(WZ;rR$tnn?6W>C+osXVJ{8wbR|{*x$*3-EN9leGWd(F9 ziw~$-9JK|F=cyewr0~M((_!CuQR93#E)*mj=`Ar6t$f7xxD+-YihIL`F#Zil%$^s6-E#m>3Jb!oW+2zh=ELytM9nK8K2T<@G&@M9 zlcO4L{c6~GSe*N4{#j{F{WF)72Zc)(PHJ8f=?Vfq%IpZ_eUSIj_v7W{T-3)WG0BVN zdsmqtod`Z74lILJg1P?Sq3=xQW!ua7AH&|Wj5|UjdPw|pt{wc)&OR1tx3K!LzpnE~ zYqsvL&E#5eAWyn`fwHw~2zm61P-rD>LvNNr$kNq;(|9XB8Rr{)(AdVO=1FH&>Yo$Y z70EI(${gpAn08fc*J@|=uE4h49zrCms8&?6Nlh(}x5EqX~~wX$0rE8v@)O}^nz^>*tB_~~l+J%X&{ zD2-xagAu+jKlx4)>-z_G`)tuD=g=sYI%I@g&tJGYg$74aMK_eRt}a`NL3(kdkr795C;KemGBDg`v0 zu^|1SoXekNNbiQr~WNyaPbB-idog8$+Tx=Da>NnX(UwIlI zz7#uJ;GcCQjOkjTh5Z82kPlM(dVg2^WVEoUH12yadiZk%I#3%EGG+DCU+HBu=8(fk z_F0eoqxMi|e;Bz)Y>ZoCF1`u8JPUtBEh)sUlbr)J&osA{B3Z{iDHYp&z}S%W-C~Ka zm&g)#eoG=tZY`iqh5b8>HSGD~Ny1g$4`oCw#B^S?mRje|Lq>VDm1X@3VQ!P4PqMe! zhY@up3QK;1?Jqbkw1?q{W&30L8-mr=Oy5v15-;}8g&(b+GG0RO4Ub<;K2gg@Wokmw z-=_77X+-f=aKxRUBo038N^8$)WJ6^I=S#<(H~*MM}}OT3f`drMgo<%K4Rv*%8M zz34GUi47qCBwEF;4wb|z3_~i}uUUz-hi4e&jko+^$T!UjIoOx;Q9lQ|?&f$Fn%7%i zXhUn-)!g^WmUTkuKta zINuu*nLT@0Rv;7uYfwYH5|q}k#!)&Cg6*0)A?IMFRQqK3KZVxm70M)?0wQdoU+N z|J^x}1Bi6a2n*SqDKCs)SrNjE;y0AOD>>dJX>bvt@#9k7-gV{=;VOMPZ7Z+e@dIQGQjGAU6X^b#RcIk;V^+w)!0Sc*;X=K?U?j9?FvkGWQ(*#M*%JrS~gEFu9HthLAi%?tM016?YG z3`0Y@N${=l?QVBU{>Pqs&l%0v$@3ySu1)G5zX@rpj7RZ^3a~9HNB8GaSeOO)&$eqy z+4jjv!`Qbt#yqw;+z%k;JUs^-blK0ma+rem{8xTid;J41rFY8h80DG{6Gl^9SB&dX zOM2Vn*_*{^IV8*Gzc1Hb#QB5u6%7P~=kmSJI(~7KXG`e^{+%ittt@QuppZ*&&S)%c z48EjV_^4NT`J8z3SC4%`FIMCBs*lp&Fz`ES|MX|t+M3zL^d~#la>hxK6+~(04+r_E zxx!4hz1@VRT2_Q&*0b))TzQwj8+xu_yNx)@H7S*&j?Ga_F2Z`7PWltGJl_Ij< zu9^XY5`q#$io}ZkY5}=Hxqr2k>p~Ii~!w|DTrmL-Pk!XmE%)G9vV4 z7eK)69q!9Z0MGoQaBndw*lCX~TwL_6p^^+wxXPb=l~z4W=v`YG$--{evj)evRML)$ zAmN5GjZmoi9^m7@Hd5mrfc{^O3D@6_$@l&L5~ZFTa8Q0q_M1^YSnM1n>wr`XB$~)k6HsKbd^_Z#B`OiZ1}h z|1cJ~{%I@#IiTw=fJs0-PP)zx+8PgzIG+orX- zlL<}^@ei6-=D95tX!4CeQd1Mr?kfW{6GTOVteBVc1K>nivEX5bC@BH?aIA>{Ij&D4 z@0DI$*j^adeM<65EX*s@8x3mbD@n%JAKKshJ>ZgB-@8WkY>k3JD<)=UwTp{_rVj={ z3*n_pH!k0GK(~MO~81Qx2(YEBNw^Mn@U8ry+QEdwdJwZ1!J@G-D>PH!N(o z?i)sv*Q(TRRQ1R-%8yWJ$U9<%9}e`R*@Shzw)MO|$1_4*XQ&jl&lcgCob zYSQCslxfnVYo2w?t-Vt%SX=QR&OFh>CnPRC-eR9~bHQ-EP901wd-FhniiGS6J-wpe zdwhn6JVLyh#>O`K{F*b{4f8xc5lRXHtPzT&%G7|2RN$!l5ls3-tTMHIR+vRbq zBFws5BQ_>+6}qczsI@b4HimQMU#s@d3JpU-mOrGcnkVy_iR!3oCWFnymsAl;1sYqe z4NLtBnm(ELjP|E10?%9+W04EqnsLQsDVBKiQpfVq$GF5@Bm?aF&R*LIIwC=_zJ z*K&Dcnqw9Qgui3p6C%e>8%{-B4o0^E-A7vl3mp0p!TMkvaD;B=@-4klF6iroMi(T1 zom0(Z?>hZY`iIc^kc1yR_1xofx!~W2+%a~<3B*vaffZK<3fKh1ERh?zEzvdlYLoVCh$7RzCLy3<~Fw_8GtCV|8)czxV4OI19BjP$qZ~?Pertor^KQ%10y9 zo5!@`-0)a(y?1@OEH5S@{`9>Lf&y6#w8)#KS`_TZvi*MlO(P7Po%V))+t>>WOKKi# z3(=2yt((Xes2}MY+GsfNmUPISJw|*UEkExW(q519q7rF( zS+{cy+WnEAs?^lm`9;gxvAX~(S3L;{xhy@z1m;c^qhwXg4uI-e1hv)5ztoi! zd#-@J7J+7%O^TSK5V7W->s;b0P&=Exw`g!%h@QyIIVk}?nCtAP!mDQ$N;N(}bt+x? zg-Woq<~KSNFYY5}#QuleUB zdE?1o5FPp|o)>yQ)nGv8f3(3BSVEP>*&S?Z024uzRcYHH_=JIh6d6e<2Nl;r-}p-d zgMyd(8!(rbHl{DlQk5{|9j9$x zH|w(a-cRecxyc!5fBkvMr@?W=g8}#NQSZ~=3oc`Z4KkscEpOM()xCnL0P%|9kGuc@4I_=LFvzj3~ZJ`tML`KW`R^cdMSLQ-c(ShFJjw{#A=m;a}bvka=EZQeYG zgF|pjkb?#b?sjkp?(RW?1PShg2X{C~kb}Df2pR}3!6mqBaDqb!%kw^O?QU)TtMYN`(kHR>n1XSU0djyG8y4wp#$tH*fE>9n7K)kv1^~O}*qrrS+kM0` zSU=hM67?nO$aniPz$;rdOfL3Oo7)-n)JE)O?1-8RO#Birp837odHpG|Nd?#-vEI8P zZg}1aqoFig^BSeEee=sjdB*R|qlXF5O~I)`1w9ZuHpkk9_NFlI>rli}L@_P)wv_qu z@!R{l?}zz&f;f7pYi)}kTo#GiU+REzvOdjH8g3&K%B13#=$JB<Q%cBFM3^VAJUF$j8t{klQ4xWK^=#h1{X~t#tWrx`b zukqJ2hY;Q?BhNQ`dt$TR>xB|?grkzb@T3G7Pqk*W7#oNhh^Nf0 zWYf)--o~I}HbyhGqHuzB?l!i^C2`yF{bKp+%U8xeq6?oQ#KKJu&r@GdYnyhLlgdOR zUL}A_KAx3GY(odF&JFuxAmBO%g19B*C5k#^e~u3GhY2|6KHg>5^p9gAWlsaj_c`J`siG)gqN~Gq!{4?UGt8E@!|i7MFi*zNJf( z#%sw`%>A%nOd5#NsW9!gWONbzT6~L^;9W`=fcD}SuXn@#O@H^{?1WNJn-!}M%;t@x zzLH={FHzVu&9%zeY)B!a6rd_i5gQ#J6_XO~tKd)&6Om-Qj|Q>bdQc)t86ZT(6V?7y z?L~0lf&Tkrf_G>$$h4;L`MS?8HGq#~C3 z1lvB~CHwl}@Wu<(O3nH89y#kDWP^okov}}zmHQMV=2dfNg?TOY=jT@eUf|O|xmlj+ zA`3bV!QzTpxEJbwZW%^2ZPK(zNeqn^Ul^L%4^rx~FlZ8VI#>=heGoQf41u~S1O>MV zo(?phHtLlG{CV*d|2Gbxm|&Wz`Tod=G`f=;1flvx7kku}TI>fWinK9Ajmk=~sHuH| z{n9x}pXUuykzXR^xpCCbyRdczq#=vpc0KuX|LEN>5>V5znS5*bLW|VGO_s+;|9EE!Ucr7bC`G`5pT1Z>o1;RK@~*F)BjrWzAP{Ue zA@qi2+F+|Tzib8iTc`m6Uv(Uasn7-*$Cxpq2(=J@(a|2>HR1V`BTsB(=c_ETRHsnB z6Pc{OxAFaU1e%T&7*m&9WGPW!D;EQ_;sJ@4hl^rS$Az07YbC}D^4(qCIomXxx{ZfkVIwp&el zu2BtrR#p*3JN$f5moHd(nK{Nef{*hc9X|$o-P>CBROUguVb#Xa(G86KBDiotV;;QW z$|NVa7vN0pt!t*(N&WzlinVmRqafnO$@{BeHJQCx(KvyHQ`E@UcO6EY;VWOBlY<)% ze+RXbRv9U0<@?cazQ+jhAA=k=>ceSM2(03TCTz8T<;k(P9AWY$20i?pEe_-3ADxPg z3=T!-^bRFHpEUWiPitmBGeFkN_XhzwVc+nx25>co$L_(WZ76}uu=<=hHS(Ds9s3(R zaa4DhY^}V|PiFR5<(_%drWZ<1FW(=%p8l$xUI5EBTnBN0+LZProA68i&>EW~*Dav$ zsZ3mL>{N&9U*72b>M=EcaQ{e4QI~YnTg`qZC=z;K88sC(^`mk7^0=d#g1>uQeoUAS z0=zx%AkCCOHI7Q`QQr46lF0maCgH(RakQIP&Utccq$7WDc5`gAAeQbeEy&rgg7sA3 z6BZw0Fwm*B1394F$j?>GaJuQd&%!=zm;OZ;NTGW(J3lkequ7>5khwG4INPWT5hocH zs?rp~?BFuFsQOx-TJZ(#8=2L+i=Kl=AHb$Pb)^$wf>*lhRuYl?zb{bv-sALB60sOt<#ea*OoWrL8(@Fx^xW)u=qq@)Nb9!Y=xO zD7A0y>Ddgi!~7W1i3FP)_!4!V-U18Gf1>hVs*k$ZKh7>XI&-j;rpV$4wF8V|^`E!p z!u~2yP_N1xT&j_jIHyO?B*u6f-d)Ce@M_8FDDFp#ic}a?@UYB-b+|}`N!rY~P=eIc zWFn=?R*dyAL6ZsUhT;P^zpYmfk-I+V==D?+iFDgoyy(y%b%9t zJw>)1e(mAf$|&?+=FhsL8UR|!PWqG+2%hkJjRglE39kB8_{~*YCPRUcj5F<@a{gEc zBy4L(?8Rq{x1k()5<^7-0*mSHz_O#NbckhqGsOooEX#^5@lU5G?a6s_@$O*?>}eJ1 z42RYi2da2=3$I&KyaSPSwcp%Q#lABn^-IrP)H}~Zrj$zT3;SkS0#r~n7A?dn5q-`@ zX%?$%8EHMpXF5Vja(p^k-shW)wwi9kKzOWC<Xn zI#yTDCkMNb&O{(9g&>VA3#VY>Duvv!Zxw4)IVg&oDFJbT!HK-2pv|k;%zGQ5j!y@Y zz}m8oemP7*2bn-;MT2_ZO8Xs2sEWBvFW2OkF*W7GsplpEEmZDX?2F8&e33zU)IvD? zME$SapEw0^MAUH=;Q%pMyXRx!bzT4vD+pI!N`$NY*g{)e3`1;&jzJ3!&0iC-o`!L6^iQZ4< zOs1D7%e{WUuAu$b$lB|*I#-emBbPfANI+Yw84g zR1>&Wcsstnyc^TRH{R^=x1qZ#8ABKwSU0Zvvi5{$0d#VP6W3vZtV7{2-lhC^LnWd8 zojy|oSxChPknx<4xwfLTj}h$BOA$$e7-QejyyY7JAXL~8r>M>~eT)UVt^DKDB)Y`S z=$OZB5g!{wqA_^w_z-4G)&na036f1peQ)_^~HWf?2G!Mx-?0A>g-XZs! zxADbx-;c~=7PK5jy@+}Xylq8*44I$Rn`S5vyTsATJ zG2%naGGPomQX%rn+qXhFSY8=M55&nq@Q1qR(^W3-@fbRB9B5bMA{$5(?0_m=B zeHd$_qY#3)QtwJiG8c9o+rtjv#N`Fd;QblOoE57jOG7T6m(7XFuu0>?pFR9rHRQ@- zIS?2LO3wN=iPAM!npw8FYjoV=usr~sC)LM+Yrh=3?7VbM{D|d>YNuge zGie_09T0?CKrgOHQ?oKFF)-2Y!BuawZxQRhDe;+E&wr&(zK@v|HAFudcXa48zIHyX zdyKv`1|F$VyeS$VajToXSa|rzZ$tya1Cj5Ul>=76D;_6n$#HG34e5s@@KyjNKb6bl z2?HO_*1Y>2Ra?n){aoG!gseK2@zWak?nh`tt(Bc1+0=ONnvfC6vP5(u40<&1;PquR z@ijW-$DNI;De6TGhiNd6sx225>tF_K#k=n0)1UfJV{Ii1Q=+%q!oOp97m$2w8Q2Hc zYu$rG{}NybOC7SB2@{52Q>_6+;;&bEZ`o}|UBq9{!w8+`$;3@*IL%LZ=UZYa=+@)0 zI0o4IOk-PqJr)RN91?=^;#kdbbXA#kDHZkS>Cj|DQQHv1T1A3In5I`Hq# zI2wKNeR{z6^VtX~0b&=aklGL0F?Uv-Dlq#tBm^l!Og?_t9>lhsA1@uU1smu&C-mlX4zHzyr&Lj~mg`NH3*z zAn(%Pz;BX~MR{=OCf-V%m;{fymaDu;VK(x@ISgmoA5mZ9EQ2HOs`5(bvFxXogu!OY zA}HNB#lz_JhT!dCr& zpwfiZPdc!^u}bI29C4OnTE)0PK{d)ju80yfx>fwu#90NnL&|00N1pwBHt;AKiZ0P-I$in8u^z>X;)l;g!{+kMAd>qGv`#q`?C(*QHL(lss zRPCk;=)Cp@=bB$V)8T;v{oY4%Pt57^!2@m8=E(4e6g#iMM-3gB`uOskhjsOQZS~z_ zld!eB@{01#_IU?`&P-i)cQ^m4aGaIhVh0cED}A1JdjMlCWwt`-k;=l;y3V*}%`aE3 zZ_=g^<7rB?^>E*#<+t7Z)_AmI(+5w;m2>+=v!QQMhzi>0xv;fLSc_BIY(;!^8~$cu zYmU2E!JuxR=>um|j%mV5P*3i!9dnkax)0qUQzsH1D_0mx6=#s`Vp^rGO37xBQsKp= z=yu_mC@iVHr7xM$hkF@g71U6Q)PuPgqw!Ou^a-(0!nYAq^QpLS>2Y61B$3SsFv2d$ z!PEeC#_Nm(rDUb+AsZ7Llj-(}_F`|ixAKMLMfh&m?h8L+C^#`}P~4K53s*k^OPZMG z|4HGha=F26J;u(S&6p?Ho?R;&Y|X;U$ey3t)=!*CmRDA@p%nfY{zCVJ_imR=m%sKk z_opXIik_cJgKFM40B1#K`nMXlZ~U12h&u?On5G!HVeDb!-LUTW8;TqC|1I~I+OCs* zIt@ALG?K6?b#@|$wzWRhqVA}5`6nH(aeD6iCS`05)3dl34e8YZ%bP~&V&zCM%=)YgzJN8(~D0U_%tye_wA8 zO7Q=d8@d0L8~Y((2<$W)kpchT9u^fVPbpV17h?K^U9{OiJ>v@0roU*3F8|#mbshOG1{3N`M14K?5cO3BZnMz#@nOoG@lu zun^Hdbb$sHqpOvLo2`>0GaDxpl^{RNn-*M3^pDBF2Ve6#~C-Y@ocZ%WL&LC1~(h6Gb0L( zk5!9ac=hMJT;l4YnGTlkYJab>1?uGpBbnm15=WfY*?ch#lIE;9Tj8=FeJi*dW5LX| zM=^8`+9brpm#z;4E!Hx!UZCXj0(w6RgDsEqSnZ18W32*Hp!*neA+DE2@6;-#aYqsq zwldU_P_(3)z{n^#=KYdwZX*dkBrjX-tojCn<~R{Zw5Gg9x@Ep2zaR~*7Ltt_z(t2s zmQzJ|qfe?ib}iwOT06G?q{Vy-a&35(%VCNM9z?KMSC@+D!F}PKqYoa@0D@66$$Yx; ziD|3i3yvLh$iHklJi@K}$gcC1lO1(*jXErAOkz#^rdBuh#L%g+%UX(eU2GKWUfFfD zlZ!GciBeUPNnfhk;x374_k2?AM$6~rW$;|nk~;0ks78PT2)#WR5775FLf8J*J%@KU z-_sw=u)`;h&)n=+hw?nj02e;JL%V&UmiJ#gjD>3u>`y}|a2DB6@V?bSai+(y;k#}{ zu1iFjE8xtV6P0tH^!Im-U#&jhf2J{yHzRAxzj)^<((%I$>1v$@2uXT!|T_N?+b4 z%VfOivt)X$_%XvZgImAYFd=MT$?xZSJxZ2f+xi!1*40Ag{(fBJy?ouK`-+n0MPh$c z!DiFDnt4zNnwNB17T{*-vf(9u9}4=Z&L80soR0FW^oE7uc~g7$t$t4MY3Opc^A)HBdF2x1PI(=%# zCP*dqCr9_`ss}&vI}~OGX%w}`mXy~Uh`;O2EK>*SpdLH8v1F= zt(g1cKoT9VG{(Duw=N!>mMf!nGtZ9kV|wb&BIw{(fY@6G^x0uLhi_!3@ty(fyF1!~ zE%UX!v2wSUJv`2go0RnZ9I>hWM+%jrE}4`(+glv+utVGmx|`Z_R;Sw8Ztf6#yz{pk zx5wVVI*@{wRzD6NJ_t}{iOrKL^W6{))2dE%?WiZRzL=?AMpdm(nHn54S@|s+c(5m1 zM2?^J>52RXkLscJQ6wFULq<)L5MCNNp$$z)bn$tBCYf9-}mYRq{IpGH07lSKG4o@ zKnt)Yd@6-Ak8N-NZ8dES>awzGK-=|hrE<A9^;06uN~~uw$%LUc|gtVSm{wr*C2|PwPAk zA?<57SmprzdDwC_02SJvCRG=FQhiVs6;yiDAQ1J)-=?SWtGGaA$98eZ^#OK8#({*2n6Z#^a=7*L{X~IH{gNzJG3OI61jJPpp6EB)hz$wbOI< zF9gXh{|{p)BEZGX#ltBnBOuEyEyy7&AS27k%f%t_Y*mxylak@)g#Q0pkpJm1{?8Z# z^E|^(|1r4HPyS$$RwqY2b3Nf*Jv|SI9T*{X!Xwtez#LLhKcd5|B-Hof=I#~C8>C9q z(4nDM2yOpOTFA)zdr+Zn^Ffp^H(<|q{BFe+&_$yTDB@eC5y#0O)QCWXqi?Vl=1`QD zlb0EiXwgT?x+Kn)D>0bRsUD=Ur@lnh%z;`w6p2 z!B|_LcqpyaBaZXiNgx^a(a}rtzYs;5*GZDkOY-#!cQ@s-VxPS#DZBRMu52Nkm=)wx zDC9uyNT$RSAt^bERH~UCgRhw-R?JTXVJ`i(K7#r@Crr1Lv#!^qjI{9|TKlgl`B?W< zSCOa5%xK6*ngb6}Mp%RVO)NUd$ek}XC*Les&-vmc9JKyz|6B#*x`LkNR zN2bvnf$xe;UiOHmI%kHc&?C}FMkF8MGiC^iJj-`y9HlL)s!UCLgrA;fhI9i|TOdM# cK1lwkg%`|#15AneyeN$agPvYSRTkra0R`|yb^rhX delta 24525 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 From 7b2f9b093de217bab87d29e65112022851ccd7cb Mon Sep 17 00:00:00 2001 From: Sri Hari Krishna Narayanan Date: Fri, 27 Feb 2026 13:56:12 -0600 Subject: [PATCH 15/16] Enhance research impact statement with differentiation details Expanded the research impact statement to include details about differentiating HFBTHO using Tapenade and the provision of source code for BLAS routines. Added information on the benefits of providing both standard and CBLAS interfaces for broader adoption. --- paper/paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper/paper.md b/paper/paper.md index b7ce159..b677228 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -55,7 +55,7 @@ Derivatives of linear algebra routines are available in Python packages such as # Research impact statement -This work was inspired in part by a need to differentiate a Fortran code [@HFBTHO] that uses BLAS and LAPACK routines, and to use the differentiated application for gradient-based optimization. +This work was inspired in part by a need to differentiate a Fortran code [@HFBTHO] that uses BLAS and LAPACK routines, and to use the differentiated application for gradient-based optimization. We were able to to differentiate HFBTHO using Tapenade by providing the source code for the BLAS routines used by HFBTHO and their dependencies to Tapenade [@HFBTHOAD]. We handcoded the derivatives for the LAPACK routine `DSYEVR`. Providing both the standard and CBLAS interfaces ensures that diffblas can be adopted across different programming environments, facilitating derivative computations in diverse scientific computing projects. Precompiled artifacts on GitHub further simplify integration, enabling rapid deployment in multiple languages and scientific computing projects. From 55854982945c3ec78be15e26a80fd0409fbf2bd8 Mon Sep 17 00:00:00 2001 From: sriharikrishna Date: Fri, 27 Feb 2026 19:57:12 +0000 Subject: [PATCH 16/16] (auto) paper draft --- paper/paper.pdf | Bin 210221 -> 210066 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/paper/paper.pdf b/paper/paper.pdf index 688e804fda9b2308573ec4c1211c6cc394f2c7f5..48d772d43935ff28699558fb80d0126946a5adaf 100644 GIT binary patch delta 19809 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 HlqvhaNwgTr delta 19363 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