Skip to content

slugrustle/numerical_routines

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

numerical_routines

This repository holds a variety of programs that either implement or employ numerical methods.

The integer/ directory holds efficient routines for performing value saturation, rounded division, and rounded shift operations on integer types. These are intended for programmers who use fixed point arithmetic on microcontrollers or other constrained devices.

The number_theory/ directory has code implementing Greatest Common Divisor (GCD) and Least Common Multiple (LCM) on the most common unsigned integer types.

The solvers/ directory contains an implementation of the ITP method, a univariate root finder.

The statistics/ directory contains an implementation of Sn, a robust estimator of scale.

The thermistor/ directory contains two programs related to Negative Temperature Coefficient (NTC) thermistors: (1) a simulator of the worst‑case measurement errors encountered when monitoring an NTC thermistor with an ADC and (2) a near‑optimal linear interpolation table generator for NTC thermistors.

Getting Started

The README files the individual directories descibed above are a good place to start.

Contributing

I would love to receive bug reports and user feedback. If you have improvements to the code, please get in touch.

Author

Ben Tesch – slugrustle

License

All files in this repository that have been produced by the author are distributed under the CC0 1.0 Universal Public Domain Dedication. See also LICENSE.txt and the files themselves.

A portion of the boost library is distributed in the integer/boost directory. See integer/boost_license_report.hml and integer/LICENSE_1_0.txt for more information.

Acknowledgment

boost provides, among other things, high precision floating point types that made the helper utility and some of the test programs in the integer directory much easier to develop.