Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2004-07-13 15:42:13 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2004-07-13 15:42:13 +0400
commit4f1c674ee02e07a6986a54a312d7fb9e2547e950 (patch)
tree5c177fa0eb7a22fd81c259d57f7963489e666a7b /intern/opennl/superlu/superlu_timer.c
parent4a13a5720db5e54984de2cf3e58a1108f52d1833 (diff)
Added SuperLU 3.0:
http://crd.lbl.gov/~xiaoye/SuperLU/ This is a library to solve sparse matrix systems (type A*x=B). It is able to solve large systems very FAST. Only the necessary parts of the library are included to limit file size and compilation time. This means the example files, fortran interface, test files, matlab interface, cblas library, complex number part and build system have been left out. All (gcc) warnings have been fixed too. This library will be used for LSCM UV unwrapping. With this library, LSCM unwrapping can be calculated in a split second, making the unwrapping proces much more interactive. Added OpenNL (Open Numerical Libary): http://www.loria.fr/~levy/OpenNL/ OpenNL is a library to easily construct and solve sparse linear systems. We use a stripped down version, as an interface to SuperLU. This library was kindly given to use by Bruno Levy.
Diffstat (limited to 'intern/opennl/superlu/superlu_timer.c')
-rw-r--r--intern/opennl/superlu/superlu_timer.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/intern/opennl/superlu/superlu_timer.c b/intern/opennl/superlu/superlu_timer.c
new file mode 100644
index 00000000000..798fd59d4ea
--- /dev/null
+++ b/intern/opennl/superlu/superlu_timer.c
@@ -0,0 +1,55 @@
+/*
+ * Purpose
+ * =======
+ * Returns the time in seconds used by the process.
+ *
+ * Note: the timer function call is machine dependent. Use conditional
+ * compilation to choose the appropriate function.
+ *
+ */
+
+/* We want this flag, safer than putting in build system */
+#define NO_TIMER
+
+#ifdef SUN
+/*
+ * It uses the system call gethrtime(3C), which is accurate to
+ * nanoseconds.
+*/
+#include <sys/time.h>
+
+double SuperLU_timer_() {
+ return ( (double)gethrtime() / 1e9 );
+}
+
+#else
+
+#ifndef NO_TIMER
+#include <sys/types.h>
+#include <sys/times.h>
+#include <time.h>
+#include <sys/time.h>
+#endif
+
+#ifndef CLK_TCK
+#define CLK_TCK 60
+#endif
+
+double SuperLU_timer_()
+{
+#ifdef NO_TIMER
+ /* no sys/times.h on WIN32 */
+ double tmp;
+ tmp = 0.0;
+#else
+ struct tms use;
+ double tmp;
+ times(&use);
+ tmp = use.tms_utime;
+ tmp += use.tms_stime;
+#endif
+ return (double)(tmp) / CLK_TCK;
+}
+
+#endif
+