Scilab Home Page | Wiki | Bug Tracker | Forge | Mailing List Archives | Scilab Online Help | File Exchange
ATOMS : Accsum details
Login with GitLab

Accsum

Accurate summation algorithms
(3927 downloads for this version - 18734 downloads for all versions)
Details
Version
0.1
A more recent valid version exists: 0.1.2
Author
Michael Baudin
Owner Organization
DIGITEO
Maintainers
Michael BAUDIN
Antoine ELIAS
Category
License
Dependencies
Creation Date
May 31, 2011
Source created on
Scilab 5.2.x
Binaries available on
Scilab 5.2.x:
Linux 32-bit Windows 32-bit Windows 64-bit macOS Linux 64-bit
Install command
--> atomsInstall("accsum")
Description
            The goal of this toolbox is to provide accurate algorithms to 
compute sums.
We consider here sums of a given dataset x, that is, we 
consider s = x(1)+x(2)+...+x(n).

These algorithms may be required to manage datasets which 
are ill-conditionned with respect to the sum function, which  
happens when the data are varying highly in magnitude and in 
sign. 
Hence, these datasets are very sensitive to small changes in the 
input. 
In this case, the "sum" function of Scilab is not appropriate 
and may produce results which have only a small number of significant 
digits, or no significant digit at all. 
Users may consider the condnum module and the condnb_sumcond 
function to compute the condition number of a particular sum. 
See http://atoms.scilab.org/toolboxes/condnb
for details.

The flagship of this module is the accsum_fdcs function, which 
provides a doubly self compensated sum algorithm. 
This function is based on compiled source code, so that it is 
fast enough, even for relatively large datasets. 
The data must be ordered in decreasing magnitude. 
To do this, we may use the accsum_order function with order=5.

The module is mainly based on the book "Stability and numerical 
accuracy of algorithms" by Nicolas Higham.

The toolbox is based on macros and compiled source code.

Type "help accsum_overview" for quick start.


Features
--------

The following is a list of the current accsum functions :
 * accsum_dcs : A Doubly Self Compensated Sum algorithm
 * accsum_scs : A Self Compensated Sum algorithm
 * accsum_compsum : The compensated sum of a matrix.
 * accsum_dblcompsum : The doubly compensated sum of a matrix.
 * accsum_fasttwosum : The fast2sum sum of a and b.
 * accsum_orderdynamic : Returns the sum with a dynamic re-ordering.
 * accsum_straight : The straightforward sum of a matrix.
 * accsum_twosum : The twosum sum of a and b.
 * accsum_fcompsum : The compensated sum of a matrix.
 * accsum_fdcs : A Doubly Self Compensated Sum algorithm
 * accsum_fscs : A Self Compensated Sum algorithm
 
and support functions:

 * accsum_getpath : Returns the path to the current module.
 * accsum_order : Re-order the matrix.
 * accsum_priestx : A difficult example for SCS by Priest.
 * accsum_shuffle : Randomly shuffles the input.
 * accsum_sumcond : Condition number of the sum function.
 * accsum_wilkinson : A test vector by Wilkinson.
 * accsum_higham : Returns an example designed by Higham.

The accsum_fcompsum, accsum_fdcs and accsum_fscs functions 
are based on compiled source code and are faster than the other.


Bibliography
------------
  * "Stability and numerical accuracy of algorithms", Nicolas Higham
  * "Handbook of Floating Point Computations", Muller et al
  * https://hpcrd.lbl.gov/SCG/ocean/NRS/ECMWF/img14.htm
  * https://hpcrd.lbl.gov/SCG/ocean/NRS/SCSsum.F
  * "On properties of floating point arithmetics: numerical stability and
the cost of accurate computations", Douglas Priest, 1992
  * "Using Accurate Arithmetics to Improve Numerical Reproducibility and
Stability in Parallel Applications". Yun He and Chris H.Q. Ding.  Journal
of Supercomputing,  Vol.18, Issue 3, 259-277, March 2001. Also Proceedings of
International Conference  on Supercomputing (ICS'00), May 2000, 225-234.

            
Files (6)
[118.17 kB]
Source code archive

[123.16 kB]
Linux 32-bit binary for Scilab 5.2.x
Linux 32-bit
Automatically generated by the ATOMS compilation chain

[210.98 kB]
Windows 32-bit binary for Scilab 5.2.x
Windows 32-bit
Automatically generated by the ATOMS compilation chain

[213.63 kB]
Windows 64-bit binary for Scilab 5.2.x
Windows 64-bit
Automatically generated by the ATOMS compilation chain

[124.24 kB]
macOS binary for Scilab 5.2.x
MacOSX version
Automatically generated by the ATOMS compilation chain

[122.38 kB]
Linux 64-bit binary for Scilab 5.2.x
Linux 64-bit
Automatically generated by the ATOMS compilation chain

News (0)
Comments (2)     Leave a comment 
Comment -- June 17, 2011, 09:36:33 AM    
The accsum module is correctly packaged.
Test on Scilab 5.3.2, on Win XP.

-->atomsInstall("accsum")
 ans  =
 
!accsum   0.1-1  allusers  SCI\contrib\accsum\0.1-1   I  !
!                                                        !
!apifun   0.1-1  allusers  SCI\contrib\apifun\0.1-1   A  !
!                                                        !
!assert   1.3-1  allusers  SCI\contrib\assert\1.3-1   A  !
!                                                        !
!helptbx  0.2-1  allusers  SCI\contrib\helptbx\0.2-1  A  !
-->atomsLoad("accsum");

Start Accsum
	Load macros
	Load gateways
	Load help
	Load demos
	Type "help accsum_overview" for quick start.
[...]
-->atomsTest("accsum")
   TMPDIR = C:\Users\baudin\AppData\Local\Temp\SCI_TMP_4412_

   001/017 - [SCI\contrib\accsum\0.1-1] compsum....................passed 
   002/017 - [SCI\contrib\accsum\0.1-1] dblcompsum.................passed 
   003/017 - [SCI\contrib\accsum\0.1-1] dcs........................passed 
   004/017 - [SCI\contrib\accsum\0.1-1] fasttwosum.................passed 
   005/017 - [SCI\contrib\accsum\0.1-1] fcompsum...................passed 
   006/017 - [SCI\contrib\accsum\0.1-1] fdcs.......................passed 
   007/017 - [SCI\contrib\accsum\0.1-1] fscs.......................passed 
   008/017 - [SCI\contrib\accsum\0.1-1] higham.....................passed 
   009/017 - [SCI\contrib\accsum\0.1-1] order......................passed 
   010/017 - [SCI\contrib\accsum\0.1-1] orderdynamic...............passed 
   011/017 - [SCI\contrib\accsum\0.1-1] priestx....................passed 
   012/017 - [SCI\contrib\accsum\0.1-1] scs........................passed 
   013/017 - [SCI\contrib\accsum\0.1-1] shuffle....................passed 
   014/017 - [SCI\contrib\accsum\0.1-1] straight...................passed 
   015/017 - [SCI\contrib\accsum\0.1-1] sumcond....................passed 
   016/017 - [SCI\contrib\accsum\0.1-1] twosum.....................passed 
   017/017 - [SCI\contrib\accsum\0.1-1] wilkinson..................passed 
Comment -- August 11, 2011, 06:15:00 PM    
Hi,

Just to report that there is a packaging error on Linux :

Start Accsum
	Load macros
	Load gateways
atomsLoad: An error occurred while loading 'accsum-0.1-1':
	Undefined variable: win64

The win64() function is not available on my Scilab 5.3.2, but is used in the loader of the

gateway, in the sci_gateway/c/loader.sce script.

Regards,

Michaël Baudin
Leave a comment
You must register and log in before leaving a comment.
Login with GitLab
Email notifications
Send me email when this toolbox has changes, new files or a new release.
You must register and log in before setting up notifications.