Giter Site home page Giter Site logo

hugomvale / odrpack95 Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 0.0 1.26 MB

Software for Weighted Orthogonal Distance Regression with Bound Constraints

Home Page: https://hugomvale.github.io/odrpack95/

License: BSD 3-Clause "New" or "Revised" License

TeX 15.79% Makefile 0.13% Fortran 83.58% C 0.32% Batchfile 0.05% Shell 0.05% Meson 0.08%
fortran mathematics statistics

odrpack95's Introduction

odrpack95

CI codecov Language

Description

ODRPACK95 is a portable collection of Fortran 95 subprograms for fitting a model to data with bound constraints on the model parameters. It is designed primarily for instances when the explanatory as well as the response variables have significant errors, implementing a highly efficient algorithm for solving the weighted orthogonal distance regression problem, i.e., for minimizing the sum of the squares of the weighted orthogonal distances between each data point and the curve described by the model equation. It can also be used to solve the ordinary least squares problem where all of the errors are attributed to the observations of the dependent variable.

This project aims to modernize the original code, namely:

  • Modify the tests so they can be automatically run in the CI.
  • Conversion from fixed (.f) to free-form (.f90) source.
  • Fix warnings, etc.
  • Implement a C API.
  • Implement python bindings to the C API.

Build instructions

With fpm

The easiest way to build/test the code and run the examples is by means of fpm.

To build the library, do:

fpm build --profile release

To run the tests, do:

fpm test --profile release

To run the provided example, do:

fpm run --example "example_name" --profile release

With meson

First, setup the build:

meson setup _build

To build the libraries (static and dynamic), do:

meson compile -C _build

To run the tests, do:

meson test -C _build

Licence

  • The original ODERPACK95 code is public domain.
  • Any modications done in the course of this project are covered by BSD-3.

References

  • Original code from Netlib.
  • Paul T. Boggs, Janet R. Donaldson, Richaard h. Byrd, and Robert B. Schnabel. 1989. Algorithm 676: ODRPACK: software for weighted orthogonal distance regression. ACM Trans. Math. Softw. 15, 4 (Dec. 1989), 348–364. https://doi.org/10.1145/76909.76913
  • Jason W. Zwolak, Paul T. Boggs, and Layne T. Watson. 2007. Algorithm 869: ODRPACK95: A weighted orthogonal distance regression code with bound constraints. ACM Trans. Math. Softw. 33, 4 (August 2007), 27–es. https://doi.org/10.1145/1268776.1268782

odrpack95's People

Contributors

hugomvale avatar

Stargazers

João Henrique de Sant'Ana avatar  avatar Guilherme Ferrari Fortino avatar

Watchers

Guilherme Ferrari Fortino avatar  avatar

odrpack95's Issues

Testing volunteer

@HugoMVale Thanks for tackling new Python bindings to ODRDPACK95. I make great use of ODR with the implicit-equation formulation. I also have a use case for bounded parameters. I would be happy to test out https://github.com/markcampanelli/pvfit using these Python bindings. Please ping me here when you think things are ready for such testing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.