From cf5d7bc596ff1d8840cb416a60554f02f5e68940 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 27 Sep 2023 13:23:00 +0000 Subject: [PATCH] Update documentation --- nightly/.doctrees/environment.pickle | Bin 2801548 -> 2801729 bytes nightly/.doctrees/framework.doctree | Bin 491821 -> 461706 bytes nightly/.doctrees/optimisation.doctree | Bin 1364779 -> 1364894 bytes .../cil/framework/BlockDataContainer.html | 40 ++-- nightly/_modules/cil/framework/framework.html | 32 ++- nightly/framework.html | 218 ++++++++---------- nightly/optimisation.html | 42 ++-- nightly/searchindex.js | 2 +- 8 files changed, 155 insertions(+), 179 deletions(-) diff --git a/nightly/.doctrees/environment.pickle b/nightly/.doctrees/environment.pickle index 69cf2a107f09c5efe2f922280e41b574e92808d1..6323a68daad9dc63173838778abe8c7b2c0b85cb 100644 GIT binary patch delta 28780 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 diff --git a/nightly/.doctrees/framework.doctree b/nightly/.doctrees/framework.doctree index e4385f5b431ade3facfab63f1504c7b613e2934a..dd0122e67f29c80abd592126620015afc6c1764d 100644 GIT binary patch delta 52943 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�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 z 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 W?p%`)DMphRRmLq_um&}D-uGW8j8f(R diff --git a/nightly/.doctrees/optimisation.doctree b/nightly/.doctrees/optimisation.doctree index cd2305142f51227a01c762e86eb71350f120df18..1e74f851d6a950dd81ccee09b587de64d5460f0e 100644 GIT binary patch delta 1208 zcmZ3zEO_4X;D#2)7N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~7QPn#7J(MQEka8f85y=O zV-(^DVoaUBK3M1pg!0&aCqyWK3Br+|?h`I#2xV`d8!p6X#%MNuey@;}n9ZypOt*F%%+DSErmC9x#YIX`du zzoTqyL^xE1ErTsXEbH%d#rs0S)9pN&6@^)Afsw(O!JMI%WmN-YYIuuIZ#>4RzP;s% z5VJ7jw&@+;g`yY}r!V{=qz|M7e+U^f?f?mTPVf66B#a`XGd{BHe z7#SECrW;Nb%9_52QCM|)-B%&W?JpUHi~e&?J$?}=2a=9v6e*kDtjD3W{STvv{zU+s C!;T98 delta 627 zcmbQYJb3l8;D#2)7N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~7QPn#7J(MQEka8f8Kt%_ zV-(^DV$7VrK3M1pg!0&aCqyWK3Br+|?h`I#2xV`d8!p6XHodDs$c0I1w zeL}0armw3L3Y@MtQ;2&ySG|zW_O_WqCX5huzU2^gezS$9LDVsMS4?ND7Yg0pw+yCg zI_Ct;)Bpbv62_^_?A2N#Ma83=p2$TVW?Y>MRffoU?vfZTs diff --git a/nightly/_modules/cil/framework/BlockDataContainer.html b/nightly/_modules/cil/framework/BlockDataContainer.html index 950ee3a36a..e72fb769b8 100644 --- a/nightly/_modules/cil/framework/BlockDataContainer.html +++ b/nightly/_modules/cil/framework/BlockDataContainer.html @@ -227,7 +227,7 @@

Source code for cil.framework.BlockDataContainer

will fail 2) algebra between `BlockDataContainer`s and `list` or `numpy array` will work as long as the number of `rows` and element of the arrays match, - indipendently on the fact that the `BlockDataContainer` could be nested + independently on the fact that the `BlockDataContainer` could be nested 3) algebra between `BlockDataContainer` and one `DataContainer` is possible. It will require all the `DataContainers` in the block to be compatible with the `DataContainer` we want to operate with. @@ -341,7 +341,7 @@

Source code for cil.framework.BlockDataContainer

'''Algebra: subtract method of BlockDataContainer with number/DataContainer or BlockDataContainer :param: other (number, DataContainer or subclasses or BlockDataContainer - :param: out (optional): provides a placehold for the resul. + :param: out (optional): provides a placeholder for the result. ''' out = kwargs.get('out', None) if out is not None: @@ -351,8 +351,8 @@

Source code for cil.framework.BlockDataContainer

[docs] def multiply(self, other, *args, **kwargs): '''Algebra: multiply method of BlockDataContainer with number/DataContainer or BlockDataContainer - :param: other (number, DataContainer or subclasses or BlockDataContainer - :param: out (optional): provides a placehold for the resul. + :param: other (number, DataContainer or subclasses or BlockDataContainer) + :param: out (optional): provides a placeholder for the result. ''' out = kwargs.get('out', None) if out is not None: @@ -362,8 +362,8 @@

Source code for cil.framework.BlockDataContainer

[docs] def divide(self, other, *args, **kwargs): '''Algebra: divide method of BlockDataContainer with number/DataContainer or BlockDataContainer - :param: other (number, DataContainer or subclasses or BlockDataContainer - :param: out (optional): provides a placehold for the resul. + :param: other (number, DataContainer or subclasses or BlockDataContainer) + :param: out (optional): provides a placeholder for the result. ''' out = kwargs.get('out', None) if out is not None: @@ -374,7 +374,7 @@

Source code for cil.framework.BlockDataContainer

'''Algebra: power method of BlockDataContainer with number/DataContainer or BlockDataContainer :param: other (number, DataContainer or subclasses or BlockDataContainer - :param: out (optional): provides a placehold for the resul. + :param: out (optional): provides a placeholder for the result. ''' out = kwargs.get('out', None) if out is not None: @@ -384,8 +384,8 @@

Source code for cil.framework.BlockDataContainer

[docs] def maximum(self, other, *args, **kwargs): '''Algebra: power method of BlockDataContainer with number/DataContainer or BlockDataContainer - :param: other (number, DataContainer or subclasses or BlockDataContainer - :param: out (optional): provides a placehold for the resul. + :param: other (number, DataContainer or subclasses or BlockDataContainer) + :param: out (optional): provides a placeholder for the result. ''' out = kwargs.get('out', None) if out is not None: @@ -395,8 +395,8 @@

Source code for cil.framework.BlockDataContainer

[docs] def minimum(self, other, *args, **kwargs): '''Algebra: power method of BlockDataContainer with number/DataContainer or BlockDataContainer - :param: other (number, DataContainer or subclasses or BlockDataContainer - :param: out (optional): provides a placehold for the resul. + :param: other (number, DataContainer or subclasses or BlockDataContainer) + :param: out (optional): provides a placeholder for the result. ''' out = kwargs.get('out', None) if out is not None: @@ -418,14 +418,14 @@

Source code for cil.framework.BlockDataContainer

Example: -------- - a = 2 - b = 3 - ig = ImageGeometry(10,11) - x = ig.allocate(1) - y = ig.allocate(2) - bdc1 = BlockDataContainer(2*x, y) - bdc2 = BlockDataContainer(x, 2*y) - out = bdc1.sapyb(a,bdc2,b) + >>> a = 2 + >>> b = 3 + >>> ig = ImageGeometry(10,11) + >>> x = ig.allocate(1) + >>> y = ig.allocate(2) + >>> bdc1 = BlockDataContainer(2*x, y) + >>> bdc2 = BlockDataContainer(x, 2*y) + >>> out = bdc1.sapyb(a,bdc2,b) ''' if out is None: raise ValueError("out container cannot be None") @@ -443,7 +443,7 @@

Source code for cil.framework.BlockDataContainer

'''Algebra: generic method of algebric operation with BlockDataContainer with number/DataContainer or BlockDataContainer Provides commutativity with DataContainer and subclasses, i.e. this - class's reverse algebric methods take precedence w.r.t. direct algebric + class's reverse algebraic methods take precedence w.r.t. direct algebraic methods of DataContainer and subclasses. This method is not to be used directly diff --git a/nightly/_modules/cil/framework/framework.html b/nightly/_modules/cil/framework/framework.html index 322cff3853..974c0944b7 100644 --- a/nightly/_modules/cil/framework/framework.html +++ b/nightly/_modules/cil/framework/framework.html @@ -3145,12 +3145,12 @@

Source code for cil.framework.framework

 
[docs] def get_data_axes_order(self,new_order=None): '''returns the axes label of self as a list - if new_order is None returns the labels of the axes as a sorted-by-key list - if new_order is a list of length number_of_dimensions, returns a list + If new_order is None returns the labels of the axes as a sorted-by-key list. + If new_order is a list of length number_of_dimensions, returns a list with the indices of the axes in new_order with respect to those in self.dimension_labels: i.e. - self.dimension_labels = {0:'horizontal',1:'vertical'} - new_order = ['vertical','horizontal'] + >>> self.dimension_labels = {0:'horizontal',1:'vertical'} + >>> new_order = ['vertical','horizontal'] returns [1,0] ''' if new_order is None: @@ -3278,19 +3278,18 @@

Source code for cil.framework.framework

         out : return DataContainer, if None a new DataContainer is returned, default None. 
             out can be self or y.
         num_threads : number of threads to use during the calculation, using the CIL C library
+            It will try to use the CIL C library and default to numpy operations, in case the C library does not handle the types.
         
-        It will try to use the CIL C library and default to numpy operations, in case the C library does
-        not handle the types.
         
-        Example:
+        Example
         -------
 
-        a = 2
-        b = 3
-        ig = ImageGeometry(10,11)
-        x = ig.allocate(1)
-        y = ig.allocate(2)
-        out = x.sapyb(a,y,b)
+        >>> a = 2
+        >>> b = 3
+        >>> ig = ImageGeometry(10,11)
+        >>> x = ig.allocate(1)
+        >>> y = ig.allocate(2)
+        >>> out = x.sapyb(a,y,b)
         '''
         ret_out = False
         
@@ -3481,11 +3480,8 @@ 

Source code for cil.framework.framework

         return numpy.sqrt(self.squared_norm(**kwargs))
[docs] def dot(self, other, *args, **kwargs): - '''return the inner product of 2 DataContainers viewed as vectors - - applies to real and complex data. In such case the dot method returns - - a.dot(b.conjugate()) + '''returns the inner product of 2 DataContainers viewed as vectors. Suitable for real and complex data. + For complex data, the dot method returns a.dot(b.conjugate()) ''' method = kwargs.get('method', 'numpy') if method not in ['numpy','reduce']: diff --git a/nightly/framework.html b/nightly/framework.html index 15d47ac4c4..94da071082 100644 --- a/nightly/framework.html +++ b/nightly/framework.html @@ -762,15 +762,15 @@

DataContainer get_data_axes_order(new_order=None)[source]#

returns the axes label of self as a list

-

if new_order is None returns the labels of the axes as a sorted-by-key list -if new_order is a list of length number_of_dimensions, returns a list +

If new_order is None returns the labels of the axes as a sorted-by-key list. +If new_order is a list of length number_of_dimensions, returns a list with the indices of the axes in new_order with respect to those in self.dimension_labels: i.e.

-
-

self.dimension_labels = {0:’horizontal’,1:’vertical’} -new_order = [‘vertical’,’horizontal’] -returns [1,0]

-
+
>>> self.dimension_labels = {0:'horizontal',1:'vertical'}
+>>> new_order = ['vertical','horizontal']
+returns [1,0]
+
+
@@ -796,24 +796,19 @@

DataContainerDataContainer) –

  • b (multiplier for y, can be a number or a numpy array or a DataContainer) –

  • out (return DataContainer, if None a new DataContainer is returned, default None.) – out can be self or y.

  • -
  • num_threads (number of threads to use during the calculation, using the CIL C library) –

  • -
  • will try to use the CIL C library and default to numpy operations (It) –

  • -
  • case the C library does (in) –

  • -
  • handle the types. (not) –

  • -
  • Example –

  • -
  • ------- –

  • -
  • = 2 (a) –

  • -
  • = 3 (b) –

  • -
  • = ImageGeometry(10 (ig) –

  • -
  • 11) –

  • -
  • = ig.allocate(1) (x) –

  • -
  • = ig.allocate(2) (y) –

  • -
  • = x.sapyb(a (out) –

  • -
  • y –

  • -
  • b) –

  • +
  • num_threads (number of threads to use during the calculation, using the CIL C library) – It will try to use the CIL C library and default to numpy operations, in case the C library does not handle the types.

  • +

    Example

    +
    >>> a = 2
    +>>> b = 3
    +>>> ig = ImageGeometry(10,11)
    +>>> x = ig.allocate(1)
    +>>> y = ig.allocate(2)
    +>>> out = x.sapyb(a,y,b)
    +
    +
    @@ -843,9 +838,8 @@

    DataContainer
    dot(other, *args, **kwargs)[source]#
    -

    return the inner product of 2 DataContainers viewed as vectors

    -

    applies to real and complex data. In such case the dot method returns

    -

    a.dot(b.conjugate())

    +

    returns the inner product of 2 DataContainers viewed as vectors. Suitable for real and complex data. +For complex data, the dot method returns a.dot(b.conjugate())

    @@ -902,9 +896,8 @@

    AcquisitionData
    dot(other, *args, **kwargs)#
    -

    return the inner product of 2 DataContainers viewed as vectors

    -

    applies to real and complex data. In such case the dot method returns

    -

    a.dot(b.conjugate())

    +

    returns the inner product of 2 DataContainers viewed as vectors. Suitable for real and complex data. +For complex data, the dot method returns a.dot(b.conjugate())

    @@ -944,15 +937,15 @@

    AcquisitionData get_data_axes_order(new_order=None)#

    returns the axes label of self as a list

    -

    if new_order is None returns the labels of the axes as a sorted-by-key list -if new_order is a list of length number_of_dimensions, returns a list +

    If new_order is None returns the labels of the axes as a sorted-by-key list. +If new_order is a list of length number_of_dimensions, returns a list with the indices of the axes in new_order with respect to those in self.dimension_labels: i.e.

    -
    -

    self.dimension_labels = {0:’horizontal’,1:’vertical’} -new_order = [‘vertical’,’horizontal’] -returns [1,0]

    -
    +
    >>> self.dimension_labels = {0:'horizontal',1:'vertical'}
    +>>> new_order = ['vertical','horizontal']
    +returns [1,0]
    +
    +

    @@ -1054,24 +1047,19 @@

    AcquisitionDataDataContainer) –

  • b (multiplier for y, can be a number or a numpy array or a DataContainer) –

  • out (return DataContainer, if None a new DataContainer is returned, default None.) – out can be self or y.

  • -
  • num_threads (number of threads to use during the calculation, using the CIL C library) –

  • -
  • will try to use the CIL C library and default to numpy operations (It) –

  • -
  • case the C library does (in) –

  • -
  • handle the types. (not) –

  • -
  • Example –

  • -
  • ------- –

  • -
  • = 2 (a) –

  • -
  • = 3 (b) –

  • -
  • = ImageGeometry(10 (ig) –

  • -
  • 11) –

  • -
  • = ig.allocate(1) (x) –

  • -
  • = ig.allocate(2) (y) –

  • -
  • = x.sapyb(a (out) –

  • -
  • y –

  • -
  • b) –

  • +
  • num_threads (number of threads to use during the calculation, using the CIL C library) – It will try to use the CIL C library and default to numpy operations, in case the C library does not handle the types.

  • +

    Example

    +
    >>> a = 2
    +>>> b = 3
    +>>> ig = ImageGeometry(10,11)
    +>>> x = ig.allocate(1)
    +>>> y = ig.allocate(2)
    +>>> out = x.sapyb(a,y,b)
    +
    +
    @@ -1149,9 +1137,8 @@

    ImageData
    dot(other, *args, **kwargs)#
    -

    return the inner product of 2 DataContainers viewed as vectors

    -

    applies to real and complex data. In such case the dot method returns

    -

    a.dot(b.conjugate())

    +

    returns the inner product of 2 DataContainers viewed as vectors. Suitable for real and complex data. +For complex data, the dot method returns a.dot(b.conjugate())

    @@ -1191,15 +1178,15 @@

    ImageData get_data_axes_order(new_order=None)#

    returns the axes label of self as a list

    -

    if new_order is None returns the labels of the axes as a sorted-by-key list -if new_order is a list of length number_of_dimensions, returns a list +

    If new_order is None returns the labels of the axes as a sorted-by-key list. +If new_order is a list of length number_of_dimensions, returns a list with the indices of the axes in new_order with respect to those in self.dimension_labels: i.e.

    -
    -

    self.dimension_labels = {0:’horizontal’,1:’vertical’} -new_order = [‘vertical’,’horizontal’] -returns [1,0]

    -
    +
    >>> self.dimension_labels = {0:'horizontal',1:'vertical'}
    +>>> new_order = ['vertical','horizontal']
    +returns [1,0]
    +
    +

    @@ -1266,24 +1253,19 @@

    ImageDataDataContainer) –

  • b (multiplier for y, can be a number or a numpy array or a DataContainer) –

  • out (return DataContainer, if None a new DataContainer is returned, default None.) – out can be self or y.

  • -
  • num_threads (number of threads to use during the calculation, using the CIL C library) –

  • -
  • will try to use the CIL C library and default to numpy operations (It) –

  • -
  • case the C library does (in) –

  • -
  • handle the types. (not) –

  • -
  • Example –

  • -
  • ------- –

  • -
  • = 2 (a) –

  • -
  • = 3 (b) –

  • -
  • = ImageGeometry(10 (ig) –

  • -
  • 11) –

  • -
  • = ig.allocate(1) (x) –

  • -
  • = ig.allocate(2) (y) –

  • -
  • = x.sapyb(a (out) –

  • -
  • y –

  • -
  • b) –

  • +
  • num_threads (number of threads to use during the calculation, using the CIL C library) – It will try to use the CIL C library and default to numpy operations, in case the C library does not handle the types.

  • +

    Example

    +
    >>> a = 2
    +>>> b = 3
    +>>> ig = ImageGeometry(10,11)
    +>>> x = ig.allocate(1)
    +>>> y = ig.allocate(2)
    +>>> out = x.sapyb(a,y,b)
    +
    +
    @@ -1334,9 +1316,8 @@

    VectorData
    dot(other, *args, **kwargs)#
    -

    return the inner product of 2 DataContainers viewed as vectors

    -

    applies to real and complex data. In such case the dot method returns

    -

    a.dot(b.conjugate())

    +

    returns the inner product of 2 DataContainers viewed as vectors. Suitable for real and complex data. +For complex data, the dot method returns a.dot(b.conjugate())

    @@ -1376,15 +1357,15 @@

    VectorData get_data_axes_order(new_order=None)#

    returns the axes label of self as a list

    -

    if new_order is None returns the labels of the axes as a sorted-by-key list -if new_order is a list of length number_of_dimensions, returns a list +

    If new_order is None returns the labels of the axes as a sorted-by-key list. +If new_order is a list of length number_of_dimensions, returns a list with the indices of the axes in new_order with respect to those in self.dimension_labels: i.e.

    -
    -

    self.dimension_labels = {0:’horizontal’,1:’vertical’} -new_order = [‘vertical’,’horizontal’] -returns [1,0]

    -
    +
    >>> self.dimension_labels = {0:'horizontal',1:'vertical'}
    +>>> new_order = ['vertical','horizontal']
    +returns [1,0]
    +
    +

    @@ -1457,24 +1438,19 @@

    VectorDataDataContainer) –

  • b (multiplier for y, can be a number or a numpy array or a DataContainer) –

  • out (return DataContainer, if None a new DataContainer is returned, default None.) – out can be self or y.

  • -
  • num_threads (number of threads to use during the calculation, using the CIL C library) –

  • -
  • will try to use the CIL C library and default to numpy operations (It) –

  • -
  • case the C library does (in) –

  • -
  • handle the types. (not) –

  • -
  • Example –

  • -
  • ------- –

  • -
  • = 2 (a) –

  • -
  • = 3 (b) –

  • -
  • = ImageGeometry(10 (ig) –

  • -
  • 11) –

  • -
  • = ig.allocate(1) (x) –

  • -
  • = ig.allocate(2) (y) –

  • -
  • = x.sapyb(a (out) –

  • -
  • y –

  • -
  • b) –

  • +
  • num_threads (number of threads to use during the calculation, using the CIL C library) – It will try to use the CIL C library and default to numpy operations, in case the C library does not handle the types.

  • +

    Example

    +
    >>> a = 2
    +>>> b = 3
    +>>> ig = ImageGeometry(10,11)
    +>>> x = ig.allocate(1)
    +>>> y = ig.allocate(2)
    +>>> out = x.sapyb(a,y,b)
    +
    +
    @@ -1518,7 +1494,7 @@

    BlockDataContainer

    other (number, DataContainer or subclasses or BlockDataContainer

    Param
    -

    out (optional): provides a placehold for the resul.

    +

    out (optional): provides a placeholder for the result.

    @@ -1573,10 +1549,10 @@

    BlockDataContainer
    Param
    -

    other (number, DataContainer or subclasses or BlockDataContainer

    +

    other (number, DataContainer or subclasses or BlockDataContainer)

    Param
    -

    out (optional): provides a placehold for the resul.

    +

    out (optional): provides a placeholder for the result.

    @@ -1587,10 +1563,10 @@

    BlockDataContainer
    Param
    -

    other (number, DataContainer or subclasses or BlockDataContainer

    +

    other (number, DataContainer or subclasses or BlockDataContainer)

    Param
    -

    out (optional): provides a placehold for the resul.

    +

    out (optional): provides a placeholder for the result.

    @@ -1604,7 +1580,7 @@

    BlockDataContainer

    other (number, DataContainer or subclasses or BlockDataContainer

    Param
    -

    out (optional): provides a placehold for the resul.

    +

    out (optional): provides a placeholder for the result.

    @@ -1615,10 +1591,10 @@

    BlockDataContainer
    Param
    -

    other (number, DataContainer or subclasses or BlockDataContainer

    +

    other (number, DataContainer or subclasses or BlockDataContainer)

    Param
    -

    out (optional): provides a placehold for the resul.

    +

    out (optional): provides a placeholder for the result.

    @@ -1629,10 +1605,10 @@

    BlockDataContainer
    Param
    -

    other (number, DataContainer or subclasses or BlockDataContainer

    +

    other (number, DataContainer or subclasses or BlockDataContainer)

    Param
    -

    out (optional): provides a placehold for the resul.

    +

    out (optional): provides a placeholder for the result.

    @@ -1652,14 +1628,16 @@

    BlockDataContainer
    >>> a = 2
    +>>> b = 3
    +>>> ig = ImageGeometry(10,11)
    +>>> x = ig.allocate(1)
    +>>> y = ig.allocate(2)
    +>>> bdc1 = BlockDataContainer(2*x, y)
    +>>> bdc2 = BlockDataContainer(x, 2*y)
    +>>> out = bdc1.sapyb(a,bdc2,b)
    +
    +

    @@ -1673,7 +1651,7 @@

    BlockDataContainerbinary_operations(operation, other, *args, **kwargs)[source]#

    Algebra: generic method of algebric operation with BlockDataContainer with number/DataContainer or BlockDataContainer

    Provides commutativity with DataContainer and subclasses, i.e. this -class’s reverse algebric methods take precedence w.r.t. direct algebric +class’s reverse algebraic methods take precedence w.r.t. direct algebraic methods of DataContainer and subclasses.

    This method is not to be used directly

    diff --git a/nightly/optimisation.html b/nightly/optimisation.html index fef3d64240..de38955d19 100644 --- a/nightly/optimisation.html +++ b/nightly/optimisation.html @@ -4625,7 +4625,7 @@

    BlockDataContainer

    other (number, DataContainer or subclasses or BlockDataContainer

    Param
    -

    out (optional): provides a placehold for the resul.

    +

    out (optional): provides a placeholder for the result.

    @@ -4686,10 +4686,10 @@

    BlockDataContainer
    Param
    -

    other (number, DataContainer or subclasses or BlockDataContainer

    +

    other (number, DataContainer or subclasses or BlockDataContainer)

    Param
    -

    out (optional): provides a placehold for the resul.

    +

    out (optional): provides a placeholder for the result.

    @@ -4700,10 +4700,10 @@

    BlockDataContainer
    Param
    -

    other (number, DataContainer or subclasses or BlockDataContainer

    +

    other (number, DataContainer or subclasses or BlockDataContainer)

    Param
    -

    out (optional): provides a placehold for the resul.

    +

    out (optional): provides a placeholder for the result.

    @@ -4717,7 +4717,7 @@

    BlockDataContainer

    other (number, DataContainer or subclasses or BlockDataContainer

    Param
    -

    out (optional): provides a placehold for the resul.

    +

    out (optional): provides a placeholder for the result.

    @@ -4728,10 +4728,10 @@

    BlockDataContainer
    Param
    -

    other (number, DataContainer or subclasses or BlockDataContainer

    +

    other (number, DataContainer or subclasses or BlockDataContainer)

    Param
    -

    out (optional): provides a placehold for the resul.

    +

    out (optional): provides a placeholder for the result.

    @@ -4742,10 +4742,10 @@

    BlockDataContainer
    Param
    -

    other (number, DataContainer or subclasses or BlockDataContainer

    +

    other (number, DataContainer or subclasses or BlockDataContainer)

    Param
    -

    out (optional): provides a placehold for the resul.

    +

    out (optional): provides a placeholder for the result.

    @@ -4765,14 +4765,16 @@

    BlockDataContainer
    >>> a = 2
    +>>> b = 3
    +>>> ig = ImageGeometry(10,11)
    +>>> x = ig.allocate(1)
    +>>> y = ig.allocate(2)
    +>>> bdc1 = BlockDataContainer(2*x, y)
    +>>> bdc2 = BlockDataContainer(x, 2*y)
    +>>> out = bdc1.sapyb(a,bdc2,b)
    +
    +

    @@ -4786,7 +4788,7 @@

    BlockDataContainerbinary_operations(operation, other, *args, **kwargs)[source]#

    Algebra: generic method of algebric operation with BlockDataContainer with number/DataContainer or BlockDataContainer

    Provides commutativity with DataContainer and subclasses, i.e. this -class’s reverse algebric methods take precedence w.r.t. direct algebric +class’s reverse algebraic methods take precedence w.r.t. direct algebraic methods of DataContainer and subclasses.

    This method is not to be used directly

    diff --git a/nightly/searchindex.js b/nightly/searchindex.js index 9a89af79fb..ddf806a3b6 100644 --- a/nightly/searchindex.js +++ b/nightly/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["developer_guide","framework","index","introduction","io","optimisation","plugins","processors","recon","utilities"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,"sphinxcontrib.bibtex":9,sphinx:56},filenames:["developer_guide.rst","framework.rst","index.rst","introduction.rst","io.rst","optimisation.rst","plugins.rst","processors.rst","recon.rst","utilities.rst"],objects:{"cil.framework":{AcquisitionData:[1,0,1,""],AcquisitionGeometry:[1,0,1,""],BlockDataContainer:[5,0,1,""],BlockGeometry:[1,0,1,""],DataContainer:[1,0,1,""],DataOrder:[1,0,1,""],DataProcessor:[1,0,1,""],ImageData:[1,0,1,""],ImageGeometry:[1,0,1,""],Processor:[1,0,1,""],VectorData:[1,0,1,""]},"cil.framework.AcquisitionData":{as_array:[1,1,1,""],clone:[1,1,1,""],copy:[1,1,1,""],dot:[1,1,1,""],dtype:[1,1,1,""],exp:[1,1,1,""],fill:[1,1,1,""],get_data_axes_order:[1,1,1,""],get_slice:[1,1,1,""],log:[1,1,1,""],max:[1,1,1,""],mean:[1,1,1,""],min:[1,1,1,""],ndim:[1,1,1,""],norm:[1,1,1,""],number_of_dimensions:[1,1,1,""],partition:[1,1,1,""],reorder:[1,1,1,""],sapyb:[1,1,1,""],shape:[1,1,1,""],size:[1,1,1,""],squared_norm:[1,1,1,""]},"cil.framework.AcquisitionGeometry":{allocate:[1,1,1,""],create_Cone2D:[1,1,1,""],create_Cone3D:[1,1,1,""],create_Parallel2D:[1,1,1,""],create_Parallel3D:[1,1,1,""],get_ImageGeometry:[1,1,1,""],get_slice:[1,1,1,""],set_angles:[1,1,1,""],set_channels:[1,1,1,""],set_labels:[1,1,1,""],set_panel:[1,1,1,""]},"cil.framework.BlockDataContainer":{__iadd__:[5,1,1,""],__idiv__:[5,1,1,""],__imul__:[5,1,1,""],__isub__:[5,1,1,""],__iter__:[5,1,1,""],__itruediv__:[5,1,1,""],__neg__:[5,1,1,""],__radd__:[5,1,1,""],__rdiv__:[5,1,1,""],__rmul__:[5,1,1,""],__rpow__:[5,1,1,""],__rsub__:[5,1,1,""],__rtruediv__:[5,1,1,""],__weakref__:[5,2,1,""],add:[5,1,1,""],axpby:[5,1,1,""],binary_operations:[5,1,1,""],copy:[5,1,1,""],divide:[5,1,1,""],is_compatible:[5,1,1,""],maximum:[5,1,1,""],minimum:[5,1,1,""],multiply:[5,1,1,""],next:[5,1,1,""],power:[5,1,1,""],sapyb:[5,1,1,""],subtract:[5,1,1,""],unary_operations:[5,1,1,""]},"cil.framework.BlockGeometry":{allocate:[1,1,1,""],get_item:[1,1,1,""]},"cil.framework.DataContainer":{as_array:[1,1,1,""],clone:[1,1,1,""],copy:[1,1,1,""],dot:[1,1,1,""],dtype:[1,1,1,""],exp:[1,1,1,""],fill:[1,1,1,""],get_data_axes_order:[1,1,1,""],get_slice:[1,1,1,""],log:[1,1,1,""],max:[1,1,1,""],mean:[1,1,1,""],min:[1,1,1,""],ndim:[1,1,1,""],norm:[1,1,1,""],number_of_dimensions:[1,1,1,""],reorder:[1,1,1,""],sapyb:[1,1,1,""],shape:[1,1,1,""],size:[1,1,1,""],squared_norm:[1,1,1,""]},"cil.framework.DataProcessor":{check_input:[1,1,1,""],get_input:[1,1,1,""],get_output:[1,1,1,""],set_input:[1,1,1,""]},"cil.framework.ImageData":{apply_circular_mask:[1,1,1,""],as_array:[1,1,1,""],clone:[1,1,1,""],copy:[1,1,1,""],dot:[1,1,1,""],dtype:[1,1,1,""],exp:[1,1,1,""],fill:[1,1,1,""],get_data_axes_order:[1,1,1,""],get_slice:[1,1,1,""],log:[1,1,1,""],max:[1,1,1,""],mean:[1,1,1,""],min:[1,1,1,""],ndim:[1,1,1,""],norm:[1,1,1,""],number_of_dimensions:[1,1,1,""],reorder:[1,1,1,""],sapyb:[1,1,1,""],shape:[1,1,1,""],size:[1,1,1,""],squared_norm:[1,1,1,""]},"cil.framework.ImageGeometry":{allocate:[1,1,1,""],clone:[1,1,1,""],copy:[1,1,1,""],get_slice:[1,1,1,""]},"cil.framework.Processor":{check_input:[1,1,1,""],get_input:[1,1,1,""],get_output:[1,1,1,""],set_input:[1,1,1,""]},"cil.framework.VectorData":{as_array:[1,1,1,""],clone:[1,1,1,""],copy:[1,1,1,""],dot:[1,1,1,""],dtype:[1,1,1,""],exp:[1,1,1,""],fill:[1,1,1,""],get_data_axes_order:[1,1,1,""],get_slice:[1,1,1,""],log:[1,1,1,""],max:[1,1,1,""],mean:[1,1,1,""],min:[1,1,1,""],ndim:[1,1,1,""],norm:[1,1,1,""],number_of_dimensions:[1,1,1,""],reorder:[1,1,1,""],sapyb:[1,1,1,""],shape:[1,1,1,""],size:[1,1,1,""],squared_norm:[1,1,1,""]},"cil.io":{NEXUSDataReader:[4,0,1,""],NEXUSDataWriter:[4,0,1,""],NikonDataReader:[4,0,1,""],RAWFileWriter:[4,0,1,""],TIFFStackReader:[4,0,1,""],TIFFWriter:[4,0,1,""],ZEISSDataReader:[4,0,1,""]},"cil.io.NEXUSDataReader":{get_data_offset:[4,1,1,""],get_data_scale:[4,1,1,""],get_geometry:[4,1,1,""],load_data:[4,1,1,""],read:[4,1,1,""],read_as_original:[4,1,1,""],set_up:[4,1,1,""]},"cil.io.NEXUSDataWriter":{set_up:[4,1,1,""],write:[4,1,1,""]},"cil.io.NikonDataReader":{get_geometry:[4,1,1,""],get_roi:[4,1,1,""],load_projections:[4,1,1,""],read:[4,1,1,""]},"cil.io.RAWFileWriter":{write:[4,1,1,""]},"cil.io.TIFFStackReader":{read:[4,1,1,""],read_as_AcquisitionData:[4,1,1,""],read_as_ImageData:[4,1,1,""],read_rescaled:[4,1,1,""],read_scale_offset:[4,1,1,""]},"cil.io.TIFFWriter":{write:[4,1,1,""]},"cil.io.ZEISSDataReader":{get_geometry:[4,1,1,""],get_metadata:[4,1,1,""],read:[4,1,1,""],set_up:[4,1,1,""],slice_metadata:[4,1,1,""]},"cil.io.utilities":{HDF5_utilities:[4,0,1,""]},"cil.io.utilities.HDF5_utilities":{get_dataset_metadata:[4,1,1,""],print_metadata:[4,1,1,""],read:[4,1,1,""],read_to:[4,1,1,""]},"cil.optimisation.algorithms":{Algorithm:[5,0,1,""],CGLS:[5,0,1,""],FISTA:[5,0,1,""],GD:[5,0,1,""],ISTA:[5,0,1,""],LADMM:[5,0,1,""],PDHG:[5,0,1,""],SIRT:[5,0,1,""],SPDHG:[5,0,1,""]},"cil.optimisation.algorithms.Algorithm":{__init__:[5,1,1,""],__iter__:[5,1,1,""],__next__:[5,1,1,""],__set_up_logger:[5,1,1,""],__weakref__:[5,2,1,""],_update_previous_solution:[5,1,1,""],get_last_loss:[5,1,1,""],get_last_objective:[5,1,1,""],get_output:[5,1,1,""],is_provably_convergent:[5,1,1,""],iterations:[5,1,1,""],loss:[5,1,1,""],max_iteration:[5,1,1,""],max_iteration_stop_criterion:[5,1,1,""],next:[5,1,1,""],objective:[5,1,1,""],run:[5,1,1,""],set_up:[5,1,1,""],should_stop:[5,1,1,""],update:[5,1,1,""],update_objective:[5,1,1,""],verbose_output:[5,1,1,""]},"cil.optimisation.algorithms.CGLS":{flag:[5,1,1,""],get_last_loss:[5,1,1,""],get_last_objective:[5,1,1,""],get_output:[5,1,1,""],is_provably_convergent:[5,1,1,""],iterations:[5,1,1,""],loss:[5,1,1,""],max_iteration:[5,1,1,""],max_iteration_stop_criterion:[5,1,1,""],next:[5,1,1,""],objective:[5,1,1,""],run:[5,1,1,""],set_up:[5,1,1,""],should_stop:[5,1,1,""],update:[5,1,1,""],update_objective:[5,1,1,""],verbose_output:[5,1,1,""]},"cil.optimisation.algorithms.FISTA":{__delattr__:[5,1,1,""],__dir__:[5,1,1,""],__eq__:[5,1,1,""],__format__:[5,1,1,""],__ge__:[5,1,1,""],__getattribute__:[5,1,1,""],__gt__:[5,1,1,""],__hash__:[5,1,1,""],__init__:[5,1,1,""],__init_subclass__:[5,1,1,""],__iter__:[5,1,1,""],__le__:[5,1,1,""],__lt__:[5,1,1,""],__ne__:[5,1,1,""],__new__:[5,1,1,""],__next__:[5,1,1,""],__reduce__:[5,1,1,""],__reduce_ex__:[5,1,1,""],__repr__:[5,1,1,""],__setattr__:[5,1,1,""],__sizeof__:[5,1,1,""],__str__:[5,1,1,""],__subclasshook__:[5,1,1,""],__weakref__:[5,2,1,""],get_last_loss:[5,1,1,""],get_last_objective:[5,1,1,""],get_output:[5,1,1,""],is_provably_convergent:[5,1,1,""],iterations:[5,1,1,""],loss:[5,1,1,""],max_iteration:[5,1,1,""],max_iteration_stop_criterion:[5,1,1,""],next:[5,1,1,""],objective:[5,1,1,""],run:[5,1,1,""],set_step_size:[5,1,1,""],set_up:[5,1,1,""],should_stop:[5,1,1,""],update:[5,1,1,""],update_objective:[5,1,1,""],verbose_output:[5,1,1,""]},"cil.optimisation.algorithms.GD":{armijo_rule:[5,1,1,""],get_last_loss:[5,1,1,""],get_last_objective:[5,1,1,""],get_output:[5,1,1,""],is_provably_convergent:[5,1,1,""],iterations:[5,1,1,""],loss:[5,1,1,""],max_iteration:[5,1,1,""],max_iteration_stop_criterion:[5,1,1,""],next:[5,1,1,""],objective:[5,1,1,""],run:[5,1,1,""],set_up:[5,1,1,""],should_stop:[5,1,1,""],update:[5,1,1,""],update_objective:[5,1,1,""],verbose_output:[5,1,1,""]},"cil.optimisation.algorithms.ISTA":{__delattr__:[5,1,1,""],__dir__:[5,1,1,""],__eq__:[5,1,1,""],__format__:[5,1,1,""],__ge__:[5,1,1,""],__getattribute__:[5,1,1,""],__gt__:[5,1,1,""],__hash__:[5,1,1,""],__init__:[5,1,1,""],__init_subclass__:[5,1,1,""],__iter__:[5,1,1,""],__le__:[5,1,1,""],__lt__:[5,1,1,""],__ne__:[5,1,1,""],__new__:[5,1,1,""],__next__:[5,1,1,""],__reduce__:[5,1,1,""],__reduce_ex__:[5,1,1,""],__repr__:[5,1,1,""],__setattr__:[5,1,1,""],__sizeof__:[5,1,1,""],__str__:[5,1,1,""],__subclasshook__:[5,1,1,""],__weakref__:[5,2,1,""],get_last_loss:[5,1,1,""],get_last_objective:[5,1,1,""],get_output:[5,1,1,""],is_provably_convergent:[5,1,1,""],iterations:[5,1,1,""],loss:[5,1,1,""],max_iteration:[5,1,1,""],max_iteration_stop_criterion:[5,1,1,""],next:[5,1,1,""],objective:[5,1,1,""],run:[5,1,1,""],set_step_size:[5,1,1,""],set_up:[5,1,1,""],should_stop:[5,1,1,""],update:[5,1,1,""],update_objective:[5,1,1,""],verbose_output:[5,1,1,""]},"cil.optimisation.algorithms.LADMM":{get_last_loss:[5,1,1,""],get_last_objective:[5,1,1,""],get_output:[5,1,1,""],is_provably_convergent:[5,1,1,""],iterations:[5,1,1,""],loss:[5,1,1,""],max_iteration:[5,1,1,""],max_iteration_stop_criterion:[5,1,1,""],next:[5,1,1,""],objective:[5,1,1,""],run:[5,1,1,""],set_up:[5,1,1,""],should_stop:[5,1,1,""],update:[5,1,1,""],update_objective:[5,1,1,""],verbose_output:[5,1,1,""]},"cil.optimisation.algorithms.PDHG":{check_convergence:[5,1,1,""],get_last_loss:[5,1,1,""],get_last_objective:[5,1,1,""],get_output:[5,1,1,""],is_provably_convergent:[5,1,1,""],iterations:[5,1,1,""],loss:[5,1,1,""],max_iteration:[5,1,1,""],max_iteration_stop_criterion:[5,1,1,""],next:[5,1,1,""],objective:[5,1,1,""],run:[5,1,1,""],set_gamma_fconj:[5,1,1,""],set_gamma_g:[5,1,1,""],set_step_sizes:[5,1,1,""],set_up:[5,1,1,""],should_stop:[5,1,1,""],update:[5,1,1,""],update_objective:[5,1,1,""],update_step_sizes:[5,1,1,""],verbose_output:[5,1,1,""]},"cil.optimisation.algorithms.SIRT":{get_last_loss:[5,1,1,""],get_last_objective:[5,1,1,""],get_output:[5,1,1,""],is_provably_convergent:[5,1,1,""],iterations:[5,1,1,""],loss:[5,1,1,""],max_iteration:[5,1,1,""],max_iteration_stop_criterion:[5,1,1,""],next:[5,1,1,""],objective:[5,1,1,""],run:[5,1,1,""],set_relaxation_parameter:[5,1,1,""],set_up:[5,1,1,""],should_stop:[5,1,1,""],update:[5,1,1,""],update_objective:[5,1,1,""],verbose_output:[5,1,1,""]},"cil.optimisation.algorithms.SPDHG":{get_last_loss:[5,1,1,""],get_last_objective:[5,1,1,""],get_output:[5,1,1,""],is_provably_convergent:[5,1,1,""],iterations:[5,1,1,""],loss:[5,1,1,""],max_iteration:[5,1,1,""],max_iteration_stop_criterion:[5,1,1,""],next:[5,1,1,""],objective:[5,1,1,""],run:[5,1,1,""],set_up:[5,1,1,""],should_stop:[5,1,1,""],update:[5,1,1,""],update_objective:[5,1,1,""],verbose_output:[5,1,1,""]},"cil.optimisation.functions":{BlockFunction:[5,0,1,""],ConstantFunction:[5,0,1,""],Function:[5,0,1,""],IndicatorBox:[5,0,1,""],KullbackLeibler:[5,0,1,""],L1Norm:[5,0,1,""],L2NormSquared:[5,0,1,""],LeastSquares:[5,0,1,""],MixedL11Norm:[5,0,1,""],MixedL21Norm:[5,0,1,""],OperatorCompositionFunction:[5,0,1,""],Rosenbrock:[5,0,1,""],ScaledFunction:[5,0,1,""],SmoothMixedL21Norm:[5,0,1,""],SumFunction:[5,0,1,""],SumScalarFunction:[5,0,1,""],TotalVariation:[5,0,1,""],TranslateFunction:[5,0,1,""],WeightedL2NormSquared:[5,0,1,""],ZeroFunction:[5,0,1,""]},"cil.optimisation.functions.BlockFunction":{L:[5,1,1,""],__call__:[5,1,1,""],__init__:[5,1,1,""],__rmul__:[5,1,1,""],convex_conjugate:[5,1,1,""],gradient:[5,1,1,""],proximal:[5,1,1,""],proximal_conjugate:[5,1,1,""]},"cil.optimisation.functions.ConstantFunction":{L:[5,1,1,""],__call__:[5,1,1,""],__init__:[5,1,1,""],__rmul__:[5,1,1,""],convex_conjugate:[5,1,1,""],gradient:[5,1,1,""],proximal:[5,1,1,""]},"cil.optimisation.functions.Function":{L:[5,1,1,""],__add__:[5,1,1,""],__call__:[5,1,1,""],__init__:[5,1,1,""],__radd__:[5,1,1,""],__rmul__:[5,1,1,""],__sub__:[5,1,1,""],__weakref__:[5,2,1,""],centered_at:[5,1,1,""],convex_conjugate:[5,1,1,""],gradient:[5,1,1,""],proximal:[5,1,1,""],proximal_conjugate:[5,1,1,""]},"cil.optimisation.functions.IndicatorBox":{__call__:[5,1,1,""],__init__:[5,1,1,""],__new__:[5,1,1,""],gradient:[5,1,1,""],num_threads:[5,1,1,""],proximal:[5,1,1,""],set_num_threads:[5,1,1,""],set_suppress_evaluation:[5,1,1,""]},"cil.optimisation.functions.KullbackLeibler":{__init__:[5,1,1,""],__new__:[5,1,1,""]},"cil.optimisation.functions.L1Norm":{__call__:[5,1,1,""],__init__:[5,1,1,""],convex_conjugate:[5,1,1,""],proximal:[5,1,1,""]},"cil.optimisation.functions.L2NormSquared":{__call__:[5,1,1,""],__init__:[5,1,1,""],convex_conjugate:[5,1,1,""],gradient:[5,1,1,""],proximal:[5,1,1,""]},"cil.optimisation.functions.LeastSquares":{L:[5,1,1,""],__call__:[5,1,1,""],__init__:[5,1,1,""],__rmul__:[5,1,1,""],gradient:[5,1,1,""]},"cil.optimisation.functions.MixedL11Norm":{__call__:[5,1,1,""],__init__:[5,1,1,""],proximal:[5,1,1,""]},"cil.optimisation.functions.MixedL21Norm":{__call__:[5,1,1,""],__init__:[5,1,1,""],convex_conjugate:[5,1,1,""],proximal:[5,1,1,""]},"cil.optimisation.functions.OperatorCompositionFunction":{L:[5,1,1,""],__call__:[5,1,1,""],__init__:[5,1,1,""],gradient:[5,1,1,""]},"cil.optimisation.functions.Rosenbrock":{__call__:[5,1,1,""],__init__:[5,1,1,""],gradient:[5,1,1,""]},"cil.optimisation.functions.ScaledFunction":{L:[5,1,1,""],__call__:[5,1,1,""],__init__:[5,1,1,""],convex_conjugate:[5,1,1,""],gradient:[5,1,1,""],proximal:[5,1,1,""],proximal_conjugate:[5,1,1,""]},"cil.optimisation.functions.SmoothMixedL21Norm":{__call__:[5,1,1,""],__init__:[5,1,1,""],gradient:[5,1,1,""]},"cil.optimisation.functions.SumFunction":{L:[5,1,1,""],Lmax:[5,1,1,""],__add__:[5,1,1,""],__call__:[5,1,1,""],__init__:[5,1,1,""],gradient:[5,1,1,""]},"cil.optimisation.functions.SumScalarFunction":{L:[5,1,1,""],__init__:[5,1,1,""],convex_conjugate:[5,1,1,""],proximal:[5,1,1,""]},"cil.optimisation.functions.TotalVariation":{__call__:[5,1,1,""],__init__:[5,1,1,""],__rmul__:[5,1,1,""],calculate_Lipschitz:[5,1,1,""],convex_conjugate:[5,1,1,""],gradient:[5,1,1,""],proximal:[5,1,1,""]},"cil.optimisation.functions.TranslateFunction":{__call__:[5,1,1,""],__init__:[5,1,1,""],convex_conjugate:[5,1,1,""],gradient:[5,1,1,""],proximal:[5,1,1,""]},"cil.optimisation.functions.WeightedL2NormSquared":{__call__:[5,1,1,""],__init__:[5,1,1,""],convex_conjugate:[5,1,1,""],gradient:[5,1,1,""],proximal:[5,1,1,""]},"cil.optimisation.functions.ZeroFunction":{__init__:[5,1,1,""]},"cil.optimisation.operators":{BlockOperator:[5,0,1,""],ChannelwiseOperator:[5,0,1,""],CompositionOperator:[5,0,1,""],DiagonalOperator:[5,0,1,""],FiniteDifferenceOperator:[5,0,1,""],GradientOperator:[5,0,1,""],IdentityOperator:[5,0,1,""],LinearOperator:[5,0,1,""],MaskOperator:[5,0,1,""],MatrixOperator:[5,0,1,""],Operator:[5,0,1,""],ScaledOperator:[5,0,1,""],SparseFiniteDifferenceOperator:[5,0,1,""],SymmetrisedGradientOperator:[5,0,1,""],ZeroOperator:[5,0,1,""]},"cil.optimisation.operators.BlockOperator":{T:[5,1,1,""],__getitem__:[5,1,1,""],__init__:[5,1,1,""],__rmul__:[5,1,1,""],adjoint:[5,1,1,""],column_wise_compatible:[5,1,1,""],direct:[5,1,1,""],domain_geometry:[5,1,1,""],get_as_list:[5,1,1,""],get_item:[5,1,1,""],get_output_shape:[5,1,1,""],is_linear:[5,1,1,""],norm:[5,1,1,""],range_geometry:[5,1,1,""],row_wise_compatible:[5,1,1,""]},"cil.optimisation.operators.ChannelwiseOperator":{__init__:[5,1,1,""],adjoint:[5,1,1,""],calculate_norm:[5,1,1,""],direct:[5,1,1,""]},"cil.optimisation.operators.CompositionOperator":{__init__:[5,1,1,""],calculate_norm:[5,1,1,""],direct:[5,1,1,""],is_linear:[5,1,1,""]},"cil.optimisation.operators.DiagonalOperator":{__init__:[5,1,1,""],adjoint:[5,1,1,""],calculate_norm:[5,1,1,""],direct:[5,1,1,""]},"cil.optimisation.operators.FiniteDifferenceOperator":{adjoint:[5,1,1,""],direct:[5,1,1,""]},"cil.optimisation.operators.GradientOperator":{adjoint:[5,1,1,""],calculate_norm:[5,1,1,""],direct:[5,1,1,""]},"cil.optimisation.operators.IdentityOperator":{__init__:[5,1,1,""],adjoint:[5,1,1,""],calculate_norm:[5,1,1,""],direct:[5,1,1,""]},"cil.optimisation.operators.LinearOperator":{PowerMethod:[5,1,1,""],__init__:[5,1,1,""],adjoint:[5,1,1,""],calculate_norm:[5,1,1,""],dot_test:[5,1,1,""],is_linear:[5,1,1,""]},"cil.optimisation.operators.MaskOperator":{__init__:[5,1,1,""]},"cil.optimisation.operators.MatrixOperator":{__init__:[5,1,1,""],adjoint:[5,1,1,""],direct:[5,1,1,""]},"cil.optimisation.operators.Operator":{__init__:[5,1,1,""],__neg__:[5,1,1,""],__rmul__:[5,1,1,""],__sub__:[5,1,1,""],__weakref__:[5,2,1,""],calculate_norm:[5,1,1,""],direct:[5,1,1,""],domain_geometry:[5,1,1,""],is_linear:[5,1,1,""],norm:[5,1,1,""],range_geometry:[5,1,1,""],set_norm:[5,1,1,""]},"cil.optimisation.operators.ScaledOperator":{__init__:[5,1,1,""],adjoint:[5,1,1,""],direct:[5,1,1,""],is_linear:[5,1,1,""],norm:[5,1,1,""]},"cil.optimisation.operators.SparseFiniteDifferenceOperator":{direct:[5,1,1,""]},"cil.optimisation.operators.SymmetrisedGradientOperator":{adjoint:[5,1,1,""],direct:[5,1,1,""]},"cil.optimisation.operators.ZeroOperator":{__init__:[5,1,1,""],adjoint:[5,1,1,""],calculate_norm:[5,1,1,""],direct:[5,1,1,""]},"cil.plugins.TomoPhantom":{get_ImageData:[6,3,1,""]},"cil.plugins.astra":{FBP:[6,0,1,""],ProjectionOperator:[6,0,1,""]},"cil.plugins.astra.FBP":{get_output:[6,1,1,""],set_input:[6,1,1,""]},"cil.plugins.ccpi_regularisation.functions":{FGP_TV:[6,0,1,""],FGP_dTV:[6,0,1,""],TGV:[6,0,1,""],TNV:[6,0,1,""]},"cil.plugins.ccpi_regularisation.functions.FGP_dTV":{__call__:[6,1,1,""],__init__:[6,1,1,""],__rmul__:[6,1,1,""],convex_conjugate:[6,1,1,""]},"cil.plugins.ccpi_regularisation.functions.TGV":{__call__:[6,1,1,""],__init__:[6,1,1,""],__rmul__:[6,1,1,""],convex_conjugate:[6,1,1,""]},"cil.plugins.ccpi_regularisation.functions.TNV":{__call__:[6,1,1,""],__init__:[6,1,1,""],__rmul__:[6,1,1,""],check_input:[6,1,1,""],convex_conjugate:[6,1,1,""]},"cil.plugins.tigre":{FBP:[6,0,1,""],ProjectionOperator:[6,0,1,""]},"cil.plugins.tigre.FBP":{get_output:[6,1,1,""],set_input:[6,1,1,""]},"cil.processors":{AbsorptionTransmissionConverter:[7,0,1,""],Binner:[7,0,1,""],CentreOfRotationCorrector:[7,0,1,""],MaskGenerator:[7,0,1,""],Masker:[7,0,1,""],Normaliser:[7,0,1,""],Padder:[7,0,1,""],RingRemover:[7,0,1,""],Slicer:[7,0,1,""],TransmissionAbsorptionConverter:[7,0,1,""]},"cil.processors.AbsorptionTransmissionConverter":{get_output:[7,1,1,""],set_input:[7,1,1,""]},"cil.processors.Binner":{get_output:[7,1,1,""],process:[7,1,1,""],set_input:[7,1,1,""]},"cil.processors.CentreOfRotationCorrector":{get_output:[7,1,1,""],image_sharpness:[7,1,1,""],set_input:[7,1,1,""],xcorrelation:[7,1,1,""]},"cil.processors.MaskGenerator":{get_output:[7,1,1,""],mean:[7,1,1,""],median:[7,1,1,""],quantile:[7,1,1,""],set_input:[7,1,1,""],special_values:[7,1,1,""],threshold:[7,1,1,""]},"cil.processors.Masker":{get_output:[7,1,1,""],interpolate:[7,1,1,""],mean:[7,1,1,""],median:[7,1,1,""],set_input:[7,1,1,""],value:[7,1,1,""]},"cil.processors.Normaliser":{estimate_normalised_error:[7,1,1,""],get_output:[7,1,1,""],set_input:[7,1,1,""]},"cil.processors.Padder":{constant:[7,1,1,""],edge:[7,1,1,""],get_output:[7,1,1,""],linear_ramp:[7,1,1,""],reflect:[7,1,1,""],set_input:[7,1,1,""],symmetric:[7,1,1,""],wrap:[7,1,1,""]},"cil.processors.RingRemover":{get_output:[7,1,1,""],set_input:[7,1,1,""],xRemoveStripesVertical:[7,1,1,""]},"cil.processors.Slicer":{get_output:[7,1,1,""],process:[7,1,1,""],set_input:[7,1,1,""]},"cil.processors.TransmissionAbsorptionConverter":{get_output:[7,1,1,""],set_input:[7,1,1,""]},"cil.recon":{FBP:[8,0,1,""],FDK:[8,0,1,""]},"cil.recon.FBP":{get_filter_array:[8,1,1,""],reset:[8,1,1,""],run:[8,1,1,""],set_fft_order:[8,1,1,""],set_filter:[8,1,1,""],set_filter_inplace:[8,1,1,""],set_image_geometry:[8,1,1,""],set_input:[8,1,1,""],set_split_processing:[8,1,1,""]},"cil.recon.FBP.FBP":{run:[0,1,1,""]},"cil.recon.FDK":{get_filter_array:[8,1,1,""],reset:[8,1,1,""],run:[8,1,1,""],set_fft_order:[8,1,1,""],set_filter:[8,1,1,""],set_filter_inplace:[8,1,1,""],set_image_geometry:[8,1,1,""],set_input:[8,1,1,""]},"cil.utilities":{quality_measures:[9,4,0,"-"]},"cil.utilities.dataexample":{SIMULATED_CONE_BEAM_DATA:[9,0,1,"id0"],SIMULATED_PARALLEL_BEAM_DATA:[9,0,1,""],SYNCHROTRON_PARALLEL_BEAM_DATA:[9,0,1,""],TestData:[9,0,1,""]},"cil.utilities.dataexample.SIMULATED_CONE_BEAM_DATA":{get:[9,1,1,"id1"]},"cil.utilities.dataexample.SIMULATED_PARALLEL_BEAM_DATA":{get:[9,1,1,""]},"cil.utilities.dataexample.SYNCHROTRON_PARALLEL_BEAM_DATA":{get:[9,1,1,""]},"cil.utilities.dataexample.TestData":{load:[9,1,1,""],random_noise:[9,1,1,""],scikit_random_noise:[9,1,1,""]},"cil.utilities.display":{show1D:[9,0,1,""],show2D:[9,0,1,""],show_geometry:[9,0,1,""]},"cil.utilities.display.show1D":{figure:[9,2,1,""],save:[9,1,1,""]},"cil.utilities.display.show2D":{save:[9,1,1,""]},"cil.utilities.display.show_geometry":{save:[9,1,1,""]},"cil.utilities.jupyter":{islicer:[9,0,1,""],link_islicer:[9,0,1,""]},"cil.utilities.quality_measures":{mae:[9,3,1,""],mse:[9,3,1,""],psnr:[9,3,1,""]}},objnames:{"0":["py","class","Python class"],"1":["py","method","Python method"],"2":["py","attribute","Python attribute"],"3":["py","function","Python function"],"4":["py","module","Python module"]},objtypes:{"0":"py:class","1":"py:method","2":"py:attribute","3":"py:function","4":"py:module"},terms:{"0000654846240296":5,"0005647295658866":5,"00186":5,"003":6,"005":7,"008":5,"008567":7,"010":5,"018":5,"0192":[2,5],"0193":[2,5],"020":5,"0251":5,"025129":6,"055010":6,"080716542":5,"09076934x":5,"100":[4,5,6],"1007":5,"1015":5,"1016":6,"1046":5,"1088":6,"1098":[2,5],"1102995080":5,"1109":5,"1137":5,"120":[5,7],"128":[6,7],"1321":5,"1364":[6,7],"145":5,"180":7,"183":5,"1887":8,"1976":6,"200":[4,7],"2001":5,"2008":8,"2009":5,"2010":5,"2011":5,"2016":5,"2017":8,"2018":[5,6],"2019":[5,6,9],"202":5,"2020":[2,5],"20200192":[2,5],"20200193":[2,5],"2021":[2,5],"2022":0,"2028250":5,"2057":6,"20channel":5,"2204":5,"2419":5,"2434":5,"255":9,"256":9,"2783":5,"2808":5,"2_2":[3,5],"2beta":5,"2ca":5,"2pi":6,"2s1":5,"300":4,"360":6,"360deg":7,"377":5,"379":5,"381":5,"400":5,"430":5,"48289":8,"4t_":5,"500":9,"550":4,"7142857142857":4,"9225":5,"9780898719277":5,"9ntwu9megq":2,"abstract":5,"boolean":[1,5,6,7,8,9],"byte":5,"case":[1,4,5,7,9],"class":[0,1,2,4,6,7,8,9],"default":[0,1,4,5,6,7,8,9],"final":5,"float":[1,4,5,6,7,8,9],"function":[2,3,4,8,9],"import":[4,5,6,7,8,9],"int":[0,1,4,5,6,7,8,9],"j\u00f8rgensen":2,"long":[1,5],"new":[1,2,5],"return":[0,1,4,5,6,7,8,9],"richt\u00e1rik":5,"sch\u00f6nlieb":5,"static":[1,4,5,7,9],"true":[1,4,5,6,7,8,9],"try":1,"var":9,"while":[2,5],AND:9,ARE:9,BUT:9,DLS:9,FOR:9,For:[0,2,4,5,6,7,9],IDEs:0,NOT:9,One:[7,9],SUCH:9,THE:9,The:[0,1,2,3,4,5,6,7,8,9],Then:5,There:1,These:[4,7],USE:9,Use:[0,2,5,9],Used:9,Uses:7,Will:[1,9],With:[3,5],__add__:5,__array_priority__:5,__call__:[5,6],__delattr__:5,__dir__:5,__eq__:5,__format__:5,__ge__:5,__getattribute__:5,__getitem__:5,__gt__:5,__hash__:5,__iadd__:5,__idiv__:5,__imul__:5,__init__:[5,6],__init_subclass__:5,__isub__:5,__iter__:5,__itruediv__:5,__le__:5,__lt__:5,__mul__:5,__ne__:5,__neg__:5,__new__:5,__next__:5,__radd__:5,__rdiv__:5,__reduce__:5,__reduce_ex__:5,__repr__:5,__rmul__:[5,6],__rpow__:5,__rsub__:5,__rtruediv__:5,__set_up_logg:5,__setattr__:[1,5],__sizeof__:5,__str__:5,__sub__:5,__subclasscheck__:5,__subclasshook__:5,__weakref__:5,_as_gen:9,_dual:[5,6],_gradient:5,_po_class:0,_pre_filt:0,_process_chunk:0,_setup_po_for_chunk:0,_slices_per_chunk:0,_update_previous_solut:5,abc:5,abcmeta:5,abl:[3,5,6],about:[4,7],about_original_data:4,abov:[2,3,5,6,9],abs:[1,5,7],absolut:[5,7,9],absorpt:2,absorptiontransmissionconvert:7,abspath:4,acceler:[3,5,7],accept:[0,1,4,5,7],access:5,accord:1,accordingli:5,accur:[5,6,8],accuraci:7,achiev:[3,5,7],acquir:[3,5],acquisit:[1,2,3,4,5,6,8,9],acquisition_geometri:[0,4,6,9],acquisitiondata:[2,3,5,7,8,9],acquisitiondatasetn:7,acquisitiongeomerti:1,acquisitiongeometri:[2,3,4,5,6,7,9],acquisitionmodel:5,across:[6,7],act:5,activ:0,actor:[3,5],actual:[0,5],ad1:4,adapt:9,add:[0,1,5,6,9],added:[5,6],addit:[0,1,5,7,8,9],adher:0,adjoint:[0,5,6],adjoint_weight:6,adjust:4,admm:5,advanc:[0,3,5],advis:9,after:[5,7,9],ag1:4,against:9,agre:0,aim:2,algebr:[1,5],algebra:[1,5,8],algorithm:[2,3,6,7,8],alia:[1,4,5,9],align:[1,5,7],all:[0,1,4,5,6,7,8,9],alloc:[0,1,5,8],allow:[1,3,4,5,6,7,8,9],alon:9,along:[4,5,7,9],alpha:[3,5,6],alphabet:4,also:[0,2,3,4,5],altern:[4,5],although:5,alwai:[4,5],ametova:5,amir:5,amount:[3,5,9],analyt:[2,5],ang_tol:7,angl:[1,4,6,7],angle_unit:[1,6],angular:[1,6,7],ani:[0,3,5,6,9],anisotrop:[5,6],anoth:5,antonin:5,aop:5,apach:0,apart:7,api:9,appear:7,append:5,appli:[1,3,4,5,6,7,8,9],applic:[0,5],apply_circular_mask:1,appropri:[0,1,5,6],approx:5,approxim:[4,6],arbitrari:5,area:[6,8],arg:[0,1,5,9],argmin:[3,5,6],argument:[0,1,5,9],aris:9,armijo:5,armijo_rul:5,around:5,arrai:[0,1,3,4,5,7,8,9],arrang:[3,4],artefact:1,articl:[2,6],artifact:7,arxiv:5,as_arrai:1,ascent:5,aspect:9,assembl:3,assign:7,assum:[5,9],astra:[1,2,3,7,8],asymmetr:7,asymptot:5,attribut:[1,3,4,7],augment:5,author:[0,9],automat:7,avail:5,averag:[4,7],avinash:5,avoid:[5,7],axes:[1,4,7],axi:[1,4,7,9],axis_0:4,axis_1:4,axis_2:4,axis_label:[4,9],axis_labels_1:4,axis_labels_2:4,axis_nam:7,axis_name1:7,axis_name2:7,axpbi:[1,5],azimuth:9,back:[3,4,6,8,9],backend:[5,7,8],background:5,backproject:[5,8],backward:[1,4,5,6],backward_project:6,bar:5,base:[0,1,2,3,7,8,9],basi:0,basic:[1,2,4,5],basicconfig:7,batch:1,bdc1:[1,5],bdc2:[1,5],bdc:1,beam:[1,2,6,7,9],becaus:[5,9],beck:5,becom:5,been:[4,5,6,7],beer:7,befor:[4,5,7,9],begin:[0,3,5,7],behav:[1,5],behaviour:[4,5,7,9],being:[2,7,9],below:[3,5,7,9],berlin:8,best:[6,7],beta:5,betck:5,better:[3,5],between:[1,3,5,6,7,8],beyond:[3,9],bibian:5,big:5,bin:[4,7],binari:[1,4,9],binary_oper:[1,5],binner:2,binom:[3,5],biologi:5,bit:4,blob:[4,5,9],block:[1,2],blockdatacontain:[2,3,9],blockfunct:[3,5],blockgeometri:[2,3,5,6],blockoper:[3,5,6],blur:7,bmatrix:5,bnd_cond:5,boat:9,bool:[4,5,7,9],boolian:[1,9],border:7,both:[1,2,3,5,7],bottom:[0,1],bound:5,boundari:[5,7],box:[2,9],broadcast:6,brows:4,build:[2,3,5],burca:5,busi:9,buzug:8,bypass:1,cach:5,calcul:[1,4,5,6,7,9],calculate_lipschitz:5,calculate_norm:5,call:[3,4,5,6,8],callback:5,camera:9,can:[0,1,2,3,4,5,6,7,8,9],cannot:9,cap:0,capabl:6,care:9,carola:5,caus:[7,9],ccpi:[2,4],ccpi_regularis:6,cdot:5,ceil:[0,5],center:[3,5,7,9],center_i:1,center_x:1,center_z:1,centered_at:5,centr:[1,2,9],centreofrotationcorrector:7,cern:6,certain:5,cgl:[2,3],chambol:5,chan:5,chang:[0,4,5,6,9],channel:[1,2,5,6,7,9],channel_label:1,channelwiseoper:5,characterist:3,check:[1,4,5],check_converg:5,check_input:[1,6],chunk:[0,4,8],cil:[1,3,4,5,7,8,9],cil_log_level:7,circ:5,circular:[1,3,6,8],clair:5,classmethod:9,clearli:0,clip:9,clone:[0,1,5],close:[0,5],cls:5,cmake:0,cmap:9,code:[0,1,2,4,5,6,7,9],coincid:7,col:5,collect:[2,5],collim:3,color:9,colorbar:9,colormap:9,colour:9,column:[1,4,5,9],column_wise_compat:5,com:[0,2,5,6,9],comment:0,common:3,commonli:1,commut:[1,5],compar:9,comparison:[5,9],compat:[1,4,5,6,8],complex:[1,5],compli:0,complianc:0,compon:[5,7,8],composit:2,compositionoper:5,compress:4,compressed_data:4,compris:[3,5],comput:[5,6,8],computation:5,computer:5,concret:5,conda:0,conda_prefix:0,condit:[0,5,9],cone2d:2,cone3d:2,cone:[1,2,6,7,9],config:[0,4],configpars:4,configur:[0,2,4,5,6,7,8],conjug:[1,5,6],consecut:5,consequenti:9,consid:[2,3,5],consist:[1,5],constant:[5,6,7],constant_valu:7,constantfunct:5,constrain:5,constraint:[5,6],construct:[2,4,5,8],constructor:5,contain:[0,2,3,4,5,7,8,9],content:[4,5],continu:5,contract:9,contribut:[2,5,7],contributor:9,control:[0,5,8],convent:[2,3,5],converg:5,convert:[2,9],convex:[5,6],convex_conjug:[5,6],coordin:9,copi:[0,1,5],copyright:[0,9],core:[0,2,3,5],correct:[5,7,8],corrector:2,correl:[5,7],correlation_spac:5,correspond:[4,5,7,9],corrupt:9,cosin:8,costli:5,could:[1,5],counter_offset:4,courtesi:[4,5],cpu:[5,6],creat:[0,1,3,4,5,7,8,9],create_cone2d:[1,6],create_cone3d:[1,6],create_local_env_for_cil_development_test:0,create_parallel2d:1,create_parallel3d:1,creation:5,creator:[2,5,6],criteria:7,criterion:[5,6],crop:[4,7],cross:7,cubic:7,cuda:6,current:[0,1,5],custom:[5,8],customis:[6,8],cut:8,cutoff:8,damag:9,dark:7,dark_field:7,data:[2,4,5,6,8],data_bin:7,data_centr:7,data_channel0:9,data_channel1:9,data_dir:9,data_pad:7,data_rang:9,data_sl:7,data_typ:4,datacontain:[2,4,5,6,7,9],datacontainer0:1,datacontainer1:1,dataexampl:[8,9],dataord:2,dataprocessor:2,dataset:[0,1,2,3,4,6,7,8],date:2,davi:8,dc1:9,dc2:9,dcmake_install_prefix:0,dealloc:5,deblur:5,debug:7,decnum:7,decompos:5,deep_copi:1,def:[0,5],defin:[1,2,3,4,5,6,7,9],definit:[0,3,5,6],degre:[1,6,7,9],delattr:5,delplanck:5,delta:5,delta_dark:7,delta_flat:7,demo:[3,5],denois:5,denot:5,dens:5,depend:[0,3,4,7],deprec:[1,5,7],depth:4,deriv:[5,9],descent:5,describ:[1,3,4,5,6],descript:[3,6,7,8],design:[3,5],desir:[5,7],desiri:7,dest_sel:4,destin:4,detail:[2,7],detect:7,detector:[1,3,4,7,8],detector_direction_i:1,detector_direction_x:1,detector_i:1,detector_posit:1,detector_x:1,determin:6,devaiat:7,devel:2,develop:[2,3,5],deviat:[7,9],devic:6,diagon:5,diagonaloper:5,diamond:2,dict:[4,7],dictionari:[1,4,7],differ:[2,3,5,6,7,9],differenti:5,digaonaloper:5,dimens:[0,1,4,5,6,7,9],dimension:[5,9],dimension_label:[1,5,7],dir:5,direct:[1,4,5,6,9],direct_method:6,direction0:9,direction1:9,directli:[1,4,5,7],directori:[0,4,9],discard:5,disclaim:9,discord:2,disk:4,displai:[2,3],distanc:[1,3,5,9],distribut:[0,5,9],divid:[0,1,5,7],divis:[1,5,7],doc:[0,4,5,7],docs_environ:0,docstr:2,document:[6,9],doe:[0,1,5,6,7,9],doi:[2,5,7],domain:[5,8,9],domain_geometri:5,domain_init:5,domin:5,done:[1,5],dot:[1,5],dot_test:5,doubl:7,down:9,download:5,downsampl:7,dset_path:4,dtype:[1,4,5,6,9],dual:5,dualiti:5,due:[5,7],dure:[0,1,5],dynam:[2,5],each:[0,1,4,5,7,9],earli:5,earlier:6,easiest:0,easili:5,edg:[1,7],edoardo:5,edu:5,effect:5,ehrhardt:5,eigenvalu:5,eigenvector:5,either:[0,3,5,7,9],element:[1,4,5,7],elev:9,elif:0,els:[0,6],email:0,embed:0,emiss:5,emit:3,emploi:2,empti:1,enabl:2,enclos:0,end:[0,3,4,5,7],end_valu:7,endors:9,enforc:[2,5],engin:[1,5],enough:2,ensur:7,entail:5,entri:4,env:0,environ:0,environment_nam:0,epsilon:5,eqnarrai:5,equal:[1,5,6,9],equival:[3,4,5],erfcinv:7,erni:5,error:[1,5,7,9],essenti:0,esser:5,estim:7,estimate_normalised_error:7,eta:[5,6],euclid:5,euclidean:1,eval:4,evalu:5,evangelo:5,evelina:5,even:[1,5,9],event:[5,9],everi:[5,7,9],everyth:4,evolv:0,exact:[4,5],exampl:[1,4,5,6,7,8,9],except:0,excess:0,exclus:[7,9],execut:5,exemplari:9,exist:5,exp:1,expect:[1,7],expens:5,explicit:5,explicitli:9,expon:7,expos:9,express:[0,1,3,5,9],extend:[5,7,9],extens:4,extract:[4,9],extrapol:7,f_1:5,f_i:5,f_n:5,fact:[1,4,5],factor:[3,4,7],fail:[1,5],fals:[0,1,4,5,7,8,9],fan:2,fanbeam:2,fardel:5,fashion:5,fast:[5,6],faster:5,favour:0,fbp:[0,1,2,3,7],fdk:[2,3,6,7],fdk_cuda:6,feldkamp:8,fft:8,fft_order:8,fgp:[5,6],fgp_dtv:6,fgp_tv:6,fidel:[3,5],field:[0,3,7],figsiz:9,figur:9,file:[0,2,3,5],file_nam:4,filenam:[4,9],fill:[0,1,4,6,7,8],filter:[3,6,8],filter_inplac:0,find:[0,5,7],fine:7,finit:5,finitedifferenceoper:5,first:[3,4,5,6,7,9],firstli:[2,5],fista:2,fit:[1,5,7,9],fix:5,fix_rang:9,flag:5,flat:7,flat_field:7,flatten:[5,7],flip:4,fliplr:4,float32:[1,4,5,6],fname:[4,5],folder:[0,4],follow:[0,1,4,5,7,8,9],fontsiz:9,forc:1,fork:7,form:[3,5,8,9],format:[0,3],format_spec:5,formatt:5,formul:[2,5],formula:5,forth:5,forward:[5,6],forward_project:6,found:[2,5,9],fourier:8,frac:[3,5,6],frame:1,framework:[2,4],frequenc:8,frequency_cutoff:8,from:[1,2,3,4,5,6,8],fromfil:4,full:[0,3,4,8],fulli:[0,4],fundament:5,further:[0,2,5,8],futher:[6,8],futur:5,gamma:[5,6],gamma_fconj:5,gamma_g:5,gantri:3,gap:[5,7],gaussian:9,gemma:5,gener:[0,1,2,4,5,6,9],generalis:[5,6],genericlli:5,geometr:6,geometri:[0,2,4,5,6,7],geometry_bin:7,geometry_sl:7,geq1:5,geq2:5,get:[4,5,8,9],get_as_list:5,get_data_axes_ord:1,get_data_offset:4,get_data_scal:4,get_dataset_metadata:4,get_filter_arrai:8,get_geometri:4,get_imagedata:6,get_imagegeometri:[0,1,6],get_input:1,get_item:[1,5],get_last_loss:5,get_last_object:5,get_metadata:4,get_ouput:[6,7],get_output:[1,5,6,7],get_output_shap:5,get_roi:4,get_slic:[1,9],getattr:5,getlogg:7,git:[0,2],github:[0,2,5,6,9],give:[1,3,7],given:5,global:[5,9],gm_domain:5,gm_rang:5,goal:3,good:9,govern:0,gpu:6,gradient:[5,6],gradientoper:2,grai:9,greater:[1,8],greatli:3,grid:9,ground_truth:9,group:[4,5],guarante:5,guess:5,guid:[2,5],guidelin:2,hadamard:5,half:[5,7],ham:8,handl:[1,2,3,8],hann:8,happen:1,hard:7,hardwar:8,has:[0,1,3,4,5,6,7],hash:5,have:[0,3,4,5,7,8],hdf5:2,hdf5_util:4,hdl:8,height:9,held:1,help:[0,5,6],helper:5,henc:5,here:[0,5],hereof:5,high:[2,5],higher:[8,9],highli:[5,8],hold:[1,5,7],home:[1,4,5,6,7,8,9],horizont:[1,4,7],horizontal_i:[1,5,7,9],horizontal_x:[1,5,7,9],hotdog:9,how:5,howev:[4,5,9],html:[0,4,5,7,9],http:[0,2,4,5,6,7,8,9],hybrid:5,i_0:4,ideal:7,ident:5,identifi:[0,7],identityoper:5,ieee:5,ignor:[5,6,7],illustr:3,ima:7,imag:[0,2,3,4,5,6,7,8],image_geometri:[0,4,6,8,9],image_sharp:7,imagedata:[0,2,3,5,6,7,8,9],imagegeometri:[2,3,4,5,6,7,8,9],implement:[2,5],impli:[0,9],impos:[3,5],in_plac:1,inch:9,incid:[3,7],incident:9,includ:[1,5,7,9],inclus:7,incorpar:6,incorrect:7,increas:[5,8],independ:[4,5],index:[1,4,5,7],indic:[1,2,4,7,8],indicatorbox:5,indipend:[1,5],indirect:9,industri:5,inequ:5,inexact:5,inf:[5,7],infin:5,infinit:5,influenc:3,info:[4,5,6,7],inform:[0,1,2,4,5,6,7,9],infrastructur:5,infti:5,ingredi:5,inherit:[1,5],ini:4,inifnam:4,initi:[4,5,6,7,9],initial_angl:1,initial_bin:7,initialis:[1,4,5,7],inlin:5,inner:[1,5],innov:0,inpaintingand:5,inplac:8,input:[0,1,2,5,6,7,8,9],insid:5,instal:[0,5,6],instanc:[0,1,4,5],instanti:[1,5],instead:[0,5,7,9],instruct:0,instrument:[3,7],integ:[5,6,7,9],intend:5,intens:7,interact:[2,5],interest:[1,7],intermedi:9,intern:[1,4],interpoalt:7,interpol:[6,7],interpret:[5,7,8],interrupt:9,intersect:6,interv:[5,9],introduct:2,intuit:9,invers:5,invok:5,iop:6,iopscienc:6,ipywidget:9,irrespect:5,is_compat:[1,5],is_fortran:4,is_linear:5,is_provably_converg:5,is_virtu:4,islic:2,isotrop:[5,6],issubclass:5,ista:2,iter:[3,5,6,9],its:[0,5,9],itself:[0,5],jakob:5,januari:5,join:2,journal:5,json:4,julian:5,jun:5,jupyt:9,just:1,k_i:5,kak:5,keep:[5,9],kei:[0,1,4,7],keyward:5,keyword:[1,5],kind:0,kinemat:7,kingdom:0,kl_div:5,kmax:5,knowledg:[3,5],known:5,kress:8,kullback:5,kullbackleibl:2,kwarg:[0,1,5,6,7,9],l11:2,l1norm:5,l21:2,l2norm_:5,l2normsquar:5,lab:3,label:[1,4,5,9],ladmm:2,lagrangian:5,lak:[6,8],lambert:7,langl:5,languag:[0,6],larg:[1,5],larger:5,largest:5,last:[5,7],law:[0,7],layout:4,lead:[4,7],least:[1,2,3],leastsquar:5,left:[1,4,5,9],leftrightarrow:[5,6],legend:9,leibler:5,length:[1,5,8,9],leq1:5,leq:5,less:5,let:5,level:[2,4,5,7,9],liabil:9,liabl:9,librari:[0,1,2,3,5],licens:0,light:2,like:[3,4,5],limit:[0,5,6,9],line:[4,9],line_colour:9,line_styl:9,linear:[5,7],linear_ramp:7,linearoper:5,linestyl:9,link:[0,2,5],link_islic:2,linspac:6,lionheart:5,lipschitz:5,lipshitz:5,list:[1,2,4,5,8,9],lmax:5,load:[4,9],load_data:4,load_project:4,loader:3,local:[2,9],local_var:9,localvar:9,locat:[1,7],log0:5,log10:5,log:[0,1,5,7,8],log_fil:5,logan:8,logarithm:7,logger:5,look:4,loop:[4,5,7],loss:[5,7,9],lossi:4,low_val:9,lower:[5,6,7,9],lvert:5,machin:3,mad:7,mae:9,magnif:3,magnitud:5,mai:[0,1,2,5,7,8,9],mail:2,main:[2,3,5],mainli:3,maintain:9,make:[0,3,5],malcolm:5,manchest:0,mani:5,manipul:[2,3],manual:[4,9],map:[5,9],marc:5,markiewicz:5,martin:5,mask:[1,2,5],masker:7,maskgener:7,maskoper:5,master:[5,9],match:[1,5,6],materi:9,math:[1,5],mathbb:5,mathcal:5,mathemat:[2,5],mathrm:[3,5,6],matplotlib:9,matric:5,matrix:[3,5,9],matrixoper:5,matthia:5,max:[1,5,6,9],max_:5,max_iter:[5,6],max_iteration_stop_criterion:5,max_quantil:7,max_val:7,maximis:7,maximum:[1,5,6],mbox:[5,6],mean:[1,5,7,9],meant:0,measur:[3,5,7,8],median:7,medicin:5,medium:5,member:0,memori:[1,5,8],merchant:9,met:[5,9],meta:1,metadata:[2,4],method:[1,2,3,4,5,6,7,8],metric:2,midlin:7,might:5,min:[1,5,9],min_:5,min_intens:7,min_quantil:7,min_val:7,min_x:5,mingqiang:5,minim:[4,5],minimis:5,minimum:[1,5,6],minmax:9,mirror:7,misalign:7,miss:7,mix:2,mixedl11norm:5,mixedl21norm:5,mkdir:0,mode:[1,4,5,7,9],model:6,modern:8,modif:9,modifi:[1,8],modul:[3,5,6,7,8],moment:5,monitor:5,mop:5,mop_norm:5,more:[3,4,5,7,8,9],moreau:5,most:[1,5],mri:5,mse:9,multi:[2,4,5,9],multichannel:[2,5,6],multicontrast:5,multipl:[0,1,4,5,6,7,9],multiplc:5,multipli:[1,5,7],multiprocess:5,must:[0,1,4,5,7,8,9],mx1:5,my_data:4,nabla:5,name:[0,1,4,5,7,9],nan:[5,7],nbyte:4,ndarrai:[1,4,5,7,8,9],ndim:[1,4,6],nearest:7,necessari:[0,1,4],need:[0,4,5,7,9],neg:[4,5,6,7,8,9],neglig:9,neither:9,nest:[1,5,9],net:8,neumann:5,neutron:7,new_ord:1,newlin:5,next:[1,5,7,9],nexu:[2,3],nexusdataread:4,nexusdatawrit:4,nice:5,nikon:[2,3],nikondataread:4,nois:[5,9],noisy_data:5,non:[0,2,5,6],none:[0,1,4,5,6,7,8,9],nonneg:6,nor:9,norm2sq:5,norm:[1,2,6],normal:[1,5],normalis:[2,4],notat:5,note:[4,5,6,7,8,9],notebook:3,noth:5,notic:[4,5,9],notimpl:5,nov:5,now:[3,5,6],num_batch:1,num_channel:1,num_chunk:0,num_col:9,num_model:6,num_pixel:1,num_pixels_h:1,num_pixels_v:1,num_thread:[1,5],numba:5,number:[1,2,3,4,5,6,7,9],number_of_dimens:1,numer:1,numpi:[1,4,5,7,8,9],numpy_vers:0,numpydoc:0,nx1:5,nxs:4,object:[1,2,3,4,5,7],objective_funct:5,obtain:[0,4],occur:9,off:[5,8],offset:[0,1,4,6,7,8],often:0,omega:5,one:[1,2,3,5,7,9],ones:[4,5],onli:[0,1,4,5,6,7,8,9],onto:[3,5,7],op0:5,op1:5,op2:5,oper:[0,1,2,3,7],operatorcompositionfunct:5,optim:[2,5],optimis:[2,3,6,8],option:[0,1,4,5,6,7,8,9],orbit:8,order:[1,4,5,8,9],ordin:4,org:[0,2,4,5,6,7,9],orient:[0,2,5],origin:[0,1,4,5,9],original_data:4,other:[1,2,5,7,9],otherwis:[1,5,9],otim:5,our:[1,2,3,5],out:[0,1,4,5,6,7,8,9],outcom:5,outer:9,outlier:7,output:[0,1,2,4,5,7,8,9],outsid:[1,7,8,9],over:[5,7],overrid:5,overridden:5,overset:5,own:0,owner:0,p_i:5,pack:4,packag:[0,2,5],pad:7,pad_valu:7,pad_width:7,padder:2,page:[2,4],pair:[5,9],panel:[0,1,7],paper:2,papoutselli:[2,5],parallel2d:2,parallel3d:2,parallel:[1,2,6,7,9],param:[1,5,9],paramet:[0,1,3,4,5,6,7,8,9],parent:1,pars:4,part:[2,5,6],partial_:5,particular:[5,9],partit:1,pasca:5,pass:[0,1,5,6,7,8,9],path:[4,9],pawel:5,pbar:0,pdf:5,pdf_1:5,pdhg:2,pdhg_vs_spdhg:5,peak:9,penalis:5,pepper:9,per:[5,9],percent:9,percentag:1,perform:[1,5,7],period:5,permiss:[0,9],permit:9,permut:1,pet:5,peter:5,phantom:6,phil:2,philip:5,philosoph:5,photon:[7,8],physic:5,pickl:5,pixel:[1,3,4,6,7,8,9],pixel_num_v:0,pixel_s:1,pixel_size_h:1,pixel_size_v:1,pjm:5,place:[1,3,8],placehold:[1,5],plantagi:8,play_interv:9,pleas:[0,1,2,3,6,7],plot:9,plugin:[2,3,7],png:9,pock:5,point:[1,3,5,9],pointer:[1,5],poisson:[5,9],poissonloglikelihoodwithlinearmodelformean:5,poorli:9,popul:7,posit:[0,1,5,6,7,8,9],positron:5,possibl:[1,5,9],power:[1,2,5,8,9],powermethod:5,practic:[5,7],pre:[2,3,5,8],precalcul:5,preced:[1,5],precondit:5,predefin:8,prefix:4,prepar:8,prepend:5,present:[1,5,9],preserv:9,preval:9,previou:[5,6,7],primal:5,principl:5,print:[0,4,5,7],print_interv:5,print_metadata:4,prior:[3,5,9],prob:5,probabl:5,problem:[2,3,5,6,9],problem_:[5,6],process:[0,1,3,5,6,7,8],processor:[1,2,3,6],procur:9,produc:9,product:[1,5,9],profit:9,progress:7,proj:5,proj_filt:0,project:[2,3,4,5,7,8],projecteuclid:5,projection_index:7,projectionoper:6,projector:[3,6,8],promot:9,proper:9,properti:[1,2,5],proport:9,protect:0,protocol:5,prototyp:[2,5],provabl:5,provid:[0,1,2,3,4,5,6,7,8,9],prox:[5,6],prox_:5,proxim:[5,6],proximal_conjug:5,pseudo:9,psnr:9,purpos:[5,9],pydata:0,pyplot:9,python2:[1,5],python3:0,python:[2,5,7],python_vers:0,qeq0:6,quad:5,quadrat:[5,7],qualiti:[2,3],quality_measur:9,quantil:7,quarter:7,r_1:3,r_2:3,rad:8,radia:2,radian:1,radiat:3,radiu:1,rai:[1,3,6],rainbow:9,rais:[0,1,5],ral:5,ram:[6,8],ramp:7,random:[1,5,9],random_int:1,random_nois:9,random_permut:1,rang:[0,5,6,7,8,9],range_geometri:5,range_init:5,rangl:5,rapid:[2,5],rare:9,rasch:5,rate:5,rather:[5,7],ratio:[6,9],raw:2,rawfilewrit:4,ray_direct:1,reach:[3,5,6],read:[2,7],read_arrai:4,read_as_acquisitiondata:4,read_as_imagedata:4,read_as_origin:4,read_data:4,read_dtyp:4,read_resc:4,read_scale_offset:4,read_shap:4,read_to:4,reader:[2,3],real:[1,2,3,5],receiv:5,recognis:[3,5],recommend:[7,8],recon:[0,2,3],reconstruct:[0,1,2,3,4,5,6,7],reconstructor:[0,2,3,6],recov:5,rect:8,recurs:[0,4],redistribut:9,reduc:[3,5,8,9],reduct:1,refer:[0,1,2,3,4,6,7,8,9],referenc:[0,1,6,7,8],reflect:[5,7],region:7,regular:5,regularis:[2,3,5],rel:[5,6,7],relat:[1,5],relax:5,relev:4,remain:7,remaind:0,remov:2,reorder:1,repeat:5,replac:[0,9],repo:0,repositori:[2,3],repositoryy:5,repr:5,repres:[1,4,5,7,9],reproduc:[2,9],request:[0,1,4,7,8,9],requir:[0,1,5,6,7,8],rescal:[4,6],rescaled_data:4,research:0,reserv:9,reset:8,reshap:[4,5],resid:4,resolut:[1,7],resolution_chart:9,resort:1,respect:[1,3,4,5,7,9],rest:5,restart:5,restor:5,resul:[1,5],result:[1,2,3,4,5,6,7,8,9],ret:0,retain:9,return_al:5,revers:[1,5],rewritten:5,rgensen:5,right:[1,4,5,9],rightarrow:5,ring:2,ringremov:7,rof:5,roi:[4,7],roll:7,root:4,rosenbrock:5,rotat:[1,2,3,6],rotation_axis_direct:1,rotation_axis_posit:1,round:9,routin:[5,8],row:[0,1,3,4,5],row_wise_compat:5,royal:5,royalsocietypublish:5,rsta:[2,5],rule:5,run:[0,1,5,6,7,8],rvert_:5,ryan:5,s10107:5,s10589:5,s10851:5,saddl:5,sai:5,salt:9,salt_vs_pepp:9,same:[0,1,4,5,6,7,9],sampl:[3,5],sapyb:[1,5],satisfi:5,save:[3,4,5,9],savefig:9,scalar:[1,5,6],scale:[2,4,5,7,9],scaledfunct:5,scaledoper:5,scaleoffset:4,scan:[3,7],scatter:[3,5],schemat:9,schonlieb:5,scienc:5,scikit:9,scikit_random_nois:9,scipi:5,screen:5,script:0,search:[7,9],search_rang:7,second:[3,5,7,9],secondli:2,section:[4,5],see:[0,5,6,7,9],seed:[1,5,9],select:[3,4,8,9],selector:9,self:[0,1,5,6,8],sensibl:4,separ:[0,5,9],sequent:9,sequenti:1,serial:5,serv:0,server:0,servic:9,set:[0,1,2,4,5,6,7,8],set_:0,set_angl:[1,6],set_channel:[1,6],set_fft_ord:8,set_filt:8,set_filter_inplac:8,set_gamma_fconj:5,set_gamma_g:5,set_image_geometri:8,set_input:[1,6,7,8],set_label:1,set_norm:5,set_num_thread:5,set_panel:[1,6],set_relaxation_paramet:5,set_split_process:[0,8],set_step_s:5,set_suppress_evalu:5,set_up:[4,5],setattr:5,setlevel:7,setter:2,sever:7,sgn:5,shall:9,shape:[0,1,4,5,9],share:5,sharp:7,shepp:8,shinkoper:5,shortcut:4,shorter:5,should:[0,1,4,5,6,7,8,9],should_stop:5,show1d:2,show2d:2,show:9,show_geometri:2,shown:9,shrinkag:5,siam:5,siddon:6,side:7,sigma:[5,7],sigma_:5,sign:[1,5,9],signal:9,signatur:[5,6],signific:3,simpl:[0,2,6,8],simple_phantom_2d:9,simpli:3,simplifi:5,simul:[2,3,5],simulated_cone_beam_data:[8,9],simulated_parallel_beam_data:[8,9],simulated_sphere_volum:9,simultan:5,singl:[1,3,4,5,7,8,9],singular:5,sinogram:[1,7],sirf:5,sirt:2,size:[0,1,4,5,6,7,9],skimag:9,skip:4,slanei:5,slice:[1,2,3,4,7,8],slice_index:7,slice_list:9,slice_metadata:4,slice_numb:9,slicer:2,slices_per_chunk:[0,8],slider:9,slight:7,small:[0,5,6,9],smooth:[2,6],smoothmixedl21norm:5,soc:2,societi:5,softwar:[0,5,9],softx:6,sol:[5,6],solut:[3,5,6],solv:[2,3,5,9],some:[5,7],some_data:1,someth:4,soon:5,sop:5,sort:1,sourc:[1,2,3,4,5,6,7,8],source_posit:1,source_sel:4,space:[5,6],spacechannel:5,spars:5,sparsefinitedifferenceoper:5,spatial:[1,5,7],spdhg:2,special:[5,7,9],special_valu:7,specif:[0,4,5,9],specifi:[1,4,5,7,9],speckl:9,spectral:[2,3,5],sphere:9,sphinx:0,split:[5,8],springer:[5,8],sqrt:[1,5,6,7],squar:[1,2,3,9],squared_norm:1,stabl:[4,7,9],stack:[4,7],stage:3,stagger:1,standard:[1,3,4,7,8,9],stanford:5,start:[0,4,5,7,9],statement:7,stationari:3,statist:8,statu:5,std:7,step:[0,3,4,5,6,7],step_siz:5,stephen:5,sting:1,stochast:5,stop:[5,6,7],store:[0,1,5],store_output:1,str:[1,4,5,6,7,9],strategi:5,strict:9,strictli:5,stride:1,string:[1,4,5,6,7,8,9],stripe:7,strong_convexity_const:[5,6],strongli:[5,6],structur:5,style:[0,7],sub:6,subclass:[1,4,5],subject:5,submodul:0,subplot:9,subproblem:5,subsequ:5,subset:5,substitut:9,subtract:[1,5],suffici:3,suit:3,suitabl:[0,7],sum:[1,5],sum_:5,sumfunct:5,sumscalarfunct:5,sup:[5,6],support:[5,7],suppress:[0,1,5,6,7,8,9],suppress_evalu:5,sure:[0,5],swap:5,symmetr:[5,7],symmetrisedgradientoper:5,sync:5,synchrotron:3,synchrotron_parallel_beam_data:9,syntax:0,system:[1,2,3,5],system_descript:0,tabul:5,take:[1,4,5,7,8],target:[0,7],task:6,tau:[5,6],tau_:5,team:9,teboul:5,techniqu:[3,5],tempor:[5,6],temporari:8,temporarili:9,term:[3,5,6],test:[0,2,3,5],testdata:9,text:[0,4,5],textbf:5,tgv:6,than:[4,5,6,7,8],thei:[0,1,5,7,9],them:[4,5,9],theme:0,theoret:7,theori:9,therefor:[1,5,6],theta:5,theta_:5,thi:[0,1,3,4,5,6,7,8,9],thieleman:5,thoma:5,those:1,thread:[1,5],three:[3,5],threshold:[5,7],threshold_factor:7,threshold_valu:7,through:[4,9],tiff:[2,9],tiffstackread:4,tiffwrit:4,tigr:[1,2,3,7,8],tikhonov:[3,5],tild:[3,5],time:[0,3,5,8,9],tip:5,titl:9,tmp:5,tmp_nexu:4,tnv:6,tofil:4,togeth:[4,7],toggl:5,toler:[5,6,7],tomograph:[1,2,5],tomographi:[2,5,8],tomographicimag:[0,2],tomophantom:[2,3],toni:5,too:8,tool:3,toolbox:[6,8],toolkit:[3,6],top:[1,9],tort:9,tot_slic:0,total:[0,2],totalvari:[5,6],tqdm:0,trade:5,trajectori:[3,6],tran:2,transact:5,transform:8,translat:[5,7],translatefunct:5,transmiss:[2,3],transmissionabsorptionconvert:7,transpos:[4,5],treat:5,trigger:5,trivial:2,truedivis:5,tune:[7,8],tupl:[1,4,5,7,9],turner:5,two:[1,5,7,8,9],txm:4,txrm:4,type:[0,1,3,4,5,6,7,8,9],typic:[3,5],uint16:4,uint8:4,unari:[1,5],unary_oper:[1,5],unbin:7,unchang:5,uncompress:4,under:[0,5],underbrac:5,underscor:0,underset:[3,5,6],understand:0,unexpect:9,uniform:[1,9],uniqu:[1,9],unit16:4,unit:[0,1,5],univers:0,unknown:[3,5],unless:[0,7],unmask:7,unpack:4,unreli:7,unsign:[4,9],until:5,updat:[0,5,7,8],update_object:5,update_objective_interv:5,update_previous_solut:5,update_step_s:5,upper:[5,7,9],url:5,usag:[5,6,7],use:[0,1,2,3,5,6,7,8,9],used:[0,1,2,3,4,5,6,7,8,9],useful:[1,2,5],user:[0,1,3,5,7,8],uses:[5,6,7,9],using:[0,1,3,4,5,6,7,8,9],util:[2,3,5,8],vai:5,valid:9,valu:[1,4,5,6,7,8,9],valueerror:[0,5],vararg:5,variabl:5,varianc:9,variat:2,variou:9,vaue:7,vector:[1,5,7],vectordata:2,verbos:[0,5,8],verbose_output:5,veri:5,versatil:[2,5],version:[0,5,6],vertic:[1,4,7],view:[0,1,3,9],view_dist:9,vision:5,visualis:2,vmatrix:[3,5],volum:[0,1,2,4,5,6,7,8],voxel:[5,6],voxel_num_i:1,voxel_num_x:1,voxel_num_z:1,voxel_size_i:1,voxel_size_x:[1,6],voxel_size_z:1,wai:[0,1,5,9],want:[1,5],warm:5,warm_start:5,warn:7,warr:5,warranti:[0,4,9],weak:5,web:5,websit:2,weight:[5,6],weightedl2normsquar:5,well:[2,3,5],were:7,what:[0,4,5],when:[0,3,4,5,6,9],where:[1,3,5,7,9],wherea:5,whether:[1,4,5,6,9],which:[1,3,4,5,7,9],whichev:[1,8],white:4,white_level:7,widget:9,width:[7,8,9],william:5,window:7,wise:[1,5],wither:5,within:0,without:[0,4,5,7,9],wname:7,word:0,work:[0,1,3,4,5],would:[4,5],wrap:[5,7],wright:5,write:[0,2,3,5],writer:[2,3],written:[3,4,5,6,9],wrt:5,www:0,x_1:5,x_axis_label:9,x_i:5,x_n:5,x_old:5,xcorrel:7,xiaoqun:5,xin:5,xremovestripesvert:7,xshape:5,xtekct:4,y_axis_label:9,year:0,yet:5,yield:[5,8],yml:0,you:[0,2,4,7],your:[0,6,7,8],yyyi:0,zeiss:2,zeissdataread:4,zero:[1,5,7],zerofunct:5,zerooper:5,zhang:5,zhu:5},titles:["Developers\u2019 Guide","Framework","Welcome to CIL\u2019s documentation!","Introduction","Read/ write AcquisitionData and ImageData","Optimisation framework","CIL Plugins","Processors","Recon","Utilities"],titleterms:{"class":5,"function":[5,6],"new":0,Use:1,absorpt:7,acquisitiondata:[1,4],acquisitiongeometri:1,algorithm:5,analyt:8,astra:6,base:5,beam:[3,8],binner:7,block:[3,5],blockdatacontain:[1,5],blockgeometri:1,box:5,build:0,ccpi:6,centr:7,cgl:5,channel:3,cil:[0,2,6],cite:2,composit:5,cone2d:1,cone3d:1,cone:[3,8],configur:1,contact:2,contain:1,content:2,contribut:0,convent:0,convert:7,corrector:7,creator:0,data:[1,3,7,9],datacontain:1,dataord:1,dataprocessor:1,dataset:9,demo:2,develop:0,diamond:9,displai:9,docstr:0,document:[0,2],exampl:[0,2],fan:3,fanbeam:1,fbp:[6,8],fdk:8,file:4,fista:5,framework:[1,3,5],from:[0,7,9],gener:7,geometri:[1,3,8,9],gradientoper:5,guid:0,guidelin:0,hdf5:4,imag:9,imagedata:[1,4],imagegeometri:1,index:[2,9],indic:5,interact:9,introduct:3,islic:9,ista:5,kullbackleibl:5,l11:5,l21:5,ladmm:5,least:5,light:9,link:9,link_islic:9,local:0,manipul:7,mask:7,method:0,metric:9,mix:5,multi:3,nexu:4,nikon:4,norm:5,normalis:7,object:[0,9],oper:[5,6],optimis:5,other:[0,6],padder:7,parallel2d:1,parallel3d:1,parallel:[3,8],pdhg:5,plugin:6,pre:7,processor:7,project:6,properti:0,qualiti:9,raw:4,read:4,reader:4,recon:8,reconstruct:8,reconstructor:8,refer:5,regularis:6,remov:7,render:0,ring:7,rotat:7,set:9,setter:0,show1d:9,show2d:9,show_geometri:9,simpl:5,simul:9,sirt:5,slice:9,slicer:7,smooth:5,softwar:2,sourc:[0,9],spdhg:5,squar:5,system:9,test:9,thi:2,tiff:4,tigr:6,todo:5,tomophantom:6,total:[5,6],transmiss:7,trivial:5,util:[4,9],variat:[5,6],vectordata:1,visualis:9,volum:9,welcom:2,work:2,write:4,writer:4,zeiss:4}}) \ No newline at end of file +Search.setIndex({docnames:["developer_guide","framework","index","introduction","io","optimisation","plugins","processors","recon","utilities"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,"sphinxcontrib.bibtex":9,sphinx:56},filenames:["developer_guide.rst","framework.rst","index.rst","introduction.rst","io.rst","optimisation.rst","plugins.rst","processors.rst","recon.rst","utilities.rst"],objects:{"cil.framework":{AcquisitionData:[1,0,1,""],AcquisitionGeometry:[1,0,1,""],BlockDataContainer:[5,0,1,""],BlockGeometry:[1,0,1,""],DataContainer:[1,0,1,""],DataOrder:[1,0,1,""],DataProcessor:[1,0,1,""],ImageData:[1,0,1,""],ImageGeometry:[1,0,1,""],Processor:[1,0,1,""],VectorData:[1,0,1,""]},"cil.framework.AcquisitionData":{as_array:[1,1,1,""],clone:[1,1,1,""],copy:[1,1,1,""],dot:[1,1,1,""],dtype:[1,1,1,""],exp:[1,1,1,""],fill:[1,1,1,""],get_data_axes_order:[1,1,1,""],get_slice:[1,1,1,""],log:[1,1,1,""],max:[1,1,1,""],mean:[1,1,1,""],min:[1,1,1,""],ndim:[1,1,1,""],norm:[1,1,1,""],number_of_dimensions:[1,1,1,""],partition:[1,1,1,""],reorder:[1,1,1,""],sapyb:[1,1,1,""],shape:[1,1,1,""],size:[1,1,1,""],squared_norm:[1,1,1,""]},"cil.framework.AcquisitionGeometry":{allocate:[1,1,1,""],create_Cone2D:[1,1,1,""],create_Cone3D:[1,1,1,""],create_Parallel2D:[1,1,1,""],create_Parallel3D:[1,1,1,""],get_ImageGeometry:[1,1,1,""],get_slice:[1,1,1,""],set_angles:[1,1,1,""],set_channels:[1,1,1,""],set_labels:[1,1,1,""],set_panel:[1,1,1,""]},"cil.framework.BlockDataContainer":{__iadd__:[5,1,1,""],__idiv__:[5,1,1,""],__imul__:[5,1,1,""],__isub__:[5,1,1,""],__iter__:[5,1,1,""],__itruediv__:[5,1,1,""],__neg__:[5,1,1,""],__radd__:[5,1,1,""],__rdiv__:[5,1,1,""],__rmul__:[5,1,1,""],__rpow__:[5,1,1,""],__rsub__:[5,1,1,""],__rtruediv__:[5,1,1,""],__weakref__:[5,2,1,""],add:[5,1,1,""],axpby:[5,1,1,""],binary_operations:[5,1,1,""],copy:[5,1,1,""],divide:[5,1,1,""],is_compatible:[5,1,1,""],maximum:[5,1,1,""],minimum:[5,1,1,""],multiply:[5,1,1,""],next:[5,1,1,""],power:[5,1,1,""],sapyb:[5,1,1,""],subtract:[5,1,1,""],unary_operations:[5,1,1,""]},"cil.framework.BlockGeometry":{allocate:[1,1,1,""],get_item:[1,1,1,""]},"cil.framework.DataContainer":{as_array:[1,1,1,""],clone:[1,1,1,""],copy:[1,1,1,""],dot:[1,1,1,""],dtype:[1,1,1,""],exp:[1,1,1,""],fill:[1,1,1,""],get_data_axes_order:[1,1,1,""],get_slice:[1,1,1,""],log:[1,1,1,""],max:[1,1,1,""],mean:[1,1,1,""],min:[1,1,1,""],ndim:[1,1,1,""],norm:[1,1,1,""],number_of_dimensions:[1,1,1,""],reorder:[1,1,1,""],sapyb:[1,1,1,""],shape:[1,1,1,""],size:[1,1,1,""],squared_norm:[1,1,1,""]},"cil.framework.DataProcessor":{check_input:[1,1,1,""],get_input:[1,1,1,""],get_output:[1,1,1,""],set_input:[1,1,1,""]},"cil.framework.ImageData":{apply_circular_mask:[1,1,1,""],as_array:[1,1,1,""],clone:[1,1,1,""],copy:[1,1,1,""],dot:[1,1,1,""],dtype:[1,1,1,""],exp:[1,1,1,""],fill:[1,1,1,""],get_data_axes_order:[1,1,1,""],get_slice:[1,1,1,""],log:[1,1,1,""],max:[1,1,1,""],mean:[1,1,1,""],min:[1,1,1,""],ndim:[1,1,1,""],norm:[1,1,1,""],number_of_dimensions:[1,1,1,""],reorder:[1,1,1,""],sapyb:[1,1,1,""],shape:[1,1,1,""],size:[1,1,1,""],squared_norm:[1,1,1,""]},"cil.framework.ImageGeometry":{allocate:[1,1,1,""],clone:[1,1,1,""],copy:[1,1,1,""],get_slice:[1,1,1,""]},"cil.framework.Processor":{check_input:[1,1,1,""],get_input:[1,1,1,""],get_output:[1,1,1,""],set_input:[1,1,1,""]},"cil.framework.VectorData":{as_array:[1,1,1,""],clone:[1,1,1,""],copy:[1,1,1,""],dot:[1,1,1,""],dtype:[1,1,1,""],exp:[1,1,1,""],fill:[1,1,1,""],get_data_axes_order:[1,1,1,""],get_slice:[1,1,1,""],log:[1,1,1,""],max:[1,1,1,""],mean:[1,1,1,""],min:[1,1,1,""],ndim:[1,1,1,""],norm:[1,1,1,""],number_of_dimensions:[1,1,1,""],reorder:[1,1,1,""],sapyb:[1,1,1,""],shape:[1,1,1,""],size:[1,1,1,""],squared_norm:[1,1,1,""]},"cil.io":{NEXUSDataReader:[4,0,1,""],NEXUSDataWriter:[4,0,1,""],NikonDataReader:[4,0,1,""],RAWFileWriter:[4,0,1,""],TIFFStackReader:[4,0,1,""],TIFFWriter:[4,0,1,""],ZEISSDataReader:[4,0,1,""]},"cil.io.NEXUSDataReader":{get_data_offset:[4,1,1,""],get_data_scale:[4,1,1,""],get_geometry:[4,1,1,""],load_data:[4,1,1,""],read:[4,1,1,""],read_as_original:[4,1,1,""],set_up:[4,1,1,""]},"cil.io.NEXUSDataWriter":{set_up:[4,1,1,""],write:[4,1,1,""]},"cil.io.NikonDataReader":{get_geometry:[4,1,1,""],get_roi:[4,1,1,""],load_projections:[4,1,1,""],read:[4,1,1,""]},"cil.io.RAWFileWriter":{write:[4,1,1,""]},"cil.io.TIFFStackReader":{read:[4,1,1,""],read_as_AcquisitionData:[4,1,1,""],read_as_ImageData:[4,1,1,""],read_rescaled:[4,1,1,""],read_scale_offset:[4,1,1,""]},"cil.io.TIFFWriter":{write:[4,1,1,""]},"cil.io.ZEISSDataReader":{get_geometry:[4,1,1,""],get_metadata:[4,1,1,""],read:[4,1,1,""],set_up:[4,1,1,""],slice_metadata:[4,1,1,""]},"cil.io.utilities":{HDF5_utilities:[4,0,1,""]},"cil.io.utilities.HDF5_utilities":{get_dataset_metadata:[4,1,1,""],print_metadata:[4,1,1,""],read:[4,1,1,""],read_to:[4,1,1,""]},"cil.optimisation.algorithms":{Algorithm:[5,0,1,""],CGLS:[5,0,1,""],FISTA:[5,0,1,""],GD:[5,0,1,""],ISTA:[5,0,1,""],LADMM:[5,0,1,""],PDHG:[5,0,1,""],SIRT:[5,0,1,""],SPDHG:[5,0,1,""]},"cil.optimisation.algorithms.Algorithm":{__init__:[5,1,1,""],__iter__:[5,1,1,""],__next__:[5,1,1,""],__set_up_logger:[5,1,1,""],__weakref__:[5,2,1,""],_update_previous_solution:[5,1,1,""],get_last_loss:[5,1,1,""],get_last_objective:[5,1,1,""],get_output:[5,1,1,""],is_provably_convergent:[5,1,1,""],iterations:[5,1,1,""],loss:[5,1,1,""],max_iteration:[5,1,1,""],max_iteration_stop_criterion:[5,1,1,""],next:[5,1,1,""],objective:[5,1,1,""],run:[5,1,1,""],set_up:[5,1,1,""],should_stop:[5,1,1,""],update:[5,1,1,""],update_objective:[5,1,1,""],verbose_output:[5,1,1,""]},"cil.optimisation.algorithms.CGLS":{flag:[5,1,1,""],get_last_loss:[5,1,1,""],get_last_objective:[5,1,1,""],get_output:[5,1,1,""],is_provably_convergent:[5,1,1,""],iterations:[5,1,1,""],loss:[5,1,1,""],max_iteration:[5,1,1,""],max_iteration_stop_criterion:[5,1,1,""],next:[5,1,1,""],objective:[5,1,1,""],run:[5,1,1,""],set_up:[5,1,1,""],should_stop:[5,1,1,""],update:[5,1,1,""],update_objective:[5,1,1,""],verbose_output:[5,1,1,""]},"cil.optimisation.algorithms.FISTA":{__delattr__:[5,1,1,""],__dir__:[5,1,1,""],__eq__:[5,1,1,""],__format__:[5,1,1,""],__ge__:[5,1,1,""],__getattribute__:[5,1,1,""],__gt__:[5,1,1,""],__hash__:[5,1,1,""],__init__:[5,1,1,""],__init_subclass__:[5,1,1,""],__iter__:[5,1,1,""],__le__:[5,1,1,""],__lt__:[5,1,1,""],__ne__:[5,1,1,""],__new__:[5,1,1,""],__next__:[5,1,1,""],__reduce__:[5,1,1,""],__reduce_ex__:[5,1,1,""],__repr__:[5,1,1,""],__setattr__:[5,1,1,""],__sizeof__:[5,1,1,""],__str__:[5,1,1,""],__subclasshook__:[5,1,1,""],__weakref__:[5,2,1,""],get_last_loss:[5,1,1,""],get_last_objective:[5,1,1,""],get_output:[5,1,1,""],is_provably_convergent:[5,1,1,""],iterations:[5,1,1,""],loss:[5,1,1,""],max_iteration:[5,1,1,""],max_iteration_stop_criterion:[5,1,1,""],next:[5,1,1,""],objective:[5,1,1,""],run:[5,1,1,""],set_step_size:[5,1,1,""],set_up:[5,1,1,""],should_stop:[5,1,1,""],update:[5,1,1,""],update_objective:[5,1,1,""],verbose_output:[5,1,1,""]},"cil.optimisation.algorithms.GD":{armijo_rule:[5,1,1,""],get_last_loss:[5,1,1,""],get_last_objective:[5,1,1,""],get_output:[5,1,1,""],is_provably_convergent:[5,1,1,""],iterations:[5,1,1,""],loss:[5,1,1,""],max_iteration:[5,1,1,""],max_iteration_stop_criterion:[5,1,1,""],next:[5,1,1,""],objective:[5,1,1,""],run:[5,1,1,""],set_up:[5,1,1,""],should_stop:[5,1,1,""],update:[5,1,1,""],update_objective:[5,1,1,""],verbose_output:[5,1,1,""]},"cil.optimisation.algorithms.ISTA":{__delattr__:[5,1,1,""],__dir__:[5,1,1,""],__eq__:[5,1,1,""],__format__:[5,1,1,""],__ge__:[5,1,1,""],__getattribute__:[5,1,1,""],__gt__:[5,1,1,""],__hash__:[5,1,1,""],__init__:[5,1,1,""],__init_subclass__:[5,1,1,""],__iter__:[5,1,1,""],__le__:[5,1,1,""],__lt__:[5,1,1,""],__ne__:[5,1,1,""],__new__:[5,1,1,""],__next__:[5,1,1,""],__reduce__:[5,1,1,""],__reduce_ex__:[5,1,1,""],__repr__:[5,1,1,""],__setattr__:[5,1,1,""],__sizeof__:[5,1,1,""],__str__:[5,1,1,""],__subclasshook__:[5,1,1,""],__weakref__:[5,2,1,""],get_last_loss:[5,1,1,""],get_last_objective:[5,1,1,""],get_output:[5,1,1,""],is_provably_convergent:[5,1,1,""],iterations:[5,1,1,""],loss:[5,1,1,""],max_iteration:[5,1,1,""],max_iteration_stop_criterion:[5,1,1,""],next:[5,1,1,""],objective:[5,1,1,""],run:[5,1,1,""],set_step_size:[5,1,1,""],set_up:[5,1,1,""],should_stop:[5,1,1,""],update:[5,1,1,""],update_objective:[5,1,1,""],verbose_output:[5,1,1,""]},"cil.optimisation.algorithms.LADMM":{get_last_loss:[5,1,1,""],get_last_objective:[5,1,1,""],get_output:[5,1,1,""],is_provably_convergent:[5,1,1,""],iterations:[5,1,1,""],loss:[5,1,1,""],max_iteration:[5,1,1,""],max_iteration_stop_criterion:[5,1,1,""],next:[5,1,1,""],objective:[5,1,1,""],run:[5,1,1,""],set_up:[5,1,1,""],should_stop:[5,1,1,""],update:[5,1,1,""],update_objective:[5,1,1,""],verbose_output:[5,1,1,""]},"cil.optimisation.algorithms.PDHG":{check_convergence:[5,1,1,""],get_last_loss:[5,1,1,""],get_last_objective:[5,1,1,""],get_output:[5,1,1,""],is_provably_convergent:[5,1,1,""],iterations:[5,1,1,""],loss:[5,1,1,""],max_iteration:[5,1,1,""],max_iteration_stop_criterion:[5,1,1,""],next:[5,1,1,""],objective:[5,1,1,""],run:[5,1,1,""],set_gamma_fconj:[5,1,1,""],set_gamma_g:[5,1,1,""],set_step_sizes:[5,1,1,""],set_up:[5,1,1,""],should_stop:[5,1,1,""],update:[5,1,1,""],update_objective:[5,1,1,""],update_step_sizes:[5,1,1,""],verbose_output:[5,1,1,""]},"cil.optimisation.algorithms.SIRT":{get_last_loss:[5,1,1,""],get_last_objective:[5,1,1,""],get_output:[5,1,1,""],is_provably_convergent:[5,1,1,""],iterations:[5,1,1,""],loss:[5,1,1,""],max_iteration:[5,1,1,""],max_iteration_stop_criterion:[5,1,1,""],next:[5,1,1,""],objective:[5,1,1,""],run:[5,1,1,""],set_relaxation_parameter:[5,1,1,""],set_up:[5,1,1,""],should_stop:[5,1,1,""],update:[5,1,1,""],update_objective:[5,1,1,""],verbose_output:[5,1,1,""]},"cil.optimisation.algorithms.SPDHG":{get_last_loss:[5,1,1,""],get_last_objective:[5,1,1,""],get_output:[5,1,1,""],is_provably_convergent:[5,1,1,""],iterations:[5,1,1,""],loss:[5,1,1,""],max_iteration:[5,1,1,""],max_iteration_stop_criterion:[5,1,1,""],next:[5,1,1,""],objective:[5,1,1,""],run:[5,1,1,""],set_up:[5,1,1,""],should_stop:[5,1,1,""],update:[5,1,1,""],update_objective:[5,1,1,""],verbose_output:[5,1,1,""]},"cil.optimisation.functions":{BlockFunction:[5,0,1,""],ConstantFunction:[5,0,1,""],Function:[5,0,1,""],IndicatorBox:[5,0,1,""],KullbackLeibler:[5,0,1,""],L1Norm:[5,0,1,""],L2NormSquared:[5,0,1,""],LeastSquares:[5,0,1,""],MixedL11Norm:[5,0,1,""],MixedL21Norm:[5,0,1,""],OperatorCompositionFunction:[5,0,1,""],Rosenbrock:[5,0,1,""],ScaledFunction:[5,0,1,""],SmoothMixedL21Norm:[5,0,1,""],SumFunction:[5,0,1,""],SumScalarFunction:[5,0,1,""],TotalVariation:[5,0,1,""],TranslateFunction:[5,0,1,""],WeightedL2NormSquared:[5,0,1,""],ZeroFunction:[5,0,1,""]},"cil.optimisation.functions.BlockFunction":{L:[5,1,1,""],__call__:[5,1,1,""],__init__:[5,1,1,""],__rmul__:[5,1,1,""],convex_conjugate:[5,1,1,""],gradient:[5,1,1,""],proximal:[5,1,1,""],proximal_conjugate:[5,1,1,""]},"cil.optimisation.functions.ConstantFunction":{L:[5,1,1,""],__call__:[5,1,1,""],__init__:[5,1,1,""],__rmul__:[5,1,1,""],convex_conjugate:[5,1,1,""],gradient:[5,1,1,""],proximal:[5,1,1,""]},"cil.optimisation.functions.Function":{L:[5,1,1,""],__add__:[5,1,1,""],__call__:[5,1,1,""],__init__:[5,1,1,""],__radd__:[5,1,1,""],__rmul__:[5,1,1,""],__sub__:[5,1,1,""],__weakref__:[5,2,1,""],centered_at:[5,1,1,""],convex_conjugate:[5,1,1,""],gradient:[5,1,1,""],proximal:[5,1,1,""],proximal_conjugate:[5,1,1,""]},"cil.optimisation.functions.IndicatorBox":{__call__:[5,1,1,""],__init__:[5,1,1,""],__new__:[5,1,1,""],gradient:[5,1,1,""],num_threads:[5,1,1,""],proximal:[5,1,1,""],set_num_threads:[5,1,1,""],set_suppress_evaluation:[5,1,1,""]},"cil.optimisation.functions.KullbackLeibler":{__init__:[5,1,1,""],__new__:[5,1,1,""]},"cil.optimisation.functions.L1Norm":{__call__:[5,1,1,""],__init__:[5,1,1,""],convex_conjugate:[5,1,1,""],proximal:[5,1,1,""]},"cil.optimisation.functions.L2NormSquared":{__call__:[5,1,1,""],__init__:[5,1,1,""],convex_conjugate:[5,1,1,""],gradient:[5,1,1,""],proximal:[5,1,1,""]},"cil.optimisation.functions.LeastSquares":{L:[5,1,1,""],__call__:[5,1,1,""],__init__:[5,1,1,""],__rmul__:[5,1,1,""],gradient:[5,1,1,""]},"cil.optimisation.functions.MixedL11Norm":{__call__:[5,1,1,""],__init__:[5,1,1,""],proximal:[5,1,1,""]},"cil.optimisation.functions.MixedL21Norm":{__call__:[5,1,1,""],__init__:[5,1,1,""],convex_conjugate:[5,1,1,""],proximal:[5,1,1,""]},"cil.optimisation.functions.OperatorCompositionFunction":{L:[5,1,1,""],__call__:[5,1,1,""],__init__:[5,1,1,""],gradient:[5,1,1,""]},"cil.optimisation.functions.Rosenbrock":{__call__:[5,1,1,""],__init__:[5,1,1,""],gradient:[5,1,1,""]},"cil.optimisation.functions.ScaledFunction":{L:[5,1,1,""],__call__:[5,1,1,""],__init__:[5,1,1,""],convex_conjugate:[5,1,1,""],gradient:[5,1,1,""],proximal:[5,1,1,""],proximal_conjugate:[5,1,1,""]},"cil.optimisation.functions.SmoothMixedL21Norm":{__call__:[5,1,1,""],__init__:[5,1,1,""],gradient:[5,1,1,""]},"cil.optimisation.functions.SumFunction":{L:[5,1,1,""],Lmax:[5,1,1,""],__add__:[5,1,1,""],__call__:[5,1,1,""],__init__:[5,1,1,""],gradient:[5,1,1,""]},"cil.optimisation.functions.SumScalarFunction":{L:[5,1,1,""],__init__:[5,1,1,""],convex_conjugate:[5,1,1,""],proximal:[5,1,1,""]},"cil.optimisation.functions.TotalVariation":{__call__:[5,1,1,""],__init__:[5,1,1,""],__rmul__:[5,1,1,""],calculate_Lipschitz:[5,1,1,""],convex_conjugate:[5,1,1,""],gradient:[5,1,1,""],proximal:[5,1,1,""]},"cil.optimisation.functions.TranslateFunction":{__call__:[5,1,1,""],__init__:[5,1,1,""],convex_conjugate:[5,1,1,""],gradient:[5,1,1,""],proximal:[5,1,1,""]},"cil.optimisation.functions.WeightedL2NormSquared":{__call__:[5,1,1,""],__init__:[5,1,1,""],convex_conjugate:[5,1,1,""],gradient:[5,1,1,""],proximal:[5,1,1,""]},"cil.optimisation.functions.ZeroFunction":{__init__:[5,1,1,""]},"cil.optimisation.operators":{BlockOperator:[5,0,1,""],ChannelwiseOperator:[5,0,1,""],CompositionOperator:[5,0,1,""],DiagonalOperator:[5,0,1,""],FiniteDifferenceOperator:[5,0,1,""],GradientOperator:[5,0,1,""],IdentityOperator:[5,0,1,""],LinearOperator:[5,0,1,""],MaskOperator:[5,0,1,""],MatrixOperator:[5,0,1,""],Operator:[5,0,1,""],ScaledOperator:[5,0,1,""],SparseFiniteDifferenceOperator:[5,0,1,""],SymmetrisedGradientOperator:[5,0,1,""],ZeroOperator:[5,0,1,""]},"cil.optimisation.operators.BlockOperator":{T:[5,1,1,""],__getitem__:[5,1,1,""],__init__:[5,1,1,""],__rmul__:[5,1,1,""],adjoint:[5,1,1,""],column_wise_compatible:[5,1,1,""],direct:[5,1,1,""],domain_geometry:[5,1,1,""],get_as_list:[5,1,1,""],get_item:[5,1,1,""],get_output_shape:[5,1,1,""],is_linear:[5,1,1,""],norm:[5,1,1,""],range_geometry:[5,1,1,""],row_wise_compatible:[5,1,1,""]},"cil.optimisation.operators.ChannelwiseOperator":{__init__:[5,1,1,""],adjoint:[5,1,1,""],calculate_norm:[5,1,1,""],direct:[5,1,1,""]},"cil.optimisation.operators.CompositionOperator":{__init__:[5,1,1,""],calculate_norm:[5,1,1,""],direct:[5,1,1,""],is_linear:[5,1,1,""]},"cil.optimisation.operators.DiagonalOperator":{__init__:[5,1,1,""],adjoint:[5,1,1,""],calculate_norm:[5,1,1,""],direct:[5,1,1,""]},"cil.optimisation.operators.FiniteDifferenceOperator":{adjoint:[5,1,1,""],direct:[5,1,1,""]},"cil.optimisation.operators.GradientOperator":{adjoint:[5,1,1,""],calculate_norm:[5,1,1,""],direct:[5,1,1,""]},"cil.optimisation.operators.IdentityOperator":{__init__:[5,1,1,""],adjoint:[5,1,1,""],calculate_norm:[5,1,1,""],direct:[5,1,1,""]},"cil.optimisation.operators.LinearOperator":{PowerMethod:[5,1,1,""],__init__:[5,1,1,""],adjoint:[5,1,1,""],calculate_norm:[5,1,1,""],dot_test:[5,1,1,""],is_linear:[5,1,1,""]},"cil.optimisation.operators.MaskOperator":{__init__:[5,1,1,""]},"cil.optimisation.operators.MatrixOperator":{__init__:[5,1,1,""],adjoint:[5,1,1,""],direct:[5,1,1,""]},"cil.optimisation.operators.Operator":{__init__:[5,1,1,""],__neg__:[5,1,1,""],__rmul__:[5,1,1,""],__sub__:[5,1,1,""],__weakref__:[5,2,1,""],calculate_norm:[5,1,1,""],direct:[5,1,1,""],domain_geometry:[5,1,1,""],is_linear:[5,1,1,""],norm:[5,1,1,""],range_geometry:[5,1,1,""],set_norm:[5,1,1,""]},"cil.optimisation.operators.ScaledOperator":{__init__:[5,1,1,""],adjoint:[5,1,1,""],direct:[5,1,1,""],is_linear:[5,1,1,""],norm:[5,1,1,""]},"cil.optimisation.operators.SparseFiniteDifferenceOperator":{direct:[5,1,1,""]},"cil.optimisation.operators.SymmetrisedGradientOperator":{adjoint:[5,1,1,""],direct:[5,1,1,""]},"cil.optimisation.operators.ZeroOperator":{__init__:[5,1,1,""],adjoint:[5,1,1,""],calculate_norm:[5,1,1,""],direct:[5,1,1,""]},"cil.plugins.TomoPhantom":{get_ImageData:[6,3,1,""]},"cil.plugins.astra":{FBP:[6,0,1,""],ProjectionOperator:[6,0,1,""]},"cil.plugins.astra.FBP":{get_output:[6,1,1,""],set_input:[6,1,1,""]},"cil.plugins.ccpi_regularisation.functions":{FGP_TV:[6,0,1,""],FGP_dTV:[6,0,1,""],TGV:[6,0,1,""],TNV:[6,0,1,""]},"cil.plugins.ccpi_regularisation.functions.FGP_dTV":{__call__:[6,1,1,""],__init__:[6,1,1,""],__rmul__:[6,1,1,""],convex_conjugate:[6,1,1,""]},"cil.plugins.ccpi_regularisation.functions.TGV":{__call__:[6,1,1,""],__init__:[6,1,1,""],__rmul__:[6,1,1,""],convex_conjugate:[6,1,1,""]},"cil.plugins.ccpi_regularisation.functions.TNV":{__call__:[6,1,1,""],__init__:[6,1,1,""],__rmul__:[6,1,1,""],check_input:[6,1,1,""],convex_conjugate:[6,1,1,""]},"cil.plugins.tigre":{FBP:[6,0,1,""],ProjectionOperator:[6,0,1,""]},"cil.plugins.tigre.FBP":{get_output:[6,1,1,""],set_input:[6,1,1,""]},"cil.processors":{AbsorptionTransmissionConverter:[7,0,1,""],Binner:[7,0,1,""],CentreOfRotationCorrector:[7,0,1,""],MaskGenerator:[7,0,1,""],Masker:[7,0,1,""],Normaliser:[7,0,1,""],Padder:[7,0,1,""],RingRemover:[7,0,1,""],Slicer:[7,0,1,""],TransmissionAbsorptionConverter:[7,0,1,""]},"cil.processors.AbsorptionTransmissionConverter":{get_output:[7,1,1,""],set_input:[7,1,1,""]},"cil.processors.Binner":{get_output:[7,1,1,""],process:[7,1,1,""],set_input:[7,1,1,""]},"cil.processors.CentreOfRotationCorrector":{get_output:[7,1,1,""],image_sharpness:[7,1,1,""],set_input:[7,1,1,""],xcorrelation:[7,1,1,""]},"cil.processors.MaskGenerator":{get_output:[7,1,1,""],mean:[7,1,1,""],median:[7,1,1,""],quantile:[7,1,1,""],set_input:[7,1,1,""],special_values:[7,1,1,""],threshold:[7,1,1,""]},"cil.processors.Masker":{get_output:[7,1,1,""],interpolate:[7,1,1,""],mean:[7,1,1,""],median:[7,1,1,""],set_input:[7,1,1,""],value:[7,1,1,""]},"cil.processors.Normaliser":{estimate_normalised_error:[7,1,1,""],get_output:[7,1,1,""],set_input:[7,1,1,""]},"cil.processors.Padder":{constant:[7,1,1,""],edge:[7,1,1,""],get_output:[7,1,1,""],linear_ramp:[7,1,1,""],reflect:[7,1,1,""],set_input:[7,1,1,""],symmetric:[7,1,1,""],wrap:[7,1,1,""]},"cil.processors.RingRemover":{get_output:[7,1,1,""],set_input:[7,1,1,""],xRemoveStripesVertical:[7,1,1,""]},"cil.processors.Slicer":{get_output:[7,1,1,""],process:[7,1,1,""],set_input:[7,1,1,""]},"cil.processors.TransmissionAbsorptionConverter":{get_output:[7,1,1,""],set_input:[7,1,1,""]},"cil.recon":{FBP:[8,0,1,""],FDK:[8,0,1,""]},"cil.recon.FBP":{get_filter_array:[8,1,1,""],reset:[8,1,1,""],run:[8,1,1,""],set_fft_order:[8,1,1,""],set_filter:[8,1,1,""],set_filter_inplace:[8,1,1,""],set_image_geometry:[8,1,1,""],set_input:[8,1,1,""],set_split_processing:[8,1,1,""]},"cil.recon.FBP.FBP":{run:[0,1,1,""]},"cil.recon.FDK":{get_filter_array:[8,1,1,""],reset:[8,1,1,""],run:[8,1,1,""],set_fft_order:[8,1,1,""],set_filter:[8,1,1,""],set_filter_inplace:[8,1,1,""],set_image_geometry:[8,1,1,""],set_input:[8,1,1,""]},"cil.utilities":{quality_measures:[9,4,0,"-"]},"cil.utilities.dataexample":{SIMULATED_CONE_BEAM_DATA:[9,0,1,"id0"],SIMULATED_PARALLEL_BEAM_DATA:[9,0,1,""],SYNCHROTRON_PARALLEL_BEAM_DATA:[9,0,1,""],TestData:[9,0,1,""]},"cil.utilities.dataexample.SIMULATED_CONE_BEAM_DATA":{get:[9,1,1,"id1"]},"cil.utilities.dataexample.SIMULATED_PARALLEL_BEAM_DATA":{get:[9,1,1,""]},"cil.utilities.dataexample.SYNCHROTRON_PARALLEL_BEAM_DATA":{get:[9,1,1,""]},"cil.utilities.dataexample.TestData":{load:[9,1,1,""],random_noise:[9,1,1,""],scikit_random_noise:[9,1,1,""]},"cil.utilities.display":{show1D:[9,0,1,""],show2D:[9,0,1,""],show_geometry:[9,0,1,""]},"cil.utilities.display.show1D":{figure:[9,2,1,""],save:[9,1,1,""]},"cil.utilities.display.show2D":{save:[9,1,1,""]},"cil.utilities.display.show_geometry":{save:[9,1,1,""]},"cil.utilities.jupyter":{islicer:[9,0,1,""],link_islicer:[9,0,1,""]},"cil.utilities.quality_measures":{mae:[9,3,1,""],mse:[9,3,1,""],psnr:[9,3,1,""]}},objnames:{"0":["py","class","Python class"],"1":["py","method","Python method"],"2":["py","attribute","Python attribute"],"3":["py","function","Python function"],"4":["py","module","Python module"]},objtypes:{"0":"py:class","1":"py:method","2":"py:attribute","3":"py:function","4":"py:module"},terms:{"0000654846240296":5,"0005647295658866":5,"00186":5,"003":6,"005":7,"008":5,"008567":7,"010":5,"018":5,"0192":[2,5],"0193":[2,5],"020":5,"0251":5,"025129":6,"055010":6,"080716542":5,"09076934x":5,"100":[4,5,6],"1007":5,"1015":5,"1016":6,"1046":5,"1088":6,"1098":[2,5],"1102995080":5,"1109":5,"1137":5,"120":[5,7],"128":[6,7],"1321":5,"1364":[6,7],"145":5,"180":7,"183":5,"1887":8,"1976":6,"200":[4,7],"2001":5,"2008":8,"2009":5,"2010":5,"2011":5,"2016":5,"2017":8,"2018":[5,6],"2019":[5,6,9],"202":5,"2020":[2,5],"20200192":[2,5],"20200193":[2,5],"2021":[2,5],"2022":0,"2028250":5,"2057":6,"20channel":5,"2204":5,"2419":5,"2434":5,"255":9,"256":9,"2783":5,"2808":5,"2_2":[3,5],"2beta":5,"2ca":5,"2pi":6,"2s1":5,"300":4,"360":6,"360deg":7,"377":5,"379":5,"381":5,"400":5,"430":5,"48289":8,"4t_":5,"500":9,"550":4,"7142857142857":4,"9225":5,"9780898719277":5,"9ntwu9megq":2,"abstract":5,"boolean":[1,5,6,7,8,9],"byte":5,"case":[1,4,5,7,9],"class":[0,1,2,4,6,7,8,9],"default":[0,1,4,5,6,7,8,9],"final":5,"float":[1,4,5,6,7,8,9],"function":[2,3,4,8,9],"import":[4,5,6,7,8,9],"int":[0,1,4,5,6,7,8,9],"j\u00f8rgensen":2,"long":[1,5],"new":[1,2,5],"return":[0,1,4,5,6,7,8,9],"richt\u00e1rik":5,"sch\u00f6nlieb":5,"static":[1,4,5,7,9],"true":[1,4,5,6,7,8,9],"try":1,"var":9,"while":[2,5],AND:9,ARE:9,BUT:9,DLS:9,FOR:9,For:[0,1,2,4,5,6,7,9],IDEs:0,NOT:9,One:[7,9],SUCH:9,THE:9,The:[0,1,2,3,4,5,6,7,8,9],Then:5,There:1,These:[4,7],USE:9,Use:[0,2,5,9],Used:9,Uses:7,Will:[1,9],With:[3,5],__add__:5,__array_priority__:5,__call__:[5,6],__delattr__:5,__dir__:5,__eq__:5,__format__:5,__ge__:5,__getattribute__:5,__getitem__:5,__gt__:5,__hash__:5,__iadd__:5,__idiv__:5,__imul__:5,__init__:[5,6],__init_subclass__:5,__isub__:5,__iter__:5,__itruediv__:5,__le__:5,__lt__:5,__mul__:5,__ne__:5,__neg__:5,__new__:5,__next__:5,__radd__:5,__rdiv__:5,__reduce__:5,__reduce_ex__:5,__repr__:5,__rmul__:[5,6],__rpow__:5,__rsub__:5,__rtruediv__:5,__set_up_logg:5,__setattr__:[1,5],__sizeof__:5,__str__:5,__sub__:5,__subclasscheck__:5,__subclasshook__:5,__weakref__:5,_as_gen:9,_dual:[5,6],_gradient:5,_po_class:0,_pre_filt:0,_process_chunk:0,_setup_po_for_chunk:0,_slices_per_chunk:0,_update_previous_solut:5,abc:5,abcmeta:5,abl:[3,5,6],about:[4,7],about_original_data:4,abov:[2,3,5,6,9],abs:[1,5,7],absolut:[5,7,9],absorpt:2,absorptiontransmissionconvert:7,abspath:4,acceler:[3,5,7],accept:[0,1,4,5,7],access:5,accord:1,accordingli:5,accur:[5,6,8],accuraci:7,achiev:[3,5,7],acquir:[3,5],acquisit:[1,2,3,4,5,6,8,9],acquisition_geometri:[0,4,6,9],acquisitiondata:[2,3,5,7,8,9],acquisitiondatasetn:7,acquisitiongeomerti:1,acquisitiongeometri:[2,3,4,5,6,7,9],acquisitionmodel:5,across:[6,7],act:5,activ:0,actor:[3,5],actual:[0,5],ad1:4,adapt:9,add:[0,1,5,6,9],added:[5,6],addit:[0,1,5,7,8,9],adher:0,adjoint:[0,5,6],adjoint_weight:6,adjust:4,admm:5,advanc:[0,3,5],advis:9,after:[5,7,9],ag1:4,against:9,agre:0,aim:2,algebr:[1,5],algebra:[1,5,8],algorithm:[2,3,6,7,8],alia:[1,4,5,9],align:[1,5,7],all:[0,1,4,5,6,7,8,9],alloc:[0,1,5,8],allow:[1,3,4,5,6,7,8,9],alon:9,along:[4,5,7,9],alpha:[3,5,6],alphabet:4,also:[0,2,3,4,5],altern:[4,5],although:5,alwai:[4,5],ametova:5,amir:5,amount:[3,5,9],analyt:[2,5],ang_tol:7,angl:[1,4,6,7],angle_unit:[1,6],angular:[1,6,7],ani:[0,3,5,6,9],anisotrop:[5,6],anoth:5,antonin:5,aop:5,apach:0,apart:7,api:9,appear:7,append:5,appli:[1,3,4,5,6,7,8,9],applic:[0,5],apply_circular_mask:1,appropri:[0,1,5,6],approx:5,approxim:[4,6],arbitrari:5,area:[6,8],arg:[0,1,5,9],argmin:[3,5,6],argument:[0,1,5,9],aris:9,armijo:5,armijo_rul:5,around:5,arrai:[0,1,3,4,5,7,8,9],arrang:[3,4],artefact:1,articl:[2,6],artifact:7,arxiv:5,as_arrai:1,ascent:5,aspect:9,assembl:3,assign:7,assum:[5,9],astra:[1,2,3,7,8],asymmetr:7,asymptot:5,attribut:[1,3,4,7],augment:5,author:[0,9],automat:7,avail:5,averag:[4,7],avinash:5,avoid:[5,7],axes:[1,4,7],axi:[1,4,7,9],axis_0:4,axis_1:4,axis_2:4,axis_label:[4,9],axis_labels_1:4,axis_labels_2:4,axis_nam:7,axis_name1:7,axis_name2:7,axpbi:[1,5],azimuth:9,back:[3,4,6,8,9],backend:[5,7,8],background:5,backproject:[5,8],backward:[1,4,5,6],backward_project:6,bar:5,base:[0,1,2,3,7,8,9],basi:0,basic:[1,2,4,5],basicconfig:7,batch:1,bdc1:[1,5],bdc2:[1,5],bdc:1,beam:[1,2,6,7,9],becaus:[5,9],beck:5,becom:5,been:[4,5,6,7],beer:7,befor:[4,5,7,9],begin:[0,3,5,7],behav:[1,5],behaviour:[4,5,7,9],being:[2,7,9],below:[3,5,7,9],berlin:8,best:[6,7],beta:5,betck:5,better:[3,5],between:[1,3,5,6,7,8],beyond:[3,9],bibian:5,big:5,bin:[4,7],binari:[1,4,9],binary_oper:[1,5],binner:2,binom:[3,5],biologi:5,bit:4,blob:[4,5,9],block:[1,2],blockdatacontain:[2,3,9],blockfunct:[3,5],blockgeometri:[2,3,5,6],blockoper:[3,5,6],blur:7,bmatrix:5,bnd_cond:5,boat:9,bool:[4,5,7,9],boolian:[1,9],border:7,both:[1,2,3,5,7],bottom:[0,1],bound:5,boundari:[5,7],box:[2,9],broadcast:6,brows:4,build:[2,3,5],burca:5,busi:9,buzug:8,bypass:1,cach:5,calcul:[1,4,5,6,7,9],calculate_lipschitz:5,calculate_norm:5,call:[3,4,5,6,8],callback:5,camera:9,can:[0,1,2,3,4,5,6,7,8,9],cannot:9,cap:0,capabl:6,care:9,carola:5,caus:[7,9],ccpi:[2,4],ccpi_regularis:6,cdot:5,ceil:[0,5],center:[3,5,7,9],center_i:1,center_x:1,center_z:1,centered_at:5,centr:[1,2,9],centreofrotationcorrector:7,cern:6,certain:5,cgl:[2,3],chambol:5,chan:5,chang:[0,4,5,6,9],channel:[1,2,5,6,7,9],channel_label:1,channelwiseoper:5,characterist:3,check:[1,4,5],check_converg:5,check_input:[1,6],chunk:[0,4,8],cil:[1,3,4,5,7,8,9],cil_log_level:7,circ:5,circular:[1,3,6,8],clair:5,classmethod:9,clearli:0,clip:9,clone:[0,1,5],close:[0,5],cls:5,cmake:0,cmap:9,code:[0,1,2,4,5,6,7,9],coincid:7,col:5,collect:[2,5],collim:3,color:9,colorbar:9,colormap:9,colour:9,column:[1,4,5,9],column_wise_compat:5,com:[0,2,5,6,9],comment:0,common:3,commonli:1,commut:[1,5],compar:9,comparison:[5,9],compat:[1,4,5,6,8],complex:[1,5],compli:0,complianc:0,compon:[5,7,8],composit:2,compositionoper:5,compress:4,compressed_data:4,compris:[3,5],comput:[5,6,8],computation:5,computer:5,concret:5,conda:0,conda_prefix:0,condit:[0,5,9],cone2d:2,cone3d:2,cone:[1,2,6,7,9],config:[0,4],configpars:4,configur:[0,2,4,5,6,7,8],conjug:[1,5,6],consecut:5,consequenti:9,consid:[2,3,5],consist:[1,5],constant:[5,6,7],constant_valu:7,constantfunct:5,constrain:5,constraint:[5,6],construct:[2,4,5,8],constructor:5,contain:[0,2,3,4,5,7,8,9],content:[4,5],continu:5,contract:9,contribut:[2,5,7],contributor:9,control:[0,5,8],convent:[2,3,5],converg:5,convert:[2,9],convex:[5,6],convex_conjug:[5,6],coordin:9,copi:[0,1,5],copyright:[0,9],core:[0,2,3,5],correct:[5,7,8],corrector:2,correl:[5,7],correlation_spac:5,correspond:[4,5,7,9],corrupt:9,cosin:8,costli:5,could:[1,5],counter_offset:4,courtesi:[4,5],cpu:[5,6],creat:[0,1,3,4,5,7,8,9],create_cone2d:[1,6],create_cone3d:[1,6],create_local_env_for_cil_development_test:0,create_parallel2d:1,create_parallel3d:1,creation:5,creator:[2,5,6],criteria:7,criterion:[5,6],crop:[4,7],cross:7,cubic:7,cuda:6,current:[0,1,5],custom:[5,8],customis:[6,8],cut:8,cutoff:8,damag:9,dark:7,dark_field:7,data:[2,4,5,6,8],data_bin:7,data_centr:7,data_channel0:9,data_channel1:9,data_dir:9,data_pad:7,data_rang:9,data_sl:7,data_typ:4,datacontain:[2,4,5,6,7,9],datacontainer0:1,datacontainer1:1,dataexampl:[8,9],dataord:2,dataprocessor:2,dataset:[0,1,2,3,4,6,7,8],date:2,davi:8,dc1:9,dc2:9,dcmake_install_prefix:0,dealloc:5,deblur:5,debug:7,decnum:7,decompos:5,deep_copi:1,def:[0,5],defin:[1,2,3,4,5,6,7,9],definit:[0,3,5,6],degre:[1,6,7,9],delattr:5,delplanck:5,delta:5,delta_dark:7,delta_flat:7,demo:[3,5],denois:5,denot:5,dens:5,depend:[0,3,4,7],deprec:[1,5,7],depth:4,deriv:[5,9],descent:5,describ:[1,3,4,5,6],descript:[3,6,7,8],design:[3,5],desir:[5,7],desiri:7,dest_sel:4,destin:4,detail:[2,7],detect:7,detector:[1,3,4,7,8],detector_direction_i:1,detector_direction_x:1,detector_i:1,detector_posit:1,detector_x:1,determin:6,devaiat:7,devel:2,develop:[2,3,5],deviat:[7,9],devic:6,diagon:5,diagonaloper:5,diamond:2,dict:[4,7],dictionari:[1,4,7],differ:[2,3,5,6,7,9],differenti:5,digaonaloper:5,dimens:[0,1,4,5,6,7,9],dimension:[5,9],dimension_label:[1,5,7],dir:5,direct:[1,4,5,6,9],direct_method:6,direction0:9,direction1:9,directli:[1,4,5,7],directori:[0,4,9],discard:5,disclaim:9,discord:2,disk:4,displai:[2,3],distanc:[1,3,5,9],distribut:[0,5,9],divid:[0,1,5,7],divis:[1,5,7],doc:[0,4,5,7],docs_environ:0,docstr:2,document:[6,9],doe:[0,1,5,6,7,9],doi:[2,5,7],domain:[5,8,9],domain_geometri:5,domain_init:5,domin:5,done:[1,5],dot:[1,5],dot_test:5,doubl:7,down:9,download:5,downsampl:7,dset_path:4,dtype:[1,4,5,6,9],dual:5,dualiti:5,due:[5,7],dure:[0,1,5],dynam:[2,5],each:[0,1,4,5,7,9],earli:5,earlier:6,easiest:0,easili:5,edg:[1,7],edoardo:5,edu:5,effect:5,ehrhardt:5,eigenvalu:5,eigenvector:5,either:[0,3,5,7,9],element:[1,4,5,7],elev:9,elif:0,els:[0,6],email:0,embed:0,emiss:5,emit:3,emploi:2,empti:1,enabl:2,enclos:0,end:[0,3,4,5,7],end_valu:7,endors:9,enforc:[2,5],engin:[1,5],enough:2,ensur:7,entail:5,entri:4,env:0,environ:0,environment_nam:0,epsilon:5,eqnarrai:5,equal:[1,5,6,9],equival:[3,4,5],erfcinv:7,erni:5,error:[1,5,7,9],essenti:0,esser:5,estim:7,estimate_normalised_error:7,eta:[5,6],euclid:5,euclidean:1,eval:4,evalu:5,evangelo:5,evelina:5,even:[1,5,9],event:[5,9],everi:[5,7,9],everyth:4,evolv:0,exact:[4,5],exampl:[1,4,5,6,7,8,9],except:0,excess:0,exclus:[7,9],execut:5,exemplari:9,exist:5,exp:1,expect:[1,7],expens:5,explicit:5,explicitli:9,expon:7,expos:9,express:[0,1,3,5,9],extend:[5,7,9],extens:4,extract:[4,9],extrapol:7,f_1:5,f_i:5,f_n:5,fact:[1,4,5],factor:[3,4,7],fail:[1,5],fals:[0,1,4,5,7,8,9],fan:2,fanbeam:2,fardel:5,fashion:5,fast:[5,6],faster:5,favour:0,fbp:[0,1,2,3,7],fdk:[2,3,6,7],fdk_cuda:6,feldkamp:8,fft:8,fft_order:8,fgp:[5,6],fgp_dtv:6,fgp_tv:6,fidel:[3,5],field:[0,3,7],figsiz:9,figur:9,file:[0,2,3,5],file_nam:4,filenam:[4,9],fill:[0,1,4,6,7,8],filter:[3,6,8],filter_inplac:0,find:[0,5,7],fine:7,finit:5,finitedifferenceoper:5,first:[3,4,5,6,7,9],firstli:[2,5],fista:2,fit:[1,5,7,9],fix:5,fix_rang:9,flag:5,flat:7,flat_field:7,flatten:[5,7],flip:4,fliplr:4,float32:[1,4,5,6],fname:[4,5],folder:[0,4],follow:[0,1,4,5,7,8,9],fontsiz:9,forc:1,fork:7,form:[3,5,8,9],format:[0,3],format_spec:5,formatt:5,formul:[2,5],formula:5,forth:5,forward:[5,6],forward_project:6,found:[2,5,9],fourier:8,frac:[3,5,6],frame:1,framework:[2,4],frequenc:8,frequency_cutoff:8,from:[1,2,3,4,5,6,8],fromfil:4,full:[0,3,4,8],fulli:[0,4],fundament:5,further:[0,2,5,8],futher:[6,8],futur:5,gamma:[5,6],gamma_fconj:5,gamma_g:5,gantri:3,gap:[5,7],gaussian:9,gemma:5,gener:[0,1,2,4,5,6,9],generalis:[5,6],genericlli:5,geometr:6,geometri:[0,2,4,5,6,7],geometry_bin:7,geometry_sl:7,geq1:5,geq2:5,get:[4,5,8,9],get_as_list:5,get_data_axes_ord:1,get_data_offset:4,get_data_scal:4,get_dataset_metadata:4,get_filter_arrai:8,get_geometri:4,get_imagedata:6,get_imagegeometri:[0,1,6],get_input:1,get_item:[1,5],get_last_loss:5,get_last_object:5,get_metadata:4,get_ouput:[6,7],get_output:[1,5,6,7],get_output_shap:5,get_roi:4,get_slic:[1,9],getattr:5,getlogg:7,git:[0,2],github:[0,2,5,6,9],give:[1,3,7],given:5,global:[5,9],gm_domain:5,gm_rang:5,goal:3,good:9,govern:0,gpu:6,gradient:[5,6],gradientoper:2,grai:9,greater:[1,8],greatli:3,grid:9,ground_truth:9,group:[4,5],guarante:5,guess:5,guid:[2,5],guidelin:2,hadamard:5,half:[5,7],ham:8,handl:[1,2,3,8],hann:8,happen:1,hard:7,hardwar:8,has:[0,1,3,4,5,6,7],hash:5,have:[0,3,4,5,7,8],hdf5:2,hdf5_util:4,hdl:8,height:9,held:1,help:[0,5,6],helper:5,henc:5,here:[0,5],hereof:5,high:[2,5],higher:[8,9],highli:[5,8],hold:[1,5,7],home:[1,4,5,6,7,8,9],horizont:[1,4,7],horizontal_i:[1,5,7,9],horizontal_x:[1,5,7,9],hotdog:9,how:5,howev:[4,5,9],html:[0,4,5,7,9],http:[0,2,4,5,6,7,8,9],hybrid:5,i_0:4,ideal:7,ident:5,identifi:[0,7],identityoper:5,ieee:5,ignor:[5,6,7],illustr:3,ima:7,imag:[0,2,3,4,5,6,7,8],image_geometri:[0,4,6,8,9],image_sharp:7,imagedata:[0,2,3,5,6,7,8,9],imagegeometri:[2,3,4,5,6,7,8,9],implement:[2,5],impli:[0,9],impos:[3,5],in_plac:1,inch:9,incid:[3,7],incident:9,includ:[1,5,7,9],inclus:7,incorpar:6,incorrect:7,increas:[5,8],independ:[1,4,5],index:[1,4,5,7],indic:[1,2,4,7,8],indicatorbox:5,indirect:9,industri:5,inequ:5,inexact:5,inf:[5,7],infin:5,infinit:5,influenc:3,info:[4,5,6,7],inform:[0,1,2,4,5,6,7,9],infrastructur:5,infti:5,ingredi:5,inherit:[1,5],ini:4,inifnam:4,initi:[4,5,6,7,9],initial_angl:1,initial_bin:7,initialis:[1,4,5,7],inlin:5,inner:[1,5],innov:0,inpaintingand:5,inplac:8,input:[0,1,2,5,6,7,8,9],insid:5,instal:[0,5,6],instanc:[0,1,4,5],instanti:[1,5],instead:[0,5,7,9],instruct:0,instrument:[3,7],integ:[5,6,7,9],intend:5,intens:7,interact:[2,5],interest:[1,7],intermedi:9,intern:[1,4],interpoalt:7,interpol:[6,7],interpret:[5,7,8],interrupt:9,intersect:6,interv:[5,9],introduct:2,intuit:9,invers:5,invok:5,iop:6,iopscienc:6,ipywidget:9,irrespect:5,is_compat:[1,5],is_fortran:4,is_linear:5,is_provably_converg:5,is_virtu:4,islic:2,isotrop:[5,6],issubclass:5,ista:2,iter:[3,5,6,9],its:[0,5,9],itself:[0,5],jakob:5,januari:5,join:2,journal:5,json:4,julian:5,jun:5,jupyt:9,just:1,k_i:5,kak:5,keep:[5,9],kei:[0,1,4,7],keyward:5,keyword:[1,5],kind:0,kinemat:7,kingdom:0,kl_div:5,kmax:5,knowledg:[3,5],known:5,kress:8,kullback:5,kullbackleibl:2,kwarg:[0,1,5,6,7,9],l11:2,l1norm:5,l21:2,l2norm_:5,l2normsquar:5,lab:3,label:[1,4,5,9],ladmm:2,lagrangian:5,lak:[6,8],lambert:7,langl:5,languag:[0,6],larg:[1,5],larger:5,largest:5,last:[5,7],law:[0,7],layout:4,lead:[4,7],least:[1,2,3],leastsquar:5,left:[1,4,5,9],leftrightarrow:[5,6],legend:9,leibler:5,length:[1,5,8,9],leq1:5,leq:5,less:5,let:5,level:[2,4,5,7,9],liabil:9,liabl:9,librari:[0,1,2,3,5],licens:0,light:2,like:[3,4,5],limit:[0,5,6,9],line:[4,9],line_colour:9,line_styl:9,linear:[5,7],linear_ramp:7,linearoper:5,linestyl:9,link:[0,2,5],link_islic:2,linspac:6,lionheart:5,lipschitz:5,lipshitz:5,list:[1,2,4,5,8,9],lmax:5,load:[4,9],load_data:4,load_project:4,loader:3,local:[2,9],local_var:9,localvar:9,locat:[1,7],log0:5,log10:5,log:[0,1,5,7,8],log_fil:5,logan:8,logarithm:7,logger:5,look:4,loop:[4,5,7],loss:[5,7,9],lossi:4,low_val:9,lower:[5,6,7,9],lvert:5,machin:3,mad:7,mae:9,magnif:3,magnitud:5,mai:[0,1,2,5,7,8,9],mail:2,main:[2,3,5],mainli:3,maintain:9,make:[0,3,5],malcolm:5,manchest:0,mani:5,manipul:[2,3],manual:[4,9],map:[5,9],marc:5,markiewicz:5,martin:5,mask:[1,2,5],masker:7,maskgener:7,maskoper:5,master:[5,9],match:[1,5,6],materi:9,math:[1,5],mathbb:5,mathcal:5,mathemat:[2,5],mathrm:[3,5,6],matplotlib:9,matric:5,matrix:[3,5,9],matrixoper:5,matthia:5,max:[1,5,6,9],max_:5,max_iter:[5,6],max_iteration_stop_criterion:5,max_quantil:7,max_val:7,maximis:7,maximum:[1,5,6],mbox:[5,6],mean:[1,5,7,9],meant:0,measur:[3,5,7,8],median:7,medicin:5,medium:5,member:0,memori:[1,5,8],merchant:9,met:[5,9],meta:1,metadata:[2,4],method:[1,2,3,4,5,6,7,8],metric:2,midlin:7,might:5,min:[1,5,9],min_:5,min_intens:7,min_quantil:7,min_val:7,min_x:5,mingqiang:5,minim:[4,5],minimis:5,minimum:[1,5,6],minmax:9,mirror:7,misalign:7,miss:7,mix:2,mixedl11norm:5,mixedl21norm:5,mkdir:0,mode:[1,4,5,7,9],model:6,modern:8,modif:9,modifi:[1,8],modul:[3,5,6,7,8],moment:5,monitor:5,mop:5,mop_norm:5,more:[3,4,5,7,8,9],moreau:5,most:[1,5],mri:5,mse:9,multi:[2,4,5,9],multichannel:[2,5,6],multicontrast:5,multipl:[0,1,4,5,6,7,9],multiplc:5,multipli:[1,5,7],multiprocess:5,must:[0,1,4,5,7,8,9],mx1:5,my_data:4,nabla:5,name:[0,1,4,5,7,9],nan:[5,7],nbyte:4,ndarrai:[1,4,5,7,8,9],ndim:[1,4,6],nearest:7,necessari:[0,1,4],need:[0,4,5,7,9],neg:[4,5,6,7,8,9],neglig:9,neither:9,nest:[1,5,9],net:8,neumann:5,neutron:7,new_ord:1,newlin:5,next:[1,5,7,9],nexu:[2,3],nexusdataread:4,nexusdatawrit:4,nice:5,nikon:[2,3],nikondataread:4,nois:[5,9],noisy_data:5,non:[0,2,5,6],none:[0,1,4,5,6,7,8,9],nonneg:6,nor:9,norm2sq:5,norm:[1,2,6],normal:[1,5],normalis:[2,4],notat:5,note:[4,5,6,7,8,9],notebook:3,noth:5,notic:[4,5,9],notimpl:5,nov:5,now:[3,5,6],num_batch:1,num_channel:1,num_chunk:0,num_col:9,num_model:6,num_pixel:1,num_pixels_h:1,num_pixels_v:1,num_thread:[1,5],numba:5,number:[1,2,3,4,5,6,7,9],number_of_dimens:1,numer:1,numpi:[1,4,5,7,8,9],numpy_vers:0,numpydoc:0,nx1:5,nxs:4,object:[1,2,3,4,5,7],objective_funct:5,obtain:[0,4],occur:9,off:[5,8],offset:[0,1,4,6,7,8],often:0,omega:5,one:[1,2,3,5,7,9],ones:[4,5],onli:[0,1,4,5,6,7,8,9],onto:[3,5,7],op0:5,op1:5,op2:5,oper:[0,1,2,3,7],operatorcompositionfunct:5,optim:[2,5],optimis:[2,3,6,8],option:[0,1,4,5,6,7,8,9],orbit:8,order:[1,4,5,8,9],ordin:4,org:[0,2,4,5,6,7,9],orient:[0,2,5],origin:[0,1,4,5,9],original_data:4,other:[1,2,5,7,9],otherwis:[1,5,9],otim:5,our:[1,2,3,5],out:[0,1,4,5,6,7,8,9],outcom:5,outer:9,outlier:7,output:[0,1,2,4,5,7,8,9],outsid:[1,7,8,9],over:[5,7],overrid:5,overridden:5,overset:5,own:0,owner:0,p_i:5,pack:4,packag:[0,2,5],pad:7,pad_valu:7,pad_width:7,padder:2,page:[2,4],pair:[5,9],panel:[0,1,7],paper:2,papoutselli:[2,5],parallel2d:2,parallel3d:2,parallel:[1,2,6,7,9],param:[1,5,9],paramet:[0,1,3,4,5,6,7,8,9],parent:1,pars:4,part:[2,5,6],partial_:5,particular:[5,9],partit:1,pasca:5,pass:[0,1,5,6,7,8,9],path:[4,9],pawel:5,pbar:0,pdf:5,pdf_1:5,pdhg:2,pdhg_vs_spdhg:5,peak:9,penalis:5,pepper:9,per:[5,9],percent:9,percentag:1,perform:[1,5,7],period:5,permiss:[0,9],permit:9,permut:1,pet:5,peter:5,phantom:6,phil:2,philip:5,philosoph:5,photon:[7,8],physic:5,pickl:5,pixel:[1,3,4,6,7,8,9],pixel_num_v:0,pixel_s:1,pixel_size_h:1,pixel_size_v:1,pjm:5,place:[1,3,8],placehold:[1,5],plantagi:8,play_interv:9,pleas:[0,1,2,3,6,7],plot:9,plugin:[2,3,7],png:9,pock:5,point:[1,3,5,9],pointer:[1,5],poisson:[5,9],poissonloglikelihoodwithlinearmodelformean:5,poorli:9,popul:7,posit:[0,1,5,6,7,8,9],positron:5,possibl:[1,5,9],power:[1,2,5,8,9],powermethod:5,practic:[5,7],pre:[2,3,5,8],precalcul:5,preced:[1,5],precondit:5,predefin:8,prefix:4,prepar:8,prepend:5,present:[1,5,9],preserv:9,preval:9,previou:[5,6,7],primal:5,principl:5,print:[0,4,5,7],print_interv:5,print_metadata:4,prior:[3,5,9],prob:5,probabl:5,problem:[2,3,5,6,9],problem_:[5,6],process:[0,1,3,5,6,7,8],processor:[1,2,3,6],procur:9,produc:9,product:[1,5,9],profit:9,progress:7,proj:5,proj_filt:0,project:[2,3,4,5,7,8],projecteuclid:5,projection_index:7,projectionoper:6,projector:[3,6,8],promot:9,proper:9,properti:[1,2,5],proport:9,protect:0,protocol:5,prototyp:[2,5],provabl:5,provid:[0,1,2,3,4,5,6,7,8,9],prox:[5,6],prox_:5,proxim:[5,6],proximal_conjug:5,pseudo:9,psnr:9,purpos:[5,9],pydata:0,pyplot:9,python2:[1,5],python3:0,python:[2,5,7],python_vers:0,qeq0:6,quad:5,quadrat:[5,7],qualiti:[2,3],quality_measur:9,quantil:7,quarter:7,r_1:3,r_2:3,rad:8,radia:2,radian:1,radiat:3,radiu:1,rai:[1,3,6],rainbow:9,rais:[0,1,5],ral:5,ram:[6,8],ramp:7,random:[1,5,9],random_int:1,random_nois:9,random_permut:1,rang:[0,5,6,7,8,9],range_geometri:5,range_init:5,rangl:5,rapid:[2,5],rare:9,rasch:5,rate:5,rather:[5,7],ratio:[6,9],raw:2,rawfilewrit:4,ray_direct:1,reach:[3,5,6],read:[2,7],read_arrai:4,read_as_acquisitiondata:4,read_as_imagedata:4,read_as_origin:4,read_data:4,read_dtyp:4,read_resc:4,read_scale_offset:4,read_shap:4,read_to:4,reader:[2,3],real:[1,2,3,5],receiv:5,recognis:[3,5],recommend:[7,8],recon:[0,2,3],reconstruct:[0,1,2,3,4,5,6,7],reconstructor:[0,2,3,6],recov:5,rect:8,recurs:[0,4],redistribut:9,reduc:[3,5,8,9],reduct:1,refer:[0,1,2,3,4,6,7,8,9],referenc:[0,1,6,7,8],reflect:[5,7],region:7,regular:5,regularis:[2,3,5],rel:[5,6,7],relat:[1,5],relax:5,relev:4,remain:7,remaind:0,remov:2,reorder:1,repeat:5,replac:[0,9],repo:0,repositori:[2,3],repositoryy:5,repr:5,repres:[1,4,5,7,9],reproduc:[2,9],request:[0,1,4,7,8,9],requir:[0,1,5,6,7,8],rescal:[4,6],rescaled_data:4,research:0,reserv:9,reset:8,reshap:[4,5],resid:4,resolut:[1,7],resolution_chart:9,resort:1,respect:[1,3,4,5,7,9],rest:5,restart:5,restor:5,resul:[1,5],result:[1,2,3,4,5,6,7,8,9],ret:0,retain:9,return_al:5,revers:[1,5],rewritten:5,rgensen:5,right:[1,4,5,9],rightarrow:5,ring:2,ringremov:7,rof:5,roi:[4,7],roll:7,root:4,rosenbrock:5,rotat:[1,2,3,6],rotation_axis_direct:1,rotation_axis_posit:1,round:9,routin:[5,8],row:[0,1,3,4,5],row_wise_compat:5,royal:5,royalsocietypublish:5,rsta:[2,5],rule:5,run:[0,1,5,6,7,8],rvert_:5,ryan:5,s10107:5,s10589:5,s10851:5,saddl:5,sai:5,salt:9,salt_vs_pepp:9,same:[0,1,4,5,6,7,9],sampl:[3,5],sapyb:[1,5],satisfi:5,save:[3,4,5,9],savefig:9,scalar:[1,5,6],scale:[2,4,5,7,9],scaledfunct:5,scaledoper:5,scaleoffset:4,scan:[3,7],scatter:[3,5],schemat:9,schonlieb:5,scienc:5,scikit:9,scikit_random_nois:9,scipi:5,screen:5,script:0,search:[7,9],search_rang:7,second:[3,5,7,9],secondli:2,section:[4,5],see:[0,5,6,7,9],seed:[1,5,9],select:[3,4,8,9],selector:9,self:[0,1,5,6,8],sensibl:4,separ:[0,5,9],sequent:9,sequenti:1,serial:5,serv:0,server:0,servic:9,set:[0,1,2,4,5,6,7,8],set_:0,set_angl:[1,6],set_channel:[1,6],set_fft_ord:8,set_filt:8,set_filter_inplac:8,set_gamma_fconj:5,set_gamma_g:5,set_image_geometri:8,set_input:[1,6,7,8],set_label:1,set_norm:5,set_num_thread:5,set_panel:[1,6],set_relaxation_paramet:5,set_split_process:[0,8],set_step_s:5,set_suppress_evalu:5,set_up:[4,5],setattr:5,setlevel:7,setter:2,sever:7,sgn:5,shall:9,shape:[0,1,4,5,9],share:5,sharp:7,shepp:8,shinkoper:5,shortcut:4,shorter:5,should:[0,1,4,5,6,7,8,9],should_stop:5,show1d:2,show2d:2,show:9,show_geometri:2,shown:9,shrinkag:5,siam:5,siddon:6,side:7,sigma:[5,7],sigma_:5,sign:[1,5,9],signal:9,signatur:[5,6],signific:3,simpl:[0,2,6,8],simple_phantom_2d:9,simpli:3,simplifi:5,simul:[2,3,5],simulated_cone_beam_data:[8,9],simulated_parallel_beam_data:[8,9],simulated_sphere_volum:9,simultan:5,singl:[1,3,4,5,7,8,9],singular:5,sinogram:[1,7],sirf:5,sirt:2,size:[0,1,4,5,6,7,9],skimag:9,skip:4,slanei:5,slice:[1,2,3,4,7,8],slice_index:7,slice_list:9,slice_metadata:4,slice_numb:9,slicer:2,slices_per_chunk:[0,8],slider:9,slight:7,small:[0,5,6,9],smooth:[2,6],smoothmixedl21norm:5,soc:2,societi:5,softwar:[0,5,9],softx:6,sol:[5,6],solut:[3,5,6],solv:[2,3,5,9],some:[5,7],some_data:1,someth:4,soon:5,sop:5,sort:1,sourc:[1,2,3,4,5,6,7,8],source_posit:1,source_sel:4,space:[5,6],spacechannel:5,spars:5,sparsefinitedifferenceoper:5,spatial:[1,5,7],spdhg:2,special:[5,7,9],special_valu:7,specif:[0,4,5,9],specifi:[1,4,5,7,9],speckl:9,spectral:[2,3,5],sphere:9,sphinx:0,split:[5,8],springer:[5,8],sqrt:[1,5,6,7],squar:[1,2,3,9],squared_norm:1,stabl:[4,7,9],stack:[4,7],stage:3,stagger:1,standard:[1,3,4,7,8,9],stanford:5,start:[0,4,5,7,9],statement:7,stationari:3,statist:8,statu:5,std:7,step:[0,3,4,5,6,7],step_siz:5,stephen:5,sting:1,stochast:5,stop:[5,6,7],store:[0,1,5],store_output:1,str:[1,4,5,6,7,9],strategi:5,strict:9,strictli:5,stride:1,string:[1,4,5,6,7,8,9],stripe:7,strong_convexity_const:[5,6],strongli:[5,6],structur:5,style:[0,7],sub:6,subclass:[1,4,5],subject:5,submodul:0,subplot:9,subproblem:5,subsequ:5,subset:5,substitut:9,subtract:[1,5],suffici:3,suit:3,suitabl:[0,1,7],sum:[1,5],sum_:5,sumfunct:5,sumscalarfunct:5,sup:[5,6],support:[5,7],suppress:[0,1,5,6,7,8,9],suppress_evalu:5,sure:[0,5],swap:5,symmetr:[5,7],symmetrisedgradientoper:5,sync:5,synchrotron:3,synchrotron_parallel_beam_data:9,syntax:0,system:[1,2,3,5],system_descript:0,tabul:5,take:[1,4,5,7,8],target:[0,7],task:6,tau:[5,6],tau_:5,team:9,teboul:5,techniqu:[3,5],tempor:[5,6],temporari:8,temporarili:9,term:[3,5,6],test:[0,2,3,5],testdata:9,text:[0,4,5],textbf:5,tgv:6,than:[4,5,6,7,8],thei:[0,1,5,7,9],them:[4,5,9],theme:0,theoret:7,theori:9,therefor:[1,5,6],theta:5,theta_:5,thi:[0,1,3,4,5,6,7,8,9],thieleman:5,thoma:5,those:1,thread:[1,5],three:[3,5],threshold:[5,7],threshold_factor:7,threshold_valu:7,through:[4,9],tiff:[2,9],tiffstackread:4,tiffwrit:4,tigr:[1,2,3,7,8],tikhonov:[3,5],tild:[3,5],time:[0,3,5,8,9],tip:5,titl:9,tmp:5,tmp_nexu:4,tnv:6,tofil:4,togeth:[4,7],toggl:5,toler:[5,6,7],tomograph:[1,2,5],tomographi:[2,5,8],tomographicimag:[0,2],tomophantom:[2,3],toni:5,too:8,tool:3,toolbox:[6,8],toolkit:[3,6],top:[1,9],tort:9,tot_slic:0,total:[0,2],totalvari:[5,6],tqdm:0,trade:5,trajectori:[3,6],tran:2,transact:5,transform:8,translat:[5,7],translatefunct:5,transmiss:[2,3],transmissionabsorptionconvert:7,transpos:[4,5],treat:5,trigger:5,trivial:2,truedivis:5,tune:[7,8],tupl:[1,4,5,7,9],turner:5,two:[1,5,7,8,9],txm:4,txrm:4,type:[0,1,3,4,5,6,7,8,9],typic:[3,5],uint16:4,uint8:4,unari:[1,5],unary_oper:[1,5],unbin:7,unchang:5,uncompress:4,under:[0,5],underbrac:5,underscor:0,underset:[3,5,6],understand:0,unexpect:9,uniform:[1,9],uniqu:[1,9],unit16:4,unit:[0,1,5],univers:0,unknown:[3,5],unless:[0,7],unmask:7,unpack:4,unreli:7,unsign:[4,9],until:5,updat:[0,5,7,8],update_object:5,update_objective_interv:5,update_previous_solut:5,update_step_s:5,upper:[5,7,9],url:5,usag:[5,6,7],use:[0,1,2,3,5,6,7,8,9],used:[0,1,2,3,4,5,6,7,8,9],useful:[1,2,5],user:[0,1,3,5,7,8],uses:[5,6,7,9],using:[0,1,3,4,5,6,7,8,9],util:[2,3,5,8],vai:5,valid:9,valu:[1,4,5,6,7,8,9],valueerror:[0,5],vararg:5,variabl:5,varianc:9,variat:2,variou:9,vaue:7,vector:[1,5,7],vectordata:2,verbos:[0,5,8],verbose_output:5,veri:5,versatil:[2,5],version:[0,5,6],vertic:[1,4,7],view:[0,1,3,9],view_dist:9,vision:5,visualis:2,vmatrix:[3,5],volum:[0,1,2,4,5,6,7,8],voxel:[5,6],voxel_num_i:1,voxel_num_x:1,voxel_num_z:1,voxel_size_i:1,voxel_size_x:[1,6],voxel_size_z:1,wai:[0,1,5,9],want:[1,5],warm:5,warm_start:5,warn:7,warr:5,warranti:[0,4,9],weak:5,web:5,websit:2,weight:[5,6],weightedl2normsquar:5,well:[2,3,5],were:7,what:[0,4,5],when:[0,3,4,5,6,9],where:[1,3,5,7,9],wherea:5,whether:[1,4,5,6,9],which:[1,3,4,5,7,9],whichev:[1,8],white:4,white_level:7,widget:9,width:[7,8,9],william:5,window:7,wise:[1,5],wither:5,within:0,without:[0,4,5,7,9],wname:7,word:0,work:[0,1,3,4,5],would:[4,5],wrap:[5,7],wright:5,write:[0,2,3,5],writer:[2,3],written:[3,4,5,6,9],wrt:5,www:0,x_1:5,x_axis_label:9,x_i:5,x_n:5,x_old:5,xcorrel:7,xiaoqun:5,xin:5,xremovestripesvert:7,xshape:5,xtekct:4,y_axis_label:9,year:0,yet:5,yield:[5,8],yml:0,you:[0,2,4,7],your:[0,6,7,8],yyyi:0,zeiss:2,zeissdataread:4,zero:[1,5,7],zerofunct:5,zerooper:5,zhang:5,zhu:5},titles:["Developers\u2019 Guide","Framework","Welcome to CIL\u2019s documentation!","Introduction","Read/ write AcquisitionData and ImageData","Optimisation framework","CIL Plugins","Processors","Recon","Utilities"],titleterms:{"class":5,"function":[5,6],"new":0,Use:1,absorpt:7,acquisitiondata:[1,4],acquisitiongeometri:1,algorithm:5,analyt:8,astra:6,base:5,beam:[3,8],binner:7,block:[3,5],blockdatacontain:[1,5],blockgeometri:1,box:5,build:0,ccpi:6,centr:7,cgl:5,channel:3,cil:[0,2,6],cite:2,composit:5,cone2d:1,cone3d:1,cone:[3,8],configur:1,contact:2,contain:1,content:2,contribut:0,convent:0,convert:7,corrector:7,creator:0,data:[1,3,7,9],datacontain:1,dataord:1,dataprocessor:1,dataset:9,demo:2,develop:0,diamond:9,displai:9,docstr:0,document:[0,2],exampl:[0,2],fan:3,fanbeam:1,fbp:[6,8],fdk:8,file:4,fista:5,framework:[1,3,5],from:[0,7,9],gener:7,geometri:[1,3,8,9],gradientoper:5,guid:0,guidelin:0,hdf5:4,imag:9,imagedata:[1,4],imagegeometri:1,index:[2,9],indic:5,interact:9,introduct:3,islic:9,ista:5,kullbackleibl:5,l11:5,l21:5,ladmm:5,least:5,light:9,link:9,link_islic:9,local:0,manipul:7,mask:7,method:0,metric:9,mix:5,multi:3,nexu:4,nikon:4,norm:5,normalis:7,object:[0,9],oper:[5,6],optimis:5,other:[0,6],padder:7,parallel2d:1,parallel3d:1,parallel:[3,8],pdhg:5,plugin:6,pre:7,processor:7,project:6,properti:0,qualiti:9,raw:4,read:4,reader:4,recon:8,reconstruct:8,reconstructor:8,refer:5,regularis:6,remov:7,render:0,ring:7,rotat:7,set:9,setter:0,show1d:9,show2d:9,show_geometri:9,simpl:5,simul:9,sirt:5,slice:9,slicer:7,smooth:5,softwar:2,sourc:[0,9],spdhg:5,squar:5,system:9,test:9,thi:2,tiff:4,tigr:6,todo:5,tomophantom:6,total:[5,6],transmiss:7,trivial:5,util:[4,9],variat:[5,6],vectordata:1,visualis:9,volum:9,welcom:2,work:2,write:4,writer:4,zeiss:4}}) \ No newline at end of file