00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef ASC_FRACTIONS_H
00032 #define ASC_FRACTIONS_H
00033
00034 #include <utilities/ascConfig.h>
00035
00041 #define FRACPART short
00042
00043 #define FRACMAX SHRT_MAX
00044
00046 struct fraction {
00047 FRACPART numerator;
00048 FRACPART denominator;
00049 };
00050
00051 ASC_DLLSPEC struct fraction CreateFraction(short n, short d);
00057 extern struct fraction Simplify(struct fraction f);
00063 #define Numerator(f) ((f).numerator)
00064
00068 #define Denominator(f) ((f).denominator)
00069
00073 extern struct fraction AddF(struct fraction f1, struct fraction f2);
00078 extern struct fraction SubF(struct fraction f1, struct fraction f2);
00083 extern struct fraction MultF(struct fraction f1, struct fraction f2);
00088 extern struct fraction DivF(struct fraction f1, struct fraction f2);
00093 extern int CmpF(struct fraction f1, struct fraction f2);
00098 extern struct fraction NegateF(struct fraction f);
00103
00104
00105 #endif
00106