Giter Site home page Giter Site logo

atarist-pml-bigbrownbuild's Introduction

The original version of pml (Portable Math Library) was written several 
years ago, when I was just learning C and trying to switch most of my work
for engineering classes from Fortran to C.  I quickly ran into problems
with portability, missing functions, compiler bugs, etc, etc, etc.
Considering I was using some pretty primitive stuff at the time, it's a
wonder anything worked!  Anyway, pml came about from pressures to get 
something that would work in a number of environments and also as a learning
tool as to how floating point libraries worked.  I don't claim to be a
numerical analyst, then or now, but I did learn a lot writing this stuff
(including how to write in C).

Several times I have started to go back and redo the library to use
newer C features, make it compatible with the Unix version, etc.  For
example, the original C compilers I had access to could not pass structures,
just pointers to structures, which made for some pretty ugly code.  Changing
the code to pass a 'complex' structure cleaned it up a lot.  Given
several aborted attempts to redo the whole thing (aborted due to lack
of motivation and/or time), it's now in somewhat of a mess, and probably
inconsistent in several areas.  Still, someone might find it useful, or
even be motivated enough to carry on with it, given this code as a base.

So, in the hopes that someone will 'adopt' pml, and make it their pet,
I've decided to post my most current code, and relinquish all rights to
it.  I.E., make it truly public domain, rather than simply freely
redistributable.

Hints for adoptive parents:

	1.	Much of the documentation and internal comments
		is now either wrong, misleading, or both.  Beware.

	2.	Most C functions use pieces from various iterations
		of my macro based debugging package.  For example,
		the LEAVE() macro hasn't been used directly in years...
		You should either chuck this stuff wholesale, or
		convert it to use my latest version (posted on the
		net some months ago).

	3.	The implementation of functions like 'inverse complex
		hyperbolic arccosine' may very well be numerically
		naive.

	4.	This is your baby now, don't ask me how to change its
		diapers.  I wouldn't mind getting pictures now and then
		though.  :-) :-)

Below is the original README file, for reference.

				Fred Fish
				10-Apr-87

======================================================================

PML --- Portable Math Library for C programs.

This directory contains the PML math library distribution.
Since it is intended to be a highly portable library, useful
on a wide variety of machines, no installation command files
are provided.  It is assumed that the installer is sufficiently
knowledgeable to successfully install the library given the
following general guidelines:

(1)	The constants in "pml.h" must be suitably defined for
	the environment in which the library is to be used.

(2)	The appropriate environment #define variable is 
	defined somewhere, either within the preprocessor
	itself, in <stdio.h>, is added to "pml.h", or
	is included on the compiler invocation command
	line.

	For example, "#define PDP10" or "#define pdp11".

(3)	The file "pmluser.h" is moved to the global header
	file directory, so that an "#include <pmluser.h>"
	will be properly processed.

(4)	All of the library source files are compiled.

(5)	The furnished test routines are compiled, linked
	with the library routines, and executed.

This library currently runs essentially unchanged on a wide
variety of machines, under a wide variety of operating systems.
Known installations include PDP-11s running RSX-11M and using
the DECUS C system, DECSYSTEM-20 running TOPS-20 using an
MIT C compiler, Callan Data Systems 68000 system running
Uniplus (Unix port from Unisoft), and an IBM Personal
Computer running PC-DOS using a CII C compiler.  If you
know of any others, please let me know.

				Fred Fish

atarist-pml-bigbrownbuild's People

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.