Table of Contents
Logarithm function calculates the logarithm of the data, held in a workspace. A user can choose between natural (default) or base 10 logarithm
Name | Direction | Type | Default | Description |
---|---|---|---|---|
InputWorkspace | Input | MatrixWorkspace | Mandatory | The name of the input workspace |
OutputWorkspace | Output | MatrixWorkspace | Mandatory | The name to use for the output workspace (can be the same as the input one). |
Filler | Input | number | 0 | The value that will be placed into the output workspace if an input value is equal or less than 0. Default value is 0 |
Natural | Input | boolean | True | Logical value which specifies if user wands to calculate natural or base 10 logarithm. |
Logarithm function calculates the logarithm of the data, held in a workspace and tries to estimate the errors of this data, by calculating logarithmic transformation of the errors. The errors are assumed to be small and Gaussian so they are calculated on the basis of Tailor decomposition e.g. if and are the signal and errors for the initial signal, the logarithm would provide and accordingly. If the base 10 logarithm is used the errors are calculated as
Some values in a workspace can normally be equal to zero. Logarithm is not calculated for values which are less or equal to 0, but the value of Filler is used instead. The errors for such cells set to zeros
When acting on an event workspace, the output will be a Workspace2D, with the default binning from the original workspace.
Example - logarithm of a histogram workspace:
dataX = list(range(0,10))*10 # define 10 x-spectra
dataY =([1]*10)*10 # with values 1
dataY[0]=-10 # make first value not suitable for logarithm
dataY[1]=10 # make second value different
dataE =([1]*10)*10 # define 10 error spectra with value 1
# create test workspace
ws = CreateWorkspace(dataX, dataY, dataE, NSpec=10)
# Calculate log10
ws = Logarithm(ws,Filler=-1,Natural='0')
#
# check results:
print('Log10 for spectra 0: {}'.format(ws.readY(0)))
print('Log10 for Err spectra 0: {}'.format(ws.readE(0)[0:4]))
Output:
Log10 for spectra 0: [-1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]
Log10 for Err spectra 0: [ 0. 0.0434 0.434 0.434 ]
Categories: Algorithms | Arithmetic
C++ source: Logarithm.cpp (last modified: 2015-10-05)
C++ header: Logarithm.h (last modified: 2016-06-07)