Commit ef5bf37e authored by Franksen, Benjamin's avatar Franksen, Benjamin
Browse files

remove outdated header comment and history from csmbase.c

parent 4af69fad
/* IDCP */
/* The Insertion Device Control Program */
/* Author: Götz Pfeiffer */
/* project information: */
/* project: IDCP */
/* module: CSM-BASE */
/* version-number of module: 1.1 */
/* author: Götz Pfeiffer */
/* last modification date: 2012-10-05 */
/* status: tested */
/* comments */
/* comments for the automatically generated */
/* header-file, this does not concern csm.c but */
/* csmbase.h ! */
/*@EM("/@ This file was automatically generated, all manual changes\n")
@EM(" to this file will be lost, edit csm.c instead of csm.h !@/\n\n") */
/* History */
Version 0.9:
Date: 6/16/97
This is the first implementation csm.
Version 0.91:
Date: 8/22/97
A mechanism to accelerate the search of x-values in the table has been
implemented. Now the interval-borders from the previous search are
tested (and if it makes sense taken as borders for the new search).
This should speed up the process if table_x_lookup_ind is called with
x-values that do not differ too much from each other (in terms of the
table-values). This version has not yet been tested.
Version 0.92:
Date: 10/16/97
The program (csmbase) has been splitted from the original csm and now
contains only generic routines for implementing linear and table-based
conversions. All IDCP specific conversion funtions are now placed
in csm.c. Note that for this file (csmbase.c) version 0.92 is the first
Version 0.93:
Date: 5/5/99
csmbase was extended in order to support 2-dimensional functions (z=f(x,y))
These functions are specified in form of a table :
y1 y2 y3 . . .
x1 z11 z12 z13 . . .
x2 z21 z22 z23 . . .
. . . .
. . . .
. . . .
Version 0.94:
Date: 6/16/99
The functions csm_read_table and csm_read_xytable were changed in order to
work even if some lines of the data-file do not contain data (this is
especially the case with empty lines).
Version 0.95:
Date: 5/26/00
An error in coordinate_lookup_index() was removed. This caused the function
to return wrong parameters when applied with x==2.
Version 0.96:
Date: 10/13/00
Small changes. If a function is not yet defined (type CSM_NOTHING), the
function returns 0.
Date: 2002-03-05
Errors in the header-file generation were fixed, some
left-overs from previous debugging were removed
Date: 2004-04-05
in csm_read_table a superfluous parameter was removed
Date: 2004-07-23
a new function, csm_clear was added. This function releases all
memory an csm_function occupies and sets its value to CSM_NOTHING
Date: 2004-08-31
a new function, csm_free was added. This function releases all
memory and finally releases the memory of the csm_function object
Date: 2006-03-01
bugfix: semDelete was added
Date: 2006-03-01
* usage of psem (portable semaphores) can now be selected
* usage of DBG, errlogPrinf or printf can now be selected
define USE_DBG and USE_ERRLOGPRINTF accordingly
* prepared for Linux (undefine B_VXWORKS for this,
* memory leak error was fixed in csm_read_2d_table
Date: 2006-03-02
cosmetic changes
Date: 2006-03-02
changes in the embedded documentation
Date: 2007-11-14
* bugfix with respect to the on-hold function: The "last" field
of the csm_Function structure has to exist for each type of
function that can be applied to the structure, one for
csm_x(), one for csm_y(), one for csm_z(), for csm_dx() and
csm_dy(). With only one field, it may happen for example,
that when "on_hold" is used, csm_x() returns the last returned
value of csm_y().
* bugfix with respect to multithreading use:
the semaphore used in functions like csm_x(), csm_y() and so
on was given just before a return-statement which did a read-access
on the function structure. This lead to a race condition where
it was possible that one call of csm_x() returned the value of
another call of csm_x() which was called by another task. Together
with "last" field bug mentioned above, csm_x() could even return
the value of the last csm_y() call, which is fatal...
* str_empty_or_comment() now accepts lines where "#" is not
in the first column.
* the inline documentation was updated
Date: 2007-11-14
* the usage of semaphores can no be disabled by a macro.
This was needed for better portability.
Date: 2011-08-16
* The functions lookup_1d_functiontable and lookup_2d_functiontable now
return NAN (not a number) in case the table doesn't contain any values.
* lookup_1d_functiontable now handles the case of a table with a single
point (xp,yp) correctly. It then returns the associated yp for any value of
x. Before this change, it returned NAN for x!=xp and yp for x==xp.
Date: 2012-04-25
* The function coordinate_lookup_index was optimized. When a new value is
looked up in the table it first tries to find it in the last interval, then
in the surrounding intervals below and above the orginal one. Only if the
value is not found there it does a binary search.
* The functions lookup_1d_functiontable and lookup_2d_functiontable were
optimized. They now cache the last value that was looked up in the table.
If they are called with the same value or values again, they return the
cached value which is much faster than to re-run the calculations for the
/* General Comments */
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment