home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-387-Vol-3of3.iso
/
l
/
l-coll1.zip
/
TOOLLIBR.ZOO
/
ToolLibrary
/
src
/
MatheFunktionen.c
< prev
next >
Wrap
C/C++ Source or Header
|
1990-11-02
|
3KB
|
86 lines
/********************************************************************/
/**** ****/
/**** ****/
/**** Program : MatheFunktionen ****/
/**** ****/
/**** Version : 01.07 ****/
/**** ****/
/**** Erstversion : 21.05.1988 ****/
/**** ****/
/**** Letzte ─nderung : 31.05.1990 ****/
/**** ****/
/**** Compiliert mit : siehe MAKE ****/
/**** ****/
/**** Gelinkt mit : Fⁿr Tool.Library ****/
/**** ****/
/********************************************************************/
/**** ****/
/**** ****/
/**** Copyright by Rⁿdiger Dreier ****/
/**** ****/
/**** ****/
/********************************************************************/
#include "ToolProto.h"
#include <proto/mathieeedoubbas.h>
#include <proto/mathieeedoubtrans.h>
extern struct Library *MathIeeeDoubBasBase;
extern struct Library *MathIeeeDoubTransBase;
VOID __asm Fak(register __a0 DOUBLE *Ziel,
register __d0 LONG i)
{
DOUBLE W2,W3;
if(i>0)
{
Fak(&W2,i-1);
W3=Flt(i);
*Ziel=Mul(W2,W3);
}
else
{
if(i==0)
{
*Ziel=Flt(1);
}
else
{
*Ziel=Flt(-1);
}
}
}
VOID __asm NuK(register __a0 DOUBLE *Ziel,
register __d0 LONG n,
register __d1 LONG k)
{
DOUBLE a,b,c;
Fak(&a,n);
Fak(&b,k);
Fak(&c,n-k);
if(Cmp(a,-1.0)==0)
{
*Ziel=-1.0;
return;
}
if(Cmp(b,-1.0)==0)
{
*Ziel=-1.0;
return;
}
if(Cmp(c,-1.0)==0)
{
*Ziel=-1.0;
return;
}
b=Mul(b,c);
a=Div(a,b);
*Ziel=a;
}