Browse Source

Release 1.8.0

tags/1.8.0^0
Carsten Larsen 2 years ago
parent
commit
44ea2ea898
100 changed files with 4674 additions and 5611 deletions
  1. 1
    0
      .gitignore
  2. 12
    6
      HISTORY
  3. 1
    4
      README.md
  4. 54
    40
      amath.1
  5. 6
    2210
      amath.doxygen
  6. 1
    1
      builddebdev
  7. 60
    0
      buildsrc
  8. 11
    11
      buildwin
  9. 316
    65
      configure
  10. 22
    15
      src/amath.h
  11. 1
    3
      src/amathc.h
  12. 217
    241
      src/clib/amathc.3
  13. 154
    0
      src/clib/amathc.dox
  14. 1
    1
      src/clib/amathc.pc
  15. 629
    734
      src/cplex/amathi.3
  16. 154
    0
      src/cplex/amathi.dox
  17. 2
    2
      src/cplex/amathi.pc
  18. 1
    5
      src/cplex/cacos.c
  19. 1
    5
      src/cplex/cacosh.c
  20. 1
    5
      src/cplex/cacot.c
  21. 1
    5
      src/cplex/cacoth.c
  22. 1
    5
      src/cplex/cacsc.c
  23. 1
    5
      src/cplex/cacsch.c
  24. 0
    4
      src/cplex/casec.c
  25. 1
    6
      src/cplex/casech.c
  26. 1
    5
      src/cplex/casin.c
  27. 2
    5
      src/cplex/casinh.c
  28. 1
    5
      src/cplex/catan.c
  29. 1
    5
      src/cplex/catanh.c
  30. 1
    3
      src/cplex/ccbrt.c
  31. 1
    5
      src/cplex/ccos.c
  32. 1
    5
      src/cplex/ccosh.c
  33. 2
    4
      src/cplex/ccot.c
  34. 1
    3
      src/cplex/ccoth.c
  35. 2
    4
      src/cplex/ccsc.c
  36. 1
    3
      src/cplex/ccsch.c
  37. 1
    6
      src/cplex/cexp.c
  38. 1
    6
      src/cplex/clog.c
  39. 1
    2
      src/cplex/clog10.c
  40. 1
    2
      src/cplex/clogb.c
  41. 1
    6
      src/cplex/cpow.c
  42. 2
    4
      src/cplex/csec.c
  43. 1
    3
      src/cplex/csech.c
  44. 1
    2
      src/cplex/csgn.c
  45. 1
    5
      src/cplex/csin.c
  46. 1
    5
      src/cplex/csinh.c
  47. 1
    6
      src/cplex/csqrt.c
  48. 2
    6
      src/cplex/ctan.c
  49. 1
    5
      src/cplex/ctanh.c
  50. 13
    30
      src/cplex/prim.c
  51. 2
    2
      src/cplex/prim.h
  52. 29
    3
      src/lib/aengine.cpp
  53. 6
    4
      src/lib/aengine.h
  54. 1
    1
      src/lib/amatha.pc
  55. 999
    0
      src/lib/bigint.cpp
  56. 139
    0
      src/lib/bigint.h
  57. 20
    0
      src/lib/charbuf.cpp
  58. 4
    4
      src/lib/charbuf.h
  59. 146
    140
      src/lib/cplex.cpp
  60. 11
    13
      src/lib/cplex.h
  61. 0
    808
      src/lib/integer.cpp
  62. 0
    145
      src/lib/integer.h
  63. 17
    7
      src/lib/nnumb.cpp
  64. 10
    11
      src/lib/nnumb.h
  65. 2
    422
      src/lib/ntext.cpp
  66. 4
    48
      src/lib/ntext.h
  67. 356
    0
      src/lib/ntextd.cpp
  68. 48
    0
      src/lib/ntextd.h
  69. 425
    0
      src/lib/ntextp.cpp
  70. 68
    0
      src/lib/ntextp.h
  71. 24
    10
      src/lib/numb.h
  72. 406
    374
      src/lib/real.cpp
  73. 11
    12
      src/lib/real.h
  74. 11
    12
      src/loc/help.h
  75. 4
    5
      src/loc/ident.h
  76. 6
    8
      src/loc/kword.h
  77. 24
    25
      src/loc/text.h
  78. 6
    0
      src/main.cpp
  79. 42
    30
      src/main.h
  80. 1
    1
      src/main/function/aexcosecant.h
  81. 1
    1
      src/main/function/aexsecant.h
  82. 46
    0
      src/main/function/arcchord.cpp
  83. 50
    0
      src/main/function/arcchord.h
  84. 3
    3
      src/main/function/arccos.h
  85. 1
    1
      src/main/function/arccosecant.h
  86. 1
    1
      src/main/function/arccotangent.h
  87. 1
    1
      src/main/function/arccovercosine.h
  88. 1
    1
      src/main/function/arccoversine.h
  89. 1
    1
      src/main/function/archacovercosine.h
  90. 1
    1
      src/main/function/archacoversine.h
  91. 1
    1
      src/main/function/archavercosine.h
  92. 1
    1
      src/main/function/archaversine.h
  93. 1
    1
      src/main/function/arcsecant.h
  94. 1
    1
      src/main/function/arcsin.h
  95. 1
    1
      src/main/function/arctan.h
  96. 1
    1
      src/main/function/arcvercosine.h
  97. 1
    1
      src/main/function/arcversine.h
  98. 1
    1
      src/main/function/ceil.h
  99. 47
    0
      src/main/function/chord.cpp
  100. 0
    0
      src/main/function/chord.h

+ 1
- 0
.gitignore View File

@@ -14,3 +14,4 @@ catalog/flexcat/flexcat
*_.3
doxygen.warn
*.deb
Makefile

+ 12
- 6
HISTORY View File

@@ -1,6 +1,12 @@
-------------------------------------------------------------------------------
--- amath change history ---
-------------------------------------------------------------------------------
amath release history

v1.8.0 April 13 2017
- Fixed bugs in numeral systems.
- Fixed bugs related to infinity (Inf).
- Fixed bugs related to Not a Number (NaN).
- Updated and cleanup documentation.
- Cleaned up code structure.
- OpenLibm support.

v1.7.1 March 26 2017
- Haiku support.
@@ -8,8 +14,8 @@ v1.7.1 March 26 2017
- Code cleanup.

v1.7.0 March 12 2017
- Introduce scientific notation.
- Introduce Not a Number (NaN).
- Introduced scientific notation.
- Introduced Not a Number (NaN).
- Fixed bugs related to infinity (Inf).
- Fixed bugs in log of complex numbers.
- Fixed bugs in numeral systems.
@@ -34,7 +40,7 @@ v1.6.3 February 03 2017

v1.6.2 January 24 2017
- Fixed bug in memory allocation.
- Fixed bug in native keybord input.
- Fixed bug in native keyboard input.
- Included build options in executables.
- ARM support.


+ 1
- 4
README.md View File

@@ -29,7 +29,4 @@ Install by copying the desired amath binary to C: or any other appropriate locat
> amath version

Run regression tests:
> amath-test test

Load amath into memory:
> resident amath pure
> amath test

+ 54
- 40
amath.1 View File

@@ -1,21 +1,37 @@
.TH "amath" 1 "Wed Mar 15 2017" "Version 1.7.1" "amath" \" -*- nroff -*-
.ad l
.nh
.\" Copyright (c) 2014-2017 Carsten Sonne Larsen <cs@innolan.net>
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.TH amath 1 "Version 1.8.0" "April 13 2017"
.SH NAME
amath \- Simple command line calculator

.SH SYNOPSIS
\fCamath [ --shell | --noansi | expression ]\fP

.SH Description
\fC[ --noansi ] [ --shell | expression ]\fP
.SH DESCRIPTION
amath(1) features a case sensitive command line interface, internal
IEEE 754 calculations with 15 significant digits, calculations with
real and complex numbers, variables and user defined functions,
logarithmic and exponential functions, trigonometric and hyperbolic
function and selected mathematical constants and rounding functions.

.SH "Statements"
.PP
.SH Statements
.nf
clear Clear console window
def Define function
@@ -36,9 +52,7 @@ version Show version string
memory Show internal memory usage
exit Exit program
.fi

.SH "Operators"
.PP
.SH Operators
.nf
+ Mathematical addition
- Mathematical subtraction
@@ -47,18 +61,14 @@ exit Exit program
^ Mathematical exponentiation
= Assignment of variable values
| Absolute value of number

.SH "Variables and constant"
.PP
.SH Variables and constant
.nf
pi Trigonometric constant
e Euler's number
i Imaginary unit
ins Result of last calculation
.fi

.SH "Base functions"
.PP
.SH Base functions
.nf
abs Absolute value of number
sgn Mathematical signum function
@@ -72,9 +82,7 @@ lb Binary logarithm function (base 2)
ln Natural logarithm function (base e)
lg Common logarithm function (base 10)
.fi

.SH "Trigonometric functions"
.PP
.SH Trigonometric functions
.nf
sin Trigonometric sine function
cos Trigonometric cosine function
@@ -82,16 +90,20 @@ tan Trigonometric tangent function
cot Trigonometric cotangent function
sec Trigonometric secant function
csc Trigonometric cosecant function
crd Trigonometric chord function
exsec Trigonometric exsecant function
excsc Trigonometric excosecant function
arcsin Inverse trigonometric sine function
arccos Inverse trigonometric cosine function
arctan Inverse trigonometric tangent function
arccot Inverse trigonometric cotangent function
arcsec Inverse trigonometric secant function
arccsc Inverse trigonometric cosecant function
arccrd Inverse trigonometric chord function
arcexsec Inverse trigonometric exsecant function
arcexcsc Inverse trigonometric excosecant function
.fi

.SH "Hyperbolic functions"
.PP
.SH Hyperbolic functions
.nf
sinh Hyperbolic sine function
cosh Hyperbolic cosine function
@@ -106,9 +118,7 @@ arccoth Inverse hyperbolic cotangent function
arcsech Inverse hyperbolic secant function
arccsch Inverse hyperbolic cosecant function
.fi

.SH "Early trigonometric functions"
.PP
.SH Early trigonometric functions
.nf
ver Versed sine function
vcs Versed cosine function
@@ -127,9 +137,7 @@ archvc Inverse haversed cosine function
archcv Inverse hacoversed sine function
archcc Inverse hacoversed cosine function
.fi

.SH "Example script"
.PP
.SH Example script
.nf
round(1.5461);round(-1.5461);
ceil(43.5461);ceil(-43.5461);
@@ -137,9 +145,7 @@ floor(39.9531);floor(-39.9531);
trunc(23.827);trunc(-23.827);
sqrt(100);sqrt(52.23);
.fi

.SH "Example script with functions"
.PP
.SH Example script with functions
.nf
f(x)=x*2+1;
g(y)=y^2+y*1.5+2;
@@ -147,9 +153,7 @@ a=2;b=3;c=a+b;
vars;funcs;
f(2.2);c+1.1;
.fi

.SH "Example script with complex numbers"
.PP
.SH Example script with complex numbers
.nf
cos(1+2i);
sin(1+2i);
@@ -158,7 +162,17 @@ coth(1+2i);
sech(1+2i);
csch(1+2i);
.fi

.SH "See also"
.SH HOMEPAGE
http://amath.innolan.net/
.SH AUTHORS
.PP
amathc(3), amathr(3), amathi(3)
Written by Carsten Sonne Larsen <cs@innolan.net>. The code in MemSet and
MemCopy is derived from software contributed to Berkeley by Mike Hibler and
Chris Torek. The code in complex calculations is derived from software
written by Stephen L. Moshier.
.SH COPYRIGHT
Copyright (c) 2014-2017 Carsten Sonne Larsen <cs@innolan.net>
.br
Copyright (c) 1990, 1993 The Regents of the University of California
.SH SEE ALSO
amathc(3), amathr(3), amathi(3)

+ 6
- 2210
amath.doxygen
File diff suppressed because it is too large
View File


+ 1
- 1
builddebdev View File

@@ -2,7 +2,7 @@

set -e

version="1.7.1"
version="1.8.0"

build_package () {


+ 60
- 0
buildsrc View File

@@ -0,0 +1,60 @@
#! /bin/sh

# DO NOT USE THIS SCRIPT UNLESS YOU KNOW WHAT YOU ARE DOING !

version='1.8.0'
stamp="201704130000"
#stamp="201704110000"
srcdir="amath-rc"
distdir="amath-${version}"
cd ..

rm -f amath-${version}.tar.gz
rm -Rf amath-${version}

mkdir -m 775 ${distdir}
mkdir -m 775 ${distdir}/src/
mkdir -m 775 ${distdir}/src/clib/
mkdir -m 775 ${distdir}/src/cplex/
mkdir -m 775 ${distdir}/src/lib/
mkdir -m 775 ${distdir}/src/loc/
mkdir -m 775 ${distdir}/src/real/
mkdir -m 775 ${distdir}/src/system/
mkdir -m 775 ${distdir}/src/main/
mkdir -m 775 ${distdir}/src/main/function
mkdir -m 775 ${distdir}/src/main/statement/
mkdir -m 775 ${distdir}/script/
mkdir -m 775 ${distdir}/text/
mkdir -m 775 ${distdir}/catalog/
mkdir -m 775 ${distdir}/catalog/english/
mkdir -m 775 ${distdir}/build/
mkdir -m 775 ${distdir}/build/flexcat/

install -m 664 ${srcdir}/src/*.h ${distdir}/src/
install -m 664 ${srcdir}/src/*.cpp ${distdir}/src/
install -m 664 ${srcdir}/src/clib/* ${distdir}/src/clib/
install -m 664 ${srcdir}/src/cplex/* ${distdir}/src/cplex/
install -m 664 ${srcdir}/src/lib/* ${distdir}/src/lib/
install -m 664 ${srcdir}/src/loc/* ${distdir}/src/loc/
install -m 664 ${srcdir}/src/real/* ${distdir}/src/real/
install -m 664 ${srcdir}/src/system/* ${distdir}/src/system/
install -m 664 ${srcdir}/src/main/*.h ${distdir}/src/main/
install -m 664 ${srcdir}/src/main/*.cpp ${distdir}/src/main/
install -m 664 ${srcdir}/src/main/function/* ${distdir}/src/main/function/
install -m 664 ${srcdir}/src/main/statement/* ${distdir}/src/main/statement/
install -m 664 ${srcdir}/script/* ${distdir}/script/
install -m 664 ${srcdir}/text/* ${distdir}/text/
install -m 664 ${srcdir}/catalog/english/* ${distdir}/catalog/english/
install -m 664 ${srcdir}/build/flexcat/* ${distdir}/build/flexcat/
install -m 664 ${srcdir}/HISTORY ${distdir}/
install -m 664 ${srcdir}/LICENSE ${distdir}/
install -m 664 ${srcdir}/README ${distdir}/
install -m 664 ${srcdir}/amath.1 ${distdir}/
install -m 775 ${srcdir}/configure ${distdir}/
install -m 775 ${srcdir}/builddist ${distdir}/
install -m 775 ${srcdir}/buildwin ${distdir}/

chown -R 1000:1000 ${distdir}

for f in $(find ${distdir} -name '*'); do touch -amt ${stamp}.00 $f; done
tar --numeric-owner -cvzf amath-${version}.tar.gz ${distdir}

+ 11
- 11
buildwin View File

@@ -2,7 +2,7 @@

set -e

version="1.7.1"
version="1.8.0"

echo "Building amath ${version} for Windows ..."

@@ -22,20 +22,20 @@ make static
mv amath dist/amath-${version}-x64.exe
make clean

cd dist
touch hashkeys
sha1sum amath-${version}-x86.exe >>hashkeys
sha1sum amath-${version}-x86.exe >>hashkeys
sha256sum amath-${version}-x86.exe >>hashkeys
sha256sum amath-${version}-x86.exe >>hashkeys
cd ..
#cd dist
#touch hashkeys.txt
#sha1sum amath-${version}-x86.exe >>hashkeys.txt
#sha1sum amath-${version}-x86.exe >>hashkeys.txt
#sha256sum amath-${version}-x86.exe >>hashkeys.txt
#sha256sum amath-${version}-x86.exe >>hashkeys.txt
#cd ..

cp LICENSE dist/
cp HISTORY dist/
tr '\n' '\r' <LICENSE >dist/license.txt
tr '\n' '\r' <HISTORY >dist/changes.txt

mkdir dist/script
cp script/* dist/script/
date -Ru >dist/build_date
date -Ru >dist/build.txt

mv dist amath
zip -r amath-${version}.zip amath/*

+ 316
- 65
configure View File

@@ -27,68 +27,145 @@

set -e

version="1.7.1"
version="1.8.0"

clang=false
debugsym=false
regtest=true
openlibm=false
stdlibm=false
stdlibc=false
useldconfig=false

prefix="/usr"
pkgconfigdir="lib/pkgconfig"
mandir="share/man"
cflags=""
cxxflags=""
ldflags=""
gcclib="-lstdc++"
libm=""

for arg in "$@"; do
unknown=true
case "$arg" in
--prefix=*)
prefix=`echo $arg | sed 's/--prefix=//'`
unknown=false
;;

--pkgconfig=*)
pkgconfigdir=`echo $arg | sed 's/--pkgconfig=//'`
unknown=false
;;

--mandir=*)
mandir=`echo $arg | sed 's/--mandir=//'`
unknown=false
;;

--cross-compile=*)
crosscompile=`echo $arg | sed 's/--cross-compile=//'`
crosscompile="${crosscompile}-"
unknown=false
;;

CFLAGS=*)
cflags=`echo $arg | sed 's/CFLAGS=//'`
cflags="${cflags} "
unknown=false
;;

CXXFLAGS=*)
cxxflags=`echo $arg | sed 's/CXXFLAGS=//'`
cxxflags="${cxxflags} "
unknown=false
;;

LDFLAGS=*)
ldflags=`echo $arg | sed 's/LDFLAGS=//'`
ldflags="${ldflags} "
unknown=false
;;

--enable-clang)
clang=true;;
clang=true
unknown=false
;;

--disable-clang)
clang=false;;
clang=false
unknown=false
;;

--enable-ldconfig)
useldconfig=true
unknown=false
;;

--disable-ldconfig)
useldconfig=false
unknown=false
;;
--enable-debug)
debugsym=true;;
debugsym=true
unknown=false
;;

--disable-debug)
debugsym=false;;
debugsym=false
unknown=false
;;

--enable-test)
regtest=true;;
regtest=true
unknown=false
;;

--disable-test)
regtest=false;;
regtest=false
unknown=false
;;

--with-libm)
stdlibm=true
unknown=false
;;

--without-libm)
stdlibm=false
unknown=false
;;

--with-openlibm)
openlibm=true
unknown=false
;;

--without-openlibm)
openlibm=false
unknown=false
;;

--with-stdc++)
gcclib="-lstdc++";;
gcclib="-lstdc++"
unknown=false
;;

--without-stdc++)
gcclib="";;
gcclib=""
unknown=false
;;

--with-libc)
stdlibc=true
unknown=false
;;

--without-libc)
stdlibc=false
unknown=false
;;

--help)
echo "amath configure script ${version}"
@@ -97,6 +174,7 @@ for arg in "$@"; do
echo 'options:'
echo ' --prefix=<path>: installation prefix'
echo ' --pkgconfig=<path>: pkg-config path (without prefix)'
echo ' --mandir=<path>: manpage path (without prefix)'
echo ' --cross-compile=<prefix>: cross compiler prefix'
echo ' --enable-debug: include debug symbols'
echo ' --disable-debug: do not include debug symbols'
@@ -104,17 +182,29 @@ for arg in "$@"; do
echo ' --disable-test: do not include regression test'
echo ' --enable-clang: build with clang compiler'
echo ' --disable-clang: do not build with clang compiler'
echo ' --with-stdc++: link with stdc++ library'
echo ' --enable-ldconfig: use ldconfig to registre libraries'
echo ' --disable-ldconfig: do not use ldconfig to registre libraries'
echo ' --with-libm: link with libm library (-lm)'
echo ' --without-libm: do not link with libm library'
echo ' --with-openlibm: link with openlibm library (-lopenlibm)'
echo ' --without-openlibm: do not link with openlibm library'
echo ' --with-stdc++: link with stdc++ library (-lstdc++)'
echo ' --without-stdc++: do not link with stdc++ library'
echo ' --with-libc: explicit link with libc library (-lc)'
echo ' --without-libc: do not link with libc library'
echo
echo ' CFLAGS=<flags>: additional compiler flags'
echo ' CXXFLAGS=<flags>: additional compiler flags'
echo ' LDFLAGS=<flags>: additional linker flags'
echo
echo 'No warnings are shown for Invalid options.'
exit 0
;;
esac

if $unknown; then
echo "Invalid option $arg"
exit 1
fi
done

if $clang; then
@@ -135,12 +225,39 @@ if $debugsym; then
appop="-O0 -g"
libop="-O0 -g"
exestrip=""
debugflag="-DDEBUG "
else
appop="-O2"
libop="-O3"
exestrip="-s"
debugflag=""
fi

dlibm=false
mflags=""
if $stdlibm; then
libm="-lm "
mflags="-DLIBM "
dlibm=true
fi
if $openlibm; then
libm="-lopenlibm "
mflags="-DLIBM "
dlibm=true
fi

if $useldconfig; then
soverion=".${version}"
else
soverion=""
fi

if $stdlibc; then
gcclib="${gcclib} -lc"
fi

cflags="${cflags}${debugflag}${mflags}"
cxxflags="${cflags} ${cxxflags}"

APPSRCS='
@@ -184,6 +301,7 @@ FUNCTIONSRC='
absolute.cpp
aexcosecant.cpp
aexsecant.cpp
arcchord.cpp
arccos.cpp
arcsin.cpp
arctan.cpp
@@ -199,6 +317,7 @@ archaversine.cpp
arcvercosine.cpp
arcversine.cpp
ceil.cpp
chord.cpp
cosecant.cpp
cosine.cpp
cotangent.cpp
@@ -269,38 +388,34 @@ version.cpp
'
LIBAPPSRCS='
aengine.cpp
bigint.cpp
charbuf.cpp
integer.cpp
cplex.cpp
nnumb.cpp
ntext.cpp
ntextd.cpp
ntextp.cpp
real.cpp
'
LIBREALSRCS='
acos.c
acosh.c
acvs.c
ahv.c
ahvc.c
asin.c
asinh.c
atan.c
atan2.c
atanh.c
aver.c
cbrt.c
ceil.c
copysign.c
csign.c
cos.c
cosh.c
exp.c
expm1.c
fabs.c
finite.c
floor.c
fmod.c
hypot.c
isnan.c
kcos.c
kremp2.c
ksin.c
@@ -319,39 +434,79 @@ tan.c
tanh.c
trunc.c
'
LIBREAL2SRCS='
acot.c
acoth.c
acrd.c
acsc.c
acsch.c
acvc.c
acvs.c
aexc.c
aexs.c
ahcc.c
ahcv.c
ahv.c
ahvc.c
asec.c
asech.c
avcs.c
aver.c
cot.c
coth.c
crd.c
csc.c
csch.c
cvc.c
cvs.c
exc.c
exs.c
hcc.c
hcv.c
hv.c
hvc.c
log2i.c
log2p.c
sec.c
sech.c
vcs.c
ver.c
'
LIBCPLEXSRCS='
cacos.c
cacosh.c
casin.c
casinh.c
catan.c
catanh.c
ccos.c
ccosh.c
cexp.c
clog.c
cpow.c
csin.c
csinh.c
csqrt.c
ctan.c
ctanh.c
'
LIBCPLEX2SRCS='
cacot.c
cacoth.c
cacsc.c
cacsch.c
casec.c
casech.c
casin.c
casinh.c
catan.c
catanh.c
ccbrt.c
ccos.c
ccosh.c
ccot.c
ccoth.c
ccsc.c
ccsch.c
cexp.c
clog.c
clog10.c
clogb.c
cpow.c
clog10.c
csec.c
csech.c
csgn.c
csin.c
csinh.c
csqrt.c
ctan.c
ctanh.c
prim.c
'
LIBC1SRCS='
@@ -383,6 +538,18 @@ utils.c
vastubs.c
'

if $dlibm; then
LIBREALSRCS="${LIBREAL2SRCS}"
else
LIBREALSRCS="${LIBREALSRCS}${LIBREAL2SRCS}"
fi

if $dlibm; then
LIBCPLEXSRCS="${LIBCPLEX2SRCS}"
else
LIBCPLEXSRCS="${LIBCPLEXSRCS}${LIBCPLEX2SRCS}"
fi

amathc="amathc"
amath="amath"
amathcplex="amathcplex"
@@ -394,6 +561,9 @@ appstatement="statement"
appsystem="appsystem"
program="src/main"

ldsysflags="-l${appsystem} -l${appfunction} -l${appstatement} -l${appmain} -l${appfunction} -l${appstatement} -l${appmain} "
ldlibflags="-l${amathapp} ${libm}-l${amathcplex} ${libm}-l${amath} -l${amathc} ${gcclib}"

############################ Main Application ###########################
{
echo "CXX = ${crosscompile}${cxxcompiler}"
@@ -529,9 +699,11 @@ echo "CXXFLAGS = ${libop}${options} ${cxxflags}-I. -I.. -Wall"
echo "AR = ${crosscompile}ar"
echo "RANLIB = ${crosscompile}ranlib"
echo "MKDIR = mkdir -p"
echo "RMDIR = rm -Rf"
echo "DEL = rm -f"
echo "INSTALL = install -m 0644"
echo "LDCONFIG = ldconfig"
echo "DOXYGEN = doxygen"
echo "PREFIX = ${prefix}"
echo "INSTDIR = \${DESTDIR}\${PREFIX}/lib/amath"
echo "INSTDIRI = \${DESTDIR}\${PREFIX}/include/amath"
@@ -568,12 +740,16 @@ echo " \${MKDIR} static"
echo " \${MKDIR} shared"
echo
echo "\${solib}: build ${files2}"
echo " \${CXX} \${CXXFLAGS} -shared ${exestrip} -fPIC -Wl,-soname,\${solib}.${version} -o \${solib} ${files2}"
echo " \${CXX} \${CXXFLAGS} -shared ${exestrip} -fPIC -Wl,-soname,\${solib}${soverion} -o \${solib} ${files2}"
echo
echo "\${alib}: build ${files}"
echo " \${AR} rcs static/\${alib} ${files}"
echo " \${RANLIB} static/\${alib}"
echo
echo ".PHONY: doc"
echo "doc:"
echo " \${DOXYGEN} amatha.dox"
echo
echo ".PHONY: install"
echo "install: \${alib} \${solib}"
echo " \${MKDIR} \${INSTDIR}"
@@ -583,14 +759,18 @@ echo " \${INSTALL} static/\${alib} \${INSTDIR}/\${alib}"
echo " \${INSTALL} \${solib} \${INSTDIR}/\${solib}"
echo " \${INSTALL} \${pkgconfig} \${INSTDIRPC}/\${pkgconfig}"
echo " \${INSTALL} aengine.h \${INSTDIRI}/aengine.h"
echo " \${INSTALL} bigint.h \${INSTDIRI}/bigint.h"
echo " \${INSTALL} charbuf.h \${INSTDIRI}/charbuf.h"
echo " \${INSTALL} cplex.h \${INSTDIRI}/cplex.h"
echo " \${INSTALL} integer.h \${INSTDIRI}/integer.h"
echo " \${INSTALL} nnumb.h \${INSTDIRI}/nnumb.h"
echo " \${INSTALL} ntext.h \${INSTDIRI}/ntext.h"
echo " \${INSTALL} ntext.h \${INSTDIRI}/ntextd.h"
echo " \${INSTALL} ntext.h \${INSTDIRI}/ntextp.h"
echo " \${INSTALL} numb.h \${INSTDIRI}/numb.h"
echo " \${INSTALL} real.h \${INSTDIRI}/real.h"
if ${useldconfig}; then
echo " \${LDCONFIG} \${INSTDIR}"
fi
echo
echo ".PHONY: uninstall"
echo "uninstall:"
@@ -605,11 +785,19 @@ echo " \${DEL} \${INSTDIRI}/nnumb.h"
echo " \${DEL} \${INSTDIRI}/ntext.h"
echo " \${DEL} \${INSTDIRI}/numb.h"
echo " \${DEL} \${INSTDIRI}/real.h"
if ${useldconfig}; then
echo " \${LDCONFIG}"
fi
echo
echo "clean:"
echo " \${DEL} static/\${alib} \${solib} ${files} ${files2}"
echo
echo "very-clean: clean"
echo " \${DEL} doxygen.warn"
echo " \${RMDIR} man"
echo " \${RMDIR} static"
echo " \${RMDIR} shared"
echo
} > src/lib/Makefile
#########################################################################

@@ -620,14 +808,16 @@ echo "CFLAGS = -std=c9x ${libop}${options} ${cflags}-I. -I.. -Wall"
echo "AR = ${crosscompile}ar"
echo "RANLIB = ${crosscompile}ranlib"
echo "MKDIR = mkdir -p"
echo "RMDIR = rm -Rf"
echo "DEL = rm -f"
echo "INSTALL = install -m 0644"
echo "LDCONFIG = ldconfig"
echo "DOXYGEN = doxygen"
echo "PREFIX = ${prefix}"
echo "INSTDIR = \${DESTDIR}\${PREFIX}/lib/amath"
echo "INSTDIRI = \${DESTDIR}\${PREFIX}/include/amath"
echo "INSTDIRPC = \${DESTDIR}\${PREFIX}/${pkgconfigdir}"
echo "INSTDIRM = \${DESTDIR}\${PREFIX}/share/man/man3"
echo "INSTDIRM = \${DESTDIR}\${PREFIX}/${mandir}/man3"
echo "alib = lib${amathc}.a"
echo "solib = lib${amathc}.so"
echo "pkgconfig = amathc.pc"
@@ -661,12 +851,16 @@ echo " \${MKDIR} static"
echo " \${MKDIR} shared"
echo
echo "\${solib}: build ${libcs}"
echo " \${CC} \${CFLAGS} -shared ${exestrip} -fPIC -Wl,-soname,\${solib}.${version} -o \${solib} ${libcs} -lc"
echo " \${CC} \${CFLAGS} -shared ${exestrip} -fPIC -Wl,-soname,\${solib}${soverion} -o \${solib} ${libcs} -lc"
echo
echo "\${alib}: build ${libc}"
echo " \${AR} rcs static/\${alib} ${libc}"
echo " \${RANLIB} static/\${alib}"
echo
echo ".PHONY: doc"
echo "doc:"
echo " \${DOXYGEN} amathc.dox"
echo
echo ".PHONY: install"
echo "install: \${alib} \${solib}"
echo " \${MKDIR} \${INSTDIR}"
@@ -678,7 +872,9 @@ echo " \${INSTALL} \${pkgconfig} \${INSTDIRPC}/\${pkgconfig}"
echo " \${INSTALL} \${manpage} \${INSTDIRM}/\${manpage}"
echo " \${INSTALL} ../amath.h \${INSTDIRI}"
echo " \${INSTALL} ../amathc.h \${INSTDIRI}"
if ${useldconfig}; then
echo " \${LDCONFIG} \${INSTDIR}"
fi
echo
echo ".PHONY: uninstall"
echo "uninstall:"
@@ -688,11 +884,19 @@ echo " \${DEL} \${INSTDIRPC}/\${pkgconfig}"
echo " \${DEL} \${INSTDIRM}/\${manpage}"
echo " \${DEL} \${INSTDIRI}/amath.h"
echo " \${DEL} \${INSTDIRI}/amathc.h"
if ${useldconfig}; then
echo " \${LDCONFIG}"
fi
echo
echo "clean:"
echo " \${DEL} static/\${alib} \${solib} ${libc} ${libcs}"
echo
echo "very-clean: clean"
echo " \${DEL} doxygen.warn"
echo " \${RMDIR} man"
echo " \${RMDIR} static"
echo " \${RMDIR} shared"
echo
} > src/clib/Makefile
#########################################################################

@@ -703,14 +907,16 @@ echo "CFLAGS = -std=c9x ${libop}${options} ${cflags}-I. -I.. -Wall"
echo "AR = ${crosscompile}ar"
echo "RANLIB = ${crosscompile}ranlib"
echo "MKDIR = mkdir -p"
echo "RMDIR = rm -Rf"
echo "DEL = rm -f"
echo "INSTALL = install -m 0644"
echo "LDCONFIG = ldconfig"
echo "DOXYGEN = doxygen"
echo "PREFIX = ${prefix}"
echo "INSTDIR = \${DESTDIR}\${PREFIX}/lib/amath"
echo "INSTDIRI = \${DESTDIR}\${PREFIX}/include/amath"
echo "INSTDIRPC = \${DESTDIR}\${PREFIX}/${pkgconfigdir}"
echo "INSTDIRM = \${DESTDIR}\${PREFIX}/share/man/man3"
echo "INSTDIRM = \${DESTDIR}\${PREFIX}/${mandir}/man3"
echo "alib = lib${amath}.a"
echo "solib = lib${amath}.so"
echo "pkgconfig = amathr.pc"
@@ -744,12 +950,16 @@ echo " \${MKDIR} static"
echo " \${MKDIR} shared"
echo
echo "\${solib}: build ${libamaths}"
echo " \${CC} \${CFLAGS} -shared ${exestrip} -fPIC -Wl,-soname,\${solib}.${version} -o \${solib} ${libamaths}"
echo " \${CC} \${CFLAGS} -shared ${exestrip} -fPIC -Wl,-soname,\${solib}${soverion} -o \${solib} ${libamaths}"
echo
echo "\${alib}: build ${libamath}"
echo " \${AR} rcs static/\${alib} ${libamath}"
echo " \${RANLIB} static/\${alib}"
echo
echo ".PHONY: doc"
echo "doc:"
echo " \${DOXYGEN} amathr.dox"
echo
echo ".PHONY: install"
echo "install: \${alib} \${solib}"
echo " \${MKDIR} \${INSTDIR}"
@@ -759,8 +969,10 @@ echo " \${INSTALL} static/\${alib} \${INSTDIR}/\${alib}"
echo " \${INSTALL} \${solib} \${INSTDIR}/\${solib}"
echo " \${INSTALL} \${pkgconfig} \${INSTDIRPC}/\${pkgconfig}"
echo " \${INSTALL} \${manpage} \${INSTDIRM}/\${manpage}"
echo " \${INSTALL} ../math.h \${INSTDIRI}/amathr.h"
echo " \${INSTALL} ../mathr.h \${INSTDIRI}/mathr.h"
if ${useldconfig}; then
echo " \${LDCONFIG} \${INSTDIR}"
fi
echo
echo ".PHONY: uninstall"
echo "uninstall:"
@@ -768,12 +980,20 @@ echo " \${DEL} \${INSTDIR}/\${alib}"
echo " \${DEL} \${INSTDIR}/\${solib}"
echo " \${DEL} \${INSTDIRPC}/\${pkgconfig}"
echo " \${DEL} \${INSTDIRM}/\${manpage}"
echo " \${DEL} \${INSTDIRI}/amathr.h"
echo " \${DEL} \${INSTDIRI}/mathr.h"
if ${useldconfig}; then
echo " \${LDCONFIG}"
fi
echo
echo "clean:"
echo " \${DEL} static/\${alib} \${solib} ${libamath} ${libamaths}"
echo
echo "very-clean: clean"
echo " \${DEL} doxygen.warn"
echo " \${RMDIR} man"
echo " \${RMDIR} static"
echo " \${RMDIR} shared"
echo
} > src/real/Makefile
#########################################################################

@@ -784,14 +1004,16 @@ echo "CFLAGS = -std=c9x ${libop}${options} ${cxxflags}-I. -I.. -Wall"
echo "AR = ${crosscompile}ar"
echo "RANLIB = ${crosscompile}ranlib"
echo "MKDIR = mkdir -p"
echo "RMDIR = rm -Rf"
echo "DEL = rm -f"
echo "INSTALL = install -m 0644"
echo "LDCONFIG = ldconfig"
echo "DOXYGEN = doxygen"
echo "PREFIX = ${prefix}"
echo "INSTDIR = \${DESTDIR}\${PREFIX}/lib/amath"
echo "INSTDIRI = \${DESTDIR}\${PREFIX}/include/amath"
echo "INSTDIRPC = \${DESTDIR}\${PREFIX}/${pkgconfigdir}"
echo "INSTDIRM = \${DESTDIR}\${PREFIX}/share/man/man3"
echo "INSTDIRM = \${DESTDIR}\${PREFIX}/${mandir}/man3"
echo "alib = lib${amathcplex}.a"
echo "solib = lib${amathcplex}.so"
echo "pkgconfig = amathi.pc"
@@ -825,12 +1047,16 @@ echo " \${MKDIR} static"
echo " \${MKDIR} shared"
echo
echo "\${solib}: build ${libcomplexs}"
echo " \${CC} \${CFLAGS} -shared ${exestrip} -fPIC -Wl,-soname,\${solib}.${version} -o \${solib} ${libcomplexs}"
echo " \${CC} \${CFLAGS} -shared ${exestrip} -fPIC -Wl,-soname,\${solib}${soverion} -o \${solib} ${libcomplexs}"
echo
echo "\${alib}: build ${libcomplex}"
echo " \${AR} rcs static/\${alib} ${libcomplex}"
echo " \${RANLIB} static/\${alib}"
echo
echo ".PHONY: doc"
echo "doc:"
echo " \${DOXYGEN} amathi.dox"
echo
echo ".PHONY: install"
echo "install: \${alib} \${solib}"
echo " \${MKDIR} \${INSTDIR}"
@@ -840,8 +1066,10 @@ echo " \${INSTALL} static/\${alib} \${INSTDIR}/\${alib}"
echo " \${INSTALL} \${solib} \${INSTDIR}/\${solib}"
echo " \${INSTALL} \${pkgconfig} \${INSTDIRPC}/\${pkgconfig}"
echo " \${INSTALL} \${manpage} \${INSTDIRM}/\${manpage}"
echo " \${INSTALL} ../complex.h \${INSTDIRI}/amathi.h"
echo " \${INSTALL} ../mathi.h \${INSTDIRI}/mathi.h"
if ${useldconfig}; then
echo " \${LDCONFIG} \${INSTDIR}"
fi
echo
echo ".PHONY: uninstall"
echo "uninstall:"
@@ -850,12 +1078,20 @@ echo " \${DEL} \${INSTDIR}/\${solib}"
echo " \${DEL} \${INSTDIRPC}/\${pkgconfig}"
echo " \${DEL} \${INSTDIRM}/\${manpage}"
echo " \${DEL} \${INSTDIRPC}/amathi.pc"
echo " \${DEL} \${INSTDIRI}/amathi.h"
echo " \${DEL} \${INSTDIRI}/mathi.h"
if ${useldconfig}; then
echo " \${LDCONFIG}"
fi
echo
echo "clean:"
echo " \${DEL} static/\${alib} \${solib} ${libcomplex} ${libcomplexs}"
echo
echo "very-clean: clean"
echo " \${DEL} doxygen.warn"
echo " \${RMDIR} man"
echo " \${RMDIR} static"
echo " \${RMDIR} shared"
echo
} > src/cplex/Makefile
#########################################################################

@@ -868,7 +1104,7 @@ echo "CFLAGS = ${appop}${options} ${cflags}-Wall -Isrc -Isrc/main"
echo "CXXFLAGS = ${appop}${options} ${cxxflags}-Wall -Isrc -Isrc/main"
echo "AR = ${crosscompile}ar"
echo "RANLIB = ${crosscompile}ranlib"
echo "LFLAGS = ${ldflags}-l${appsystem} -l${appfunction} -l${appstatement} -l${appmain} -l${appfunction} -l${appstatement} -l${appmain} -l${amathapp} -l${amathcplex} -l${amath} -l${amathc} ${gcclib}"
echo "LFLAGS = ${ldflags}${ldsysflags}${ldlibflags}"
echo "LPATH = -Lsrc/lib -Lsrc/clib -Lsrc/real -Lsrc/cplex -Lsrc/main/function -Lsrc/main/statement -Lsrc/main -Lsrc/system"
echo "LPATHS = -Lsrc/lib/static -Lsrc/clib/static -Lsrc/real/static -Lsrc/cplex/static -Lsrc/main/function -Lsrc/main/statement -Lsrc/main -Lsrc/system"
echo "FLXCAT = build/flexcat/flexcat"
@@ -878,15 +1114,14 @@ echo "INSTALLP = install -m 0755"
echo "INSTALLM = install -m 0644"
echo "PREFIX = ${prefix}"
echo "INSTDIRP = \${DESTDIR}\${PREFIX}/bin"
echo "INSTDIRM = \${DESTDIR}\${PREFIX}/share/man/man1"
echo "INSTDIRM = \${DESTDIR}\${PREFIX}/${mandir}/man1"
echo
echo "all: shared-app"
echo "all: shared-libs static-libs static-app"
echo "amath: shared-libs static-libs shared-app"
echo "static: static-app"
echo "app: ${appmain} ${appfunction} ${appstatement} ${appsystem}"
echo "libs: ${amathapp} ${amath} ${amathc} ${amathcplex}"
echo
echo "amath: static-app"
echo "static: static-app"
echo
echo "${program}.o: ${program}.cpp"
echo " \${CXX} \${CXXFLAGS} -c ${program}.cpp -o ${program}.o"
echo
@@ -914,12 +1149,17 @@ echo
echo "${amathcplex}:"
echo " cd src/cplex && \${MAKE}"
echo
echo "localize:"
echo "locale:"
echo " cd build/flexcat && \${MAKE}"
echo " \${FLXCAT} text/keyword.cd src/localize/kword.h=text/keyword.sd"
echo " \${FLXCAT} text/help.cd src/localize/help.h=text/help.sd"
echo " \${FLXCAT} text/ident.cd src/localize/ident.h=text/ident.sd"
echo " \${FLXCAT} text/text.cd src/localize/text.h=text/text.sd"
echo " \${FLXCAT} text/keyword.cd src/loc/kword.h=text/keyword.sd"
echo " \${FLXCAT} text/help.cd src/loc/help.h=text/help.sd"
echo " \${FLXCAT} text/ident.cd src/loc/ident.h=text/ident.sd"
echo " \${FLXCAT} text/text.cd src/loc/text.h=text/text.sd"
echo
echo "doc:"
echo " cd src/clib && \${MAKE} doc"
echo " cd src/real && \${MAKE} doc"
echo " cd src/cplex && \${MAKE} doc"
echo
echo "catalogs:"
echo " cd build/flexcat && \${MAKE}"
@@ -928,18 +1168,22 @@ echo " \${FLXCAT} text/help.cd catalog/english/amath-help.ct CATALOG dist/catalo
echo " \${FLXCAT} text/ident.cd catalog/english/amath-ident.ct CATALOG dist/catalog/english/amath-ident.catalog"
echo " \${FLXCAT} text/text.cd catalog/english/amath-text.ct CATALOG dist/catalog/english/amath-text.catalog"
echo
echo "shared-app: app libs ${program}.o"
echo " \${CC} \${CFLAGS} ${exestrip} ${program}.o -o amath \${LPATH} \${LFLAGS}"
echo "shared-libs:"
echo " cd src/lib && \${MAKE} shared"
echo " cd src/clib && \${MAKE} shared"
echo " cd src/real && \${MAKE} shared"
echo " cd src/cplex && \${MAKE} shared"
echo
echo "static-app: ${program}.o"
echo "static-libs:"
echo " cd src/lib && \${MAKE} static"
echo " cd src/clib && \${MAKE} static"
echo " cd src/real && \${MAKE} static"
echo " cd src/cplex && \${MAKE} static"
echo " cd src/main && \${MAKE} static"
echo " cd src/system && \${MAKE} static"
echo " cd src/main/function && \${MAKE} static"
echo " cd src/main/statement && \${MAKE} static"
echo
echo "shared-app: app shared-libs ${program}.o"
echo " \${CC} \${CFLAGS} ${exestrip} ${program}.o -o amath \${LPATH} \${LFLAGS}"
echo
echo "static-app: app static-libs ${program}.o"
echo " \${CC} \${CFLAGS} ${exestrip} ${program}.o -o amath \${LPATHS} \${LFLAGS}"
echo
echo ".PHONY: test"
@@ -948,7 +1192,7 @@ echo " LD_LIBRARY_PATH=src/clib/:src/lib:src/cplex:scr/real"
echo " ./amath test"
echo
echo ".PHONY: install"
echo "install: shared-app"
echo "install:"
echo " cd src/lib && \${MAKE} install"
echo " cd src/clib && \${MAKE} install"
echo " cd src/real && \${MAKE} install"
@@ -978,6 +1222,13 @@ echo " cd src/main/statement && \${MAKE} clean"
echo " cd build/flexcat && \${MAKE} clean"
echo " \${DEL} ${program}.o amath"
echo
echo ".PHONY: very-clean"
echo "very-clean: clean"
echo " cd src/lib && \${MAKE} very-clean"
echo " cd src/clib && \${MAKE} very-clean"
echo " cd src/real && \${MAKE} very-clean"
echo " cd src/cplex && \${MAKE} very-clean"
echo
} > Makefile
#########################################################################


+ 22
- 15
src/amath.h View File

@@ -60,7 +60,13 @@
# endif
#endif
/******************************************************************************/
#ifdef _WIN32
#ifdef __APPLE__
# ifndef APPLE
# define APPLE
# endif
#endif
/******************************************************************************/
#if defined(_WIN32) || defined(_WIN64)
# ifndef WINDOWS
# define WINDOWS
# endif
@@ -78,7 +84,7 @@
# endif
#endif
/******************************************************************************/
#if defined(HAIKU) || defined(UNIX)
#if defined(HAIKU) || defined(UNIX) || defined(APPLE) || defined(_POSIX_VERSION)
# ifndef POSIX
# define POSIX
# endif
@@ -110,16 +116,22 @@ typedef u_int32_t uint32_t;
typedef u_int64_t uint64_t;
#endif
/******************************************************************************/
#if defined(AROS) || defined(MORPHOS) || defined(AOS4)
#if defined(AROS) || defined(MORPHOS) || defined(AOS4) || defined(APPLE)
# include <stdint.h>
# include <sys/types.h>
#endif
/******************************************************************************/
#if (__cplusplus <= 199711L && !defined(WINDOWS)) || !defined(__cplusplus)
#ifndef nullptr
#define nullptr 0
#endif
#elif (__cplusplus <= 199711L) && (defined(__GNUC__) || defined(__GNUG__))
#ifndef nullptr
#define nullptr 0
#endif
#endif
/******************************************************************************/
#define assert(x)
/******************************************************************************/
/* Compilers*/
#if defined(__clang__)
@@ -212,8 +224,10 @@ typedef u_int64_t uint64_t;
#define SPACE " "
#define DOT "."
/******************************************************************************/
#ifdef WINDOWS
#if defined(WINDOWS)
#define NEWLINE "\r\n"
#elif defined(APPLE)
#define NEWLINE "\r"
#else
#define NEWLINE "\n"
#endif
@@ -276,22 +290,15 @@ typedef int bool;
# define TXTFPU EMPTYSTRING
#endif
/******************************************************************************/
#if defined(WITHTEST)
# define TXTOPTMSG SPACE "(test)"
#else
# define TXTOPTMSG EMPTYSTRING
#endif
/******************************************************************************/
#define TXTARCH TXTCPU TXTFPU
#define RELDATESTAMP "(10-04-2017)"
#define TXTDOSVERSION "\0$VER: amath 1.71" SPACE RELDATESTAMP SPACE TXTARCH
#define TXTTITLE "amath version 1.7.1"
#define RELDATESTAMP "(13-04-2017)"
#define TXTDOSVERSION "\0$VER: amath 1.80" SPACE RELDATESTAMP SPACE TXTARCH
#define TXTTITLE "amath version 1.8.0"
#define TXTCOPYRIGHT "(c) 2017 Carsten Sonne Larsen"
#define TXTSTARTMSG TXTTITLE SPACE TXTCOPYRIGHT
/******************************************************************************/
#define TXTVERSMSG TXTTITLE SPACE RELDATESTAMP SPACE TXTARCH
#define TXTCOMPMSG "Compiled with " COMP_NAME SPACE COMP_VERS TXTOPTMSG
#define TXTCOMPSHTMSG "Compiled with " COMP_NAME SPACE COMP_VERS
#define TXTCOMPMSG "Compiled with " COMP_NAME SPACE COMP_VERS
/******************************************************************************/
#define CPROCNAME "amath_console"
/******************************************************************************/

+ 1
- 3
src/amathc.h View File

@@ -32,8 +32,7 @@

/**
* @file amathc.h
* @brief C functions for manipulating strings and memory.
*
* @brief C functions for manipulating strings and memory
*/

#include <stddef.h>
@@ -54,7 +53,6 @@ void FreeMemSafe(void*);
void DetachMemSafe(void*);
void FreeAllSafe();
void MemUsage(long*, long*, long*);

int StrLen(const char* string);
bool StrIsEqual(const char* s1, const char* s2);
void MemSet(void* destination, int c0, unsigned int length);

+ 217
- 241
src/clib/amathc.3 View File

@@ -1,26 +1,39 @@
.TH "amath/amathc.h" 3 "Wed Mar 1 2017" "Version 1.7.1" "amath" \" -*- nroff -*-
.ad l
.nh
.\" Copyright (c) 2014-2017 Carsten Sonne Larsen <cs@innolan.net>
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.TH "amathc.h" 3 "Version 1.8.0" "April 13 2017"
.SH NAME
amathc.h \- C functions for manipulating strings and memory

.SH SYNOPSIS
.br
.PP
\fC#include <stddef\&.h>\fP
.br
\fC#include 'amath\&.h'\fP
.br

.SS "Classes"

\fC#include \fB"amathc\&.h"\fP
.SS "Data Structures"
.in +1c
.ti -1c
.RI "struct \fBtexttag\fP"
.br
.in -1c
.SS "Functions"

.in +1c
.ti -1c
.RI "void * \fBAllocMemSafe\fP (size_t)"
@@ -31,6 +44,10 @@ amathc.h \- C functions for manipulating strings and memory
.br
.RI "\fIDeallocate memory from the global memory list\&. \fP"
.ti -1c
.RI "void \fBDetachMemSafe\fP (void *)"
.br
.RI "\fIDetach an allocated memory from the global memory list\&. \fP"
.ti -1c
.RI "void \fBFreeAllSafe\fP ()"
.br
.RI "\fIDeallocate all memory in the global memory list\&. \fP"
@@ -43,7 +60,7 @@ amathc.h \- C functions for manipulating strings and memory
.br
.RI "\fIGet the length of a null terminated string\&. \fP"
.ti -1c
.RI "\fBbool\fP \fBStrIsEqual\fP (const char *s1, const char *s2)"
.RI "bool \fBStrIsEqual\fP (const char *s1, const char *s2)"
.br
.RI "\fICompare two null terminated strings to each other\&. \fP"
.ti -1c
@@ -61,21 +78,11 @@ amathc.h \- C functions for manipulating strings and memory
.ti -1c
.RI "void \fBUntag\fP (char *destination, const char *source, \fBtexttag\fP tags[], unsigned int tagcount)"
.br
.in -1c
.SH "Detailed Description"
.PP
C functions for manipulating strings and memory\&.


.PP
Definition in file \fBamathc\&.h\fP\&.
.SH "Function Documentation"
.br
.SH DESCRIPTION
.PP
.SS "unsigned int AllocAndCopy (char ** destination, const char * source)"
.br
.PP
Allocate memory and copy a string into the array\&.
Allocate memory and copy a string into the array\&.
.PP
Definition at line 40 of file alloccpy\&.c\&.
.PP
@@ -107,7 +114,6 @@ Definition at line 40 of file alloccpy\&.c\&.
69 }
.fi
.SS "void* AllocMemSafe (size_t)"

.PP
Allocate memory and add it to the global memory list\&.
.PP
@@ -171,251 +177,211 @@ Definition at line 86 of file mem\&.c\&.
141 return newblock->address;
142 }
.fi
.SS "void DetachMemSafe (void * block)"
.PP
Detach an allocated memory from the global memory list\&. The memory block is only detached, not deallocated\&.
.PP
Definition at line 209 of file mem\&.c\&.
.PP
.nf
210 {
211 RemoveMemSafe(block, false);
212 }
.fi
.SS "void FreeAllSafe ()"

.PP
Deallocate all memory in the global memory list\&.
.PP
Definition at line 199 of file mem\&.c\&.
Definition at line 217 of file mem\&.c\&.
.PP
.nf
200 {
201 struct MemoryBlock *current, *next;
202
203 if (list == nullptr)
204 {
205 return;
206 }
207
208 current = list->first;
209 while (current != nullptr)
210 {
211 next = current->next;
212 FREE_MEM(current->address);
213 FREE_MEM(current);
214 current = next;
215 }
216
217 FREE_MEM(list);
218 list = nullptr;
219 }
218 {
219 struct MemoryBlock *current, *next;
220
221 if (list == nullptr)
222 {
223 return;
224 }
225
226 current = list->first;
227 while (current != nullptr)
228 {
229 next = current->next;
230 FREE_MEM(current->address);
231 FREE_MEM(current);
232 current = next;
233 }
234
235 FREE_MEM(list);
236 list = nullptr;
237 }
.fi
.SS "void FreeMemSafe (void *)"

.PP
Deallocate memory from the global memory list\&.
.PP
Definition at line 147 of file mem\&.c\&.
Definition at line 200 of file mem\&.c\&.
.PP
.nf
148 {
149 struct MemoryBlock *current, *previous;
150
151 if (list == nullptr || block == nullptr)
152 {
153 dealloc_error("list", 0);
154 return;
155 }
156
157 if (block == nullptr)
158 {
159 dealloc_error("memory", 0);
160 return;
161 }
162
163 previous = nullptr;
164 current = list->first;
165 while (current != nullptr && current->address != block)
166 {
167 previous = current;
168 current = current->next;
169 }
170
171 if (current == nullptr)
172 {
173 dealloc_error("address not found", block);
174 return;
175 }
176
177 if (previous == nullptr)
178 {
179 list->first = current->next;
180 }
181 else
182 {
183 previous->next = current->next;
184 }
185
186 list->size -= current->size;
187 list->count--;
188
189 FREE_MEM(current->address);
190 current->address = nullptr;
191 current->next = nullptr;
192 current->size = 0;
193 FREE_MEM(current);
194 }
201 {
202 RemoveMemSafe(block, true);
203 }
.fi
.SS "void MemCopy (void * destination, const void * source, unsigned int length)"

.PP
Copy a block of memory, handling overlap\&.
.PP
Definition at line 77 of file memcpy\&.c\&.
Definition at line 75 of file memcpy\&.c\&.
.PP
.nf
78 {
79 char* dst = (char*) destination;
80 const char* src = (const char*) source;
81 unsigned int t;
82
83 if (length == 0 || dst == src) // nothing to do
84 return;
85
86 if ((mem_ptr)dst < (mem_ptr)src)
87 {
88 // Copy forward
92 t = (mem_ptr)src; // only need low bits
93 if ((t | (mem_ptr)dst) & wmask)
94 {
95 // Try to align operands\&. This cannot be done unless the low bits match\&.
96 if ((t ^ (mem_ptr)dst) & wmask || length < wsize)
97 t = length;
98 else
99 t = wsize - (t & wmask);
100 length -= t;
101
102 TLOOP1(*dst++ = *src++);
103 }
104
105 // Copy whole words, then mop up any trailing bytes\&.
106 t = length / wsize;
107 TLOOP(*(word *)dst = *(word *)src; src += wsize; dst += wsize);
108
109 t = length & wmask;
110 TLOOP(*dst++ = *src++);
111 #endif
112 }
113 else
114 {
115 // Copy backwards\&. Otherwise essentially the same\&.
116 // Alignment works as before, except that it takes
117 // (t&wmask) bytes to align, not wsize-(t&wmask)\&.
118 src += length;
119 dst += length;
120 t = (mem_ptr)src;
121 if ((t | (mem_ptr)dst) & wmask)
122 {
123 if ((t ^ (mem_ptr)dst) & wmask || length <= wsize)
124 t = length;
125 else
126 t &= wmask;
127 length -= t;
128
129 TLOOP1(*--dst = *--src);
130 }
131
132 t = length / wsize;
133 TLOOP(src -= wsize; dst -= wsize; *(word *)dst = *(word *)src);
134
135 t = length & wmask;
136 TLOOP(*--dst = *--src);
137 }
138 }
76 {
77 char* dst = (char*) destination;
78 const char* src = (const char*) source;
79 unsigned int t;
80
81 if (length == 0 || dst == src) // nothing to do
82 return;
83
84 if ((mem_ptr)dst < (mem_ptr)src)
85 {
86 // Copy forward
90 t = (mem_ptr)src; // only need low bits
91 if ((t | (mem_ptr)dst) & wmask)
92 {
93 // Try to align operands\&. This cannot be done unless the low bits match\&.
94 if ((t ^ (mem_ptr)dst) & wmask || length < wsize)
95 t = length;
96 else
97 t = wsize - (t & wmask);
98 length -= t;
99
100 TLOOP1(*dst++ = *src++);
101 }
102
103 // Copy whole words, then mop up any trailing bytes\&.
104 t = length / wsize;
105 TLOOP(*(word *)dst = *(word *)src; src += wsize; dst += wsize);
106
107 t = length & wmask;
108 TLOOP(*dst++ = *src++);
110 }
111 else
112 {
113 // Copy backwards\&. Otherwise essentially the same\&.
114 // Alignment works as before, except that it takes
115 // (t&wmask) bytes to align, not wsize-(t&wmask)\&.
116 src += length;
117 dst += length;
118 t = (mem_ptr)src;
119 if ((t | (mem_ptr)dst) & wmask)
120 {
121 if ((t ^ (mem_ptr)dst) & wmask || length <= wsize)
122 t = length;
123 else
124 t &= wmask;
125 length -= t;
126
127 TLOOP1(*--dst = *--src);
128 }
129
130 t = length / wsize;
131 TLOOP(src -= wsize; dst -= wsize; *(word *)dst = *(word *)src);
132
133 t = length & wmask;
134 TLOOP(*--dst = *--src);
135 }
136 }
.fi
.SS "void MemSet (void * destination, int c0, unsigned int length)"

.PP
Fill block of memory with a constant value\&.
.PP
Definition at line 60 of file memset\&.c\&.
Definition at line 56 of file memset\&.c\&.
.PP
.nf
61 {
62 unsigned char* dst = (unsigned char*) dst0;
63 unsigned int t;
64 unsigned int c;
65
66 /*
67 * If not enough words, just fill bytes\&. A length >= 2 words
68 * guarantees that at least one of them is `complete' after
69 * any necessary alignment\&. For instance:
70 *
71 * |-----------|-----------|-----------|
72 * |00|01|02|03|04|05|06|07|08|09|0A|00|
73 * ^---------------------^
74 * dst dst+length-1
75 *
76 * but we use a minimum of 3 here since the overhead of the code
77 * to do word writes is substantial\&.
78 */
79 if (length < 3 * wsize)
80 {
81 while (length != 0)
82 {
83 *dst++ = c0;
84 --length;
85 }
86 }
87
88 if ((c = (unsigned char)c0) != 0)
89 { /* Fill the word\&. */
90 c = (c << 8) | c; /* u_int is 16 bits\&. */
91 #if UINT_MAX > 0xffff
92 c = (c << 16) | c; /* u_int is 32 bits\&. */
93 #endif
94 #if UINT_MAX > 0xffffffff
95 c = (c << 32) | c; /* u_int is 64 bits\&. */
96 #endif
97 }
98
99 /* Align destination by filling in bytes\&. */
100 if ((t = (mem_ptr)dst & wmask) != 0)
101 {
102 t = wsize - t;
103 length -= t;
104 do
105 {
106 *dst++ = c0;
107 }
108 while (--t != 0);
109 }
110
111 /* Fill words\&. Length was >= 2*words so we know t >= 1 here\&. */
112 t = length / wsize;
113 do
114 {
115 *(unsigned int*)dst = c;
116 dst += wsize;
117 }
118 while (--t != 0);
119
120 /* Mop up trailing bytes, if any\&. */
121 t = length & wmask;
122 if (t != 0)
123 do
124 {
125 *dst++ = c0;
126 }
127 while (--t != 0);
128 }
57 {
58 unsigned char* dst = (unsigned char*) dst0;
59 unsigned int t;
60 unsigned int c;
61
62 /*
63 * If not enough words, just fill bytes\&. A length >= 2 words
64 * guarantees that at least one of them is `complete' after
65 * any necessary alignment\&. For instance:
66 *
67 * |-----------|-----------|-----------|
68 * |00|01|02|03|04|05|06|07|08|09|0A|00|
69 * ^---------------------^
70 * dst dst+length-1
71 *
72 * but we use a minimum of 3 here since the overhead of the code
73 * to do word writes is substantial\&.
74 */
75 if (length < 3 * wsize)
76 {
77 while (length != 0)
78 {
79 *dst++ = c0;
80 --length;
81 }
82 }
83
84 if ((c = (unsigned char)c0) != 0)
85 { /* Fill the word\&. */
86 c = (c << 8) | c; /* u_int is 16 bits\&. */
87 #if UINT_MAX > 0xffff
88 c = (c << 16) | c; /* u_int is 32 bits\&. */
89 #endif
90 #if UINT_MAX > 0xffffffff
91 c = (c << 32) | c; /* u_int is 64 bits\&. */
92 #endif
93 }
94
95 /* Align destination by filling in bytes\&. */
96 if ((t = (mem_ptr)dst & wmask) != 0)
97 {
98 t = wsize - t;
99 length -= t;
100 do
101 {
102 *dst++ = c0;
103 }
104 while (--t != 0);
105 }
106
107 /* Fill words\&. Length was >= 2*words so we know t >= 1 here\&. */
108 t = length / wsize;
109 do
110 {
111 *(unsigned int*)dst = c;
112 dst += wsize;
113 }
114 while (--t != 0);
115
116 /* Mop up trailing bytes, if any\&. */
117 t = length & wmask;
118 if (t != 0)
119 do
120 {
121 *dst++ = c0;
122 }
123 while (--t != 0);
124 }
.fi
.SS "void MemUsage (long *, long *, long *)"

.PP
Get memory usage in the global memory list\&.
.PP
Definition at line 224 of file mem\&.c\&.
Definition at line 242 of file mem\&.c\&.
.PP
.nf
225 {
226 *blocks = list->count;
227 *size = (long)list->size;
228 *peak = (long)list->peak;;
229 }
243 {
244 *blocks = list->count;
245 *size = (long)list->size;
246 *peak = (long)list->peak;;
247 }
.fi
.SS "\fBbool\fP StrIsEqual (const char * s1, const char * s2)"

.SS "bool StrIsEqual (const char * s1, const char * s2)"
.PP
Compare two null terminated strings to each other\&.
.PP
@@ -435,7 +401,6 @@ Definition at line 50 of file strcmp\&.c\&.
61 }
.fi
.SS "int StrLen (const char * string)"

.PP
Get the length of a null terminated string\&.
.PP
@@ -451,7 +416,6 @@ Definition at line 34 of file strlen\&.c\&.
41 }
.fi
.SS "void Untag (char * destination, const char * source, \fBtexttag\fP tags[], unsigned int tagcount)"

.PP
Definition at line 32 of file untag\&.c\&.
.PP
@@ -507,6 +471,18 @@ Definition at line 32 of file untag\&.c\&.
81 *dest = '\0';
82 }
.fi
.SH "See also"
.PP
amath(1), amathr(3), amathi(3)
.SH HOMEPAGE
http://amath.innolan.net/
.SH AUTHORS
.PP
Written by Carsten Sonne Larsen <cs@innolan.net>. The code in MemSet and
MemCopy is derived from software contributed to Berkeley by Mike Hibler and
Chris Torek.
.SH COPYRIGHT
Copyright (c) 2014-2017 Carsten Sonne Larsen <cs@innolan.net>
.br
Copyright (c) 2007 The NetBSD Foundation, Inc.
.br
Copyright (c) 1990, 1993 The Regents of the University of California
.SH SEE ALSO
amath(1), amathr(3), amathi(3)

+ 154
- 0
src/clib/amathc.dox View File

@@ -0,0 +1,154 @@

DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "amathc"
PROJECT_NUMBER = "1.8.0"
PROJECT_BRIEF = "C functions for manipulating strings and memory"
PROJECT_LOGO =
OUTPUT_DIRECTORY =
CREATE_SUBDIRS = NO
ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF =
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = NO
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 4
ALIASES =
TCL_SUBST =
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
EXTENSION_MAPPING = C
MARKDOWN_SUPPORT = YES
AUTOLINK_SUPPORT = YES
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
IDL_PROPERTY_SUPPORT = YES
DISTRIBUTE_GROUP_DOC = NO
GROUP_NESTED_COMPOUNDS = NO
SUBGROUPING = YES
INLINE_GROUPED_CLASSES = NO
INLINE_SIMPLE_STRUCTS = NO
TYPEDEF_HIDES_STRUCT = NO
LOOKUP_CACHE_SIZE = 0

EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_PACKAGE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = NO
EXTRACT_ANON_NSPACES = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
HIDE_COMPOUND_REFERENCE= NO
SHOW_INCLUDE_FILES = YES
SHOW_GROUPED_MEMB_INC = NO
FORCE_LOCAL_INCLUDES = NO
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_MEMBERS_CTORS_1ST = NO
SORT_GROUP_NAMES = NO
SORT_BY_SCOPE_NAME = YES
STRICT_PROTO_MATCHING = NO
GENERATE_TODOLIST = NO
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_FILES = YES
SHOW_NAMESPACES = YES
FILE_VERSION_FILTER =
LAYOUT_FILE =
CITE_BIB_FILES =

QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_AS_ERROR = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE = doxygen.warn

INPUT = ../amathc.h .
INPUT_ENCODING = UTF-8
FILE_PATTERNS =
RECURSIVE = NO
EXCLUDE = amathc.dox
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
FILTER_SOURCE_PATTERNS =
USE_MDFILE_AS_MAINPAGE = NO

SOURCE_BROWSER = YES
INLINE_SOURCES = YES
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = NO
REFERENCES_LINK_SOURCE = NO
SOURCE_TOOLTIPS = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
CLANG_ASSISTED_PARSING = YES
CLANG_OPTIONS =

ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =

GENERATE_MAN = YES
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_SUBDIR =
MAN_LINKS = NO

ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = UNIX
EXPAND_AS_DEFINED = YES
SKIP_FUNCTION_MACROS = YES

GENERATE_HTML = NO
GENERATE_LATEX = NO
GENERATE_RTF = NO
GENERATE_XML = NO
GENERATE_DOCBOOK = NO
GENERATE_AUTOGEN_DEF = NO
GENERATE_PERLMOD = NO
ALLEXTERNALS = NO
EXTERNAL_GROUPS = NO
EXTERNAL_PAGES = NO
CLASS_DIAGRAMS = NO

+ 1
- 1
src/clib/amathc.pc View File

@@ -5,6 +5,6 @@ libdir=${exec_prefix}/lib

Name: amath C library
Description: C functions for manipulating strings and memory
Version: 1.7.1
Version: 1.8.0
Cflags: -I${includedir}
Libs: -L${libdir} -lamathc

+ 629
- 734
src/cplex/amathi.3
File diff suppressed because it is too large
View File


+ 154
- 0
src/cplex/amathi.dox View File

@@ -0,0 +1,154 @@

DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "amathi"
PROJECT_NUMBER = "1.8.0"
PROJECT_BRIEF = "Complex numbers math library"
PROJECT_LOGO =
OUTPUT_DIRECTORY =
CREATE_SUBDIRS = NO
ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF =
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = NO
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 4
ALIASES =
TCL_SUBST =
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
EXTENSION_MAPPING = C
MARKDOWN_SUPPORT = YES
AUTOLINK_SUPPORT = YES
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO