MathGroup Archive 1989

[Date Index] [Thread Index] [Author Index]

Search the Archive

[no subject]

  • To: mathgroup
  • From: stevec (Steve Christensen)
  • Date: Wed, 15 Mar 89 10:55:30 CST

>From att!twitch!rvk at uxc.cso.uiuc.edu
Subject: Mathematica and libm?

The following item was seen in a netnews group, and might
be of some interest to people in your area.  I coded the
program, and get essentially the same results.  while I don't
know whether the explanation supplied is correct or not, I am
wondering how something like this might affect packages like
Mathematica.
------------------------------------------------------------
If you use libm (especially trancendental functions sin(), cos(), ln(),
exp() etc..) you can get nearly a 10* speedup by using the clumsy code
inlining facility provided by Sun's C complier.

For example (on Sun 3/60, SunOS 4.0.1)

The following code:

	#include <math.h>

	main()
	{
		register int i;
		register double x, y;
		for(i = 0, x = 0; i < 100000; i++, x += 2*M_PI/100000.0)
			y = cos(x);
	}

Compiled with:
	cc -O -f68881 -o cos cos.c -lm

Runs in:
	real    0m30.16s
	user    0m24.56s
	sys     0m0.58s

Compiled with (but how incredibly *UGLY*):
	cc -O -f68881 -o cos cos.c /usr/lib/f68881/libm.il

Runs in:
	real    0m4.33s
	user    0m3.65s
	sys     0m0.20s

REASON:
	Although Sun went to the trouble of making the assembly inline
	file /usr/lib/f68881/libm.il, and a 68881 version of the
	maths library, they *DID NOT* make assembly versions of
	the maths functions to put into the maths library!
	(and similarly for the FPA)





  • Prev by Date: email address
  • Next by Date: Re: Archives
  • Previous by thread: email address
  • Next by thread: Dirac trace package