{"id":46569107,"url":"https://github.com/nedtaylor/diffstruc","last_synced_at":"2026-03-07T08:03:23.421Z","repository":{"id":319824295,"uuid":"1073031036","full_name":"nedtaylor/diffstruc","owner":"nedtaylor","description":"Fortran library providing automatic differentiation","archived":false,"fork":false,"pushed_at":"2025-12-06T12:45:47.000Z","size":141,"stargazers_count":24,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-06T14:49:10.743Z","etag":null,"topics":["automatic-differentiation","backpropagation","differentiation","fortran","forward-mode","library","partial-differentiation","reverse-mode"],"latest_commit_sha":null,"homepage":"","language":"Fortran","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nedtaylor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-09T14:27:19.000Z","updated_at":"2025-12-06T12:43:12.000Z","dependencies_parsed_at":"2025-10-20T11:38:04.224Z","dependency_job_id":null,"html_url":"https://github.com/nedtaylor/diffstruc","commit_stats":null,"previous_names":["nedtaylor/diffstruc"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/nedtaylor/diffstruc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nedtaylor%2Fdiffstruc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nedtaylor%2Fdiffstruc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nedtaylor%2Fdiffstruc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nedtaylor%2Fdiffstruc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nedtaylor","download_url":"https://codeload.github.com/nedtaylor/diffstruc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nedtaylor%2Fdiffstruc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30209797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T05:23:27.321Z","status":"ssl_error","status_checked_at":"2026-03-07T05:00:17.256Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["automatic-differentiation","backpropagation","differentiation","fortran","forward-mode","library","partial-differentiation","reverse-mode"],"created_at":"2026-03-07T08:03:23.206Z","updated_at":"2026-03-07T08:03:23.404Z","avatar_url":"https://github.com/nedtaylor.png","language":"Fortran","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![MIT workflow](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/license/mit/ \"View MIT license\")\n[![Latest Release](https://img.shields.io/github/v/release/nedtaylor/diffstruc?sort=semver)](https://github.com/nedtaylor/diffstruc/releases \"View on GitHub\")\n[![Documentation Status](https://readthedocs.org/projects/diffstruc/badge/?version=latest)](https://diffstruc.readthedocs.io/en/latest/?badge=latest \"diffstruc ReadTheDocs\")\n[![FPM](https://img.shields.io/badge/fpm-0.12.0-purple)](https://github.com/fortran-lang/fpm \"View Fortran Package Manager\")\n[![GCC compatibility](https://img.shields.io/badge/gcc-15.2.0-green)](https://gcc.gnu.org/gcc-15/ \"View GCC\")\n[![IFX compatibility](https://img.shields.io/badge/ifx-2025.2.0-green)](https://www.intel.com/content/www/us/en/developer/tools/oneapi/fortran-compiler.html \"View ifx\")\n\n# diffstruc\n\nby Ned Thaddeus Taylor\n\ndiffstruc is a Fortran library that provides automatic differentiation capabilities through use of an array derived type.\n\nThe library has implemented both forward and reverse mode automatic differentiation.\nThrough repetitive use of the forward mode differentiation procedure, any higher order partial differentiation is achievable (note, memory usage will increase for higher order differentials) and has been tested up to third order.\n\n---\n\ndiffstruc is distributed with the following directories:\n\n| Directory | Description |\n|---|---|\n|  _docs/_ |    Compilable documentation |\n|  _src/_ |      Source code  |\n|  _test/_ |    A set of unit test programs to check functionality of the library works after compilation |\n\n\n\nDocumentation\n-----\n\nTutorials and documentation are provided on the [docs](http://diffstruc.readthedocs.io/) website.\n\nRefer to the [API Documentation section](#api-documentation) later in this document to see how to access the API-specific documentation.\n\nSetup\n-----\n\nThe diffstruc library can be obtained from the git repository.\nUse the following commands to get started:\n\n```\n  git clone https://github.com/nedtaylor/diffstruc.git\n  cd diffstruc\n```\n\n\n### Dependencies\n\nThe library has the following dependencies\n- A Fortran compiler (compatible with Fortran 2018 or later)\n- [fpm](https://github.com/fortran-lang/fpm)\n\nThe library has been developed and tested using the following compilers:\n- gfortran -- gcc 14.3.0, 15.2.0\n- ifx -- ifx 2025.2.0\n\n\u003e **_NOTE:_** diffstruc is known to be incompatible with all versions of the gfortran compiler below `14.3.0` due to issues with the calling of the `final` procedure of `array_type`.\n\n\n\n### Building with fpm\n\nThe library is set up to work with the Fortran Package Manager (fpm).\n\nRun the following command in the repository main directory:\n```\n  fpm build --profile release\n```\n\n#### Testing with fpm\n\nTo check whether diffstruc has installed correctly and that the compilation works as expected, the following command can be run:\n```\n  fpm test\n```\n\nThis runs a set of test programs (found within the test/ directory) to ensure the expected output occurs when layers and networks are set up.\n\n\n\nAPI documentation\n-----------------\n\nAPI documentation can be generated using FORD (Fortran Documenter).\nThe library has a compilable documentation this can be accessed with the [FORD (FORtran Documenter)](https://forddocs.readthedocs.io/en/stable/) tool.\nThe documentation can be compiled using the following terminal command in the root directory of the repository:\n\n```\n  ford ford.md\n```\n\nThis will generate the `docs/html` directory, inside which, you will find `index.html`.\nBy opening this file in a browser window, you will be able to view a nagivable documentation.\n\nContributing\n------------\n\nPlease note that this project adheres to the [Contributing Guide](CONTRIBUTING.md). If you want to contribute to this project, please first read through the guide.\n\n\nLicense\n-------\nThis work is licensed under an [MIT license](https://opensource.org/license/mit/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnedtaylor%2Fdiffstruc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnedtaylor%2Fdiffstruc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnedtaylor%2Fdiffstruc/lists"}