[Gnucash-changes] tweaks to make the doxygen docs build correctly

Linas Vepstas linas at cvs.gnucash.org
Sun Jun 27 01:17:14 EDT 2004


Log Message:
-----------
tweaks to make the doxygen docs build correctly

Modified Files:
--------------
    gnucash/src/engine:
        Makefile.am
        qofmath128.c

Added Files:
-----------
    gnucash/src/engine:
        qofmath128.h

Revision Data
-------------
--- /dev/null
+++ src/engine/qofmath128.h
@@ -0,0 +1,76 @@
+/********************************************************************
+ * qofmath128.h -- an 128-bit integer library                       *
+ * Copyright (C) 2004 Linas Vepstas <linas at linas.org>               *
+ *                                                                  *
+ * This program is free software; you can redistribute it and/or    *
+ * modify it under the terms of the GNU General Public License as   *
+ * published by the Free Software Foundation; either version 2 of   *
+ * the License, or (at your option) any later version.              *
+ *                                                                  *
+ * This program is distributed in the hope that it will be useful,  *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of   *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    *
+ * GNU General Public License for more details.                     *
+ *                                                                  *
+ * You should have received a copy of the GNU General Public License*
+ * along with this program; if not, contact:                        *
+ *                                                                  *
+ * Free Software Foundation           Voice:  +1-617-542-5942       *
+ * 59 Temple Place - Suite 330        Fax:    +1-617-542-2652       *
+ * Boston, MA  02111-1307,  USA       gnu at gnu.org                   *
+ *                                                                  *
+ *******************************************************************/
+
+#ifndef QOF_MATH_128_H
+#define QOF_MATH_128_H
+
+#include <glib.h>
+
+/** @addtogroup Math128
+ *  Quick-n-dirty 128-bit integer math lib.   Things seem to mostly
+ *  work, and have been tested, but not comprehensively tested.
+ * @{
+ */
+
+typedef struct {
+  guint64 hi;
+  guint64 lo;
+  short isneg;    /**< sign-bit -- T if number is negative */
+  short isbig;    /**< sizeflag -- T if number won't fit in signed 64-bit */
+} qofint128;
+
+/** Multiply a pair of signed 64-bit numbers, 
+ *  returning a signed 128-bit number.
+ */
+inline qofint128 mult128 (gint64 a, gint64 b);
+
+/** Divide a signed 128-bit number by a signed 64-bit,
+ *  returning a signed 128-bit number.
+ */
+inline qofint128 div128 (qofint128 n, gint64 d);
+
+/** Return the remainder of a signed 128-bit number modulo 
+ *  a signed 64-bit.  That is, return n%d in 128-bit math.
+ *  I beleive that ths algo is overflow-free, but should be 
+ *  audited some more ... 
+ */
+inline gint64 rem128 (qofint128 n, gint64 d);
+
+/** Return the ratio n/d reduced so that there are no common factors. */
+inline gnc_numeric reduce128(qofint128 n, gint64 d);
+
+/** Return true of two numbers are equal */
+inline gboolean equal128 (qofint128 a, qofint128 b);
+
+/** Return the greatest common factor of two 64-bit numbers */
+inline guint64 gcf64(guint64 num, guint64 denom);
+
+/** Return the least common multiple of two 64-bit numbers. */
+inline qofint128 lcm128 (guint64 a, guint64 b);
+
+/** Add a pair of 128-bit numbers, returning a 128-bit number */
+inline qofint128 add128 (qofint128 a, qofint128 b);
+
+#endif
+
+/** @} */
Index: qofmath128.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofmath128.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -Lsrc/engine/qofmath128.c -Lsrc/engine/qofmath128.c -u -r1.1 -r1.2
--- src/engine/qofmath128.c
+++ src/engine/qofmath128.c
@@ -24,25 +24,20 @@
 #define _GNU_SOURCE
 
 #include "config.h"
+#include "qofmath128.h"
 
 #include <glib.h>
 
 /* =============================================================== */
-/* Quick-n-dirty 128-bit math lib. The mult128 routine should work 
- * great; I think that div128 works, but its not really tested.
+/*
+ *  Quick-n-dirty 128-bit integer math lib.   Things seem to mostly
+ *  work, and have been tested, but not comprehensively tested.
  */
 
-typedef struct {
-  guint64 hi;
-  guint64 lo;
-  short isneg;    /* sign-bit -- T if number is negative */
-  short isbig;    /* sizeflag -- T if number won't fit in signed 64-bit */
-} qofint128;
-
 /** Multiply a pair of signed 64-bit numbers, 
  *  returning a signed 128-bit number.
  */
-static inline qofint128
+inline qofint128
 mult128 (gint64 a, gint64 b)
 {
   qofint128 prod;
@@ -106,7 +101,7 @@
 /** Divide a signed 128-bit number by a signed 64-bit,
  *  returning a signed 128-bit number.
  */
-static inline qofint128
+inline qofint128
 div128 (qofint128 n, gint64 d)
 {
   qofint128 quotient;
@@ -160,7 +155,7 @@
  *  I beleive that ths algo is overflow-free, but should be 
  *  audited some more ... 
  */
-static inline gint64
+inline gint64
 rem128 (qofint128 n, gint64 d)
 {
   qofint128 quotient = div128 (n,d);
@@ -173,7 +168,7 @@
 }
 
 /** Return the ratio n/d reduced so that there are no common factors. */
-static inline gnc_numeric
+inline gnc_numeric
 reduce128(qofint128 n, gint64 d)
 {
   gint64   t;
@@ -206,7 +201,7 @@
 }
 
 /** Return true of two numbers are equal */
-static inline gboolean
+inline gboolean
 equal128 (qofint128 a, qofint128 b)
 {
 	if (a.lo != b.lo) return 0;
@@ -216,7 +211,7 @@
 }
 
 /** Return the greatest common factor of two 64-bit numbers */
-static inline guint64
+inline guint64
 gcf64(guint64 num, guint64 denom)
 {
   guint64   t;
@@ -237,7 +232,7 @@
 }
 
 /** Return the least common multiple of two 64-bit numbers. */
-static inline qofint128
+inline qofint128
 lcm128 (guint64 a, guint64 b)
 {
   guint64 gcf = gcf64 (a,b);
@@ -246,7 +241,7 @@
 }
 
 /** Add a pair of 128-bit numbers, returning a 128-bit number */
-static inline qofint128
+inline qofint128
 add128 (qofint128 a, qofint128 b)
 {
   qofint128 sum;
Index: Makefile.am
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/Makefile.am,v
retrieving revision 1.123
retrieving revision 1.124
diff -Lsrc/engine/Makefile.am -Lsrc/engine/Makefile.am -u -r1.123 -r1.124
--- src/engine/Makefile.am
+++ src/engine/Makefile.am
@@ -105,6 +105,7 @@
   qofid.h \
   qofinstance.h \
   qofmath128.c \
+  qofmath128.h \
   qofobject.h \
   qofquery.h \
   qofquerycore.h \


More information about the gnucash-changes mailing list