Index: article.xml =================================================================== --- article.xml +++ article.xml @@ -547,7 +547,7 @@ FreeBSD traces its roots back nearly twenty years to the work of the Computer Science Research Group at the University of California Berkeley. - FreeBSD's source + FreeBSD's source repository contains a history of the project since its inception, and there are CDROMs available that contain earlier code from the @@ -581,28 +581,22 @@
A sample change log entry -bde 2005-10-29 16:34:50 UTC +r151864 | bde | 2005-10-29 09:34:50 -0700 (Sat, 29 Oct 2005) | 13 lines +Changed paths: + M /head/lib/msun/src/e_rem_pio2f.c - FreeBSD src repository +Use double precision to simplify and optimize arg reduction for small +and medium size args too: instead of conditionally subtracting a float +17+24, 17+17+24 or 17+17+17+24 bit approximation to pi/2, always +subtract a double 33+53 bit one. The float version is now closer to +the double version than to old versions of itself -- it uses the same +33+53 bit approximation as the simplest cases in the double version, +and where the float version had to switch to the slow general case at +|x| == 2^7*pi/2, it now switches at |x| == 2^19*pi/2 the same as the +double version. - Modified files: - lib/msun/src e_rem_pio2f.c - Log: - Use double precision to simplify and optimize arg reduction for small - and medium size args too: instead of conditionally subtracting a float - 17+24, 17+17+24 or 17+17+17+24 bit approximation to pi/2, always - subtract a double 33+53 bit one. The float version is now closer to - the double version than to old versions of itself — it uses the same - 33+53 bit approximation as the simplest cases in the double version, - and where the float version had to switch to the slow general case at - |x| == 2^7*pi/2, it now switches at |x| == 2^19*pi/2 the same as the - double version. - - This speeds up arg reduction by a factor of 2 for |x| between 3*pi/4 and - 2^7*pi/4, and by a factor of 7 for |x| between 2^7*pi/4 and 2^19*pi/4. - - Revision Changes Path - 1.14 +22 -97 src/lib/msun/src/e_rem_pio2f.c +This speeds up arg reduction by a factor of 2 for |x| between 3*pi/4 and +2^7*pi/4, and by a factor of 7 for |x| between 2^7*pi/4 and 2^19*pi/4.
@@ -632,9 +626,9 @@ FreeBSD. For example:
Track FreeBSD source code - The project makes it easy to mirror its CVS - repository using CVSup. Having + The project makes it easy to mirror its SVN + repository using svnsync. Having the complete history of the source is useful when debugging complex problems and offers valuable insight into the intentions of the original developers. Use a @@ -642,43 +636,32 @@ easily merge changes between the upstream FreeBSD code base and your own in-house code. - shows a portion of + shows a portion of an annotated listing of the file referenced by the change log in . The ancestry of each line of the source is clearly visible. Annotated listings showing the history of every file - that is part of FreeBSD are available on the + that is part of FreeBSD are available on the web. -
- An annotated source listing generated using <command>cvs annotate</command> +
+ An annotated source listing generated using <command>svn blame</command> 0) { -75 1.15 (bde 06-Nov-05): z = x - pio2; -76 1.15 (bde 06-Nov-05): n = 1; -77 1.15 (bde 06-Nov-05): } else { -78 1.15 (bde 06-Nov-05): z = x + pio2; -79 1.15 (bde 06-Nov-05): n = 3; -80 1.9 (bde 08-Oct-05): } -81 1.15 (bde 06-Nov-05): y[0] = z; -82 1.15 (bde 06-Nov-05): y[1] = z - y[0]; -83 1.15 (bde 06-Nov-05): return n; -84 1.15 (bde 06-Nov-05): } -85 1.15 (bde 06-Nov-05): if(ix<0x407b53d1) { /* |x| < 5*pi/4, special case with n=+-2 */ +176410 bde 2008-02-19 07:42:46 -0800 (Tue, 19 Feb 2008) #include +176410 bde 2008-02-19 07:42:46 -0800 (Tue, 19 Feb 2008) __FBSDID("$FreeBSD$"); + 2116 jkh 1994-08-19 02:40:01 -0700 (Fri, 19 Aug 1994) + 2116 jkh 1994-08-19 02:40:01 -0700 (Fri, 19 Aug 1994) /* __ieee754_rem_pio2f(x,y) + 8870 rgrimes 1995-05-29 22:51:47 -0700 (Mon, 29 May 1995) * +176552 bde 2008-02-25 05:33:20 -0800 (Mon, 25 Feb 2008) * return the remainder of x rem pi/2 in *y +176552 bde 2008-02-25 05:33:20 -0800 (Mon, 25 Feb 2008) * use double precision for everything except passing x +152535 bde 2005-11-16 18:20:04 -0800 (Wed, 16 Nov 2005) * use __kernel_rem_pio2() for large x + 2116 jkh 1994-08-19 02:40:01 -0700 (Fri, 19 Aug 1994) */ + 2116 jkh 1994-08-19 02:40:01 -0700 (Fri, 19 Aug 1994) +176465 bde 2008-02-22 07:55:14 -0800 (Fri, 22 Feb 2008) #include +176465 bde 2008-02-22 07:55:14 -0800 (Fri, 22 Feb 2008) + 2116 jkh 1994-08-19 02:40:01 -0700 (Fri, 19 Aug 1994) #include "math.h" ]]>