diff --git a/doc/Doxyfile b/docs/Doxyfile
similarity index 100%
rename from doc/Doxyfile
rename to docs/Doxyfile
diff --git a/doc/descriptions/Atmosphere_model.md b/docs/descriptions/Atmosphere_model.md
similarity index 100%
rename from doc/descriptions/Atmosphere_model.md
rename to docs/descriptions/Atmosphere_model.md
diff --git a/doc/descriptions/img/emission_atm.jpg b/docs/descriptions/img/emission_atm.jpg
similarity index 100%
rename from doc/descriptions/img/emission_atm.jpg
rename to docs/descriptions/img/emission_atm.jpg
diff --git a/doc/html/Info.plist b/docs/html/Info.plist
similarity index 100%
rename from doc/html/Info.plist
rename to docs/html/Info.plist
diff --git a/doc/html/Makefile b/docs/html/Makefile
similarity index 100%
rename from doc/html/Makefile
rename to docs/html/Makefile
diff --git a/doc/html/Nodes.xml b/docs/html/Nodes.xml
similarity index 100%
rename from doc/html/Nodes.xml
rename to docs/html/Nodes.xml
diff --git a/doc/html/Tokens.xml b/docs/html/Tokens.xml
similarity index 100%
rename from doc/html/Tokens.xml
rename to docs/html/Tokens.xml
diff --git a/docs/html/__libcal_8hpp_source.html b/docs/html/__libcal_8hpp_source.html
new file mode 100644
index 00000000..bff26f5b
--- /dev/null
+++ b/docs/html/__libcal_8hpp_source.html
@@ -0,0 +1,303 @@
+
+
+
+
+
+Generated by
+
+ 1.8.17
+
+
+
diff --git a/doc/html/_c_a_l___m_p_i___atm_sim_8hpp_source.html b/docs/html/_c_a_l___m_p_i___atm_sim_8hpp_source.html
similarity index 100%
rename from doc/html/_c_a_l___m_p_i___atm_sim_8hpp_source.html
rename to docs/html/_c_a_l___m_p_i___atm_sim_8hpp_source.html
diff --git a/doc/html/_c_a_l_atm_sim_8hpp_source.html b/docs/html/_c_a_l_atm_sim_8hpp_source.html
similarity index 100%
rename from doc/html/_c_a_l_atm_sim_8hpp_source.html
rename to docs/html/_c_a_l_atm_sim_8hpp_source.html
diff --git a/doc/html/_engine_8hpp_source.html b/docs/html/_engine_8hpp_source.html
similarity index 100%
rename from doc/html/_engine_8hpp_source.html
rename to docs/html/_engine_8hpp_source.html
diff --git a/doc/html/_micro_u_r_n_g_8hpp_source.html b/docs/html/_micro_u_r_n_g_8hpp_source.html
similarity index 100%
rename from doc/html/_micro_u_r_n_g_8hpp_source.html
rename to docs/html/_micro_u_r_n_g_8hpp_source.html
diff --git a/doc/html/_reinterpret_ctr_8hpp_source.html b/docs/html/_reinterpret_ctr_8hpp_source.html
similarity index 100%
rename from doc/html/_reinterpret_ctr_8hpp_source.html
rename to docs/html/_reinterpret_ctr_8hpp_source.html
diff --git a/doc/html/aes_8h_source.html b/docs/html/aes_8h_source.html
similarity index 100%
rename from doc/html/aes_8h_source.html
rename to docs/html/aes_8h_source.html
diff --git a/doc/html/annotated.html b/docs/html/annotated.html
similarity index 100%
rename from doc/html/annotated.html
rename to docs/html/annotated.html
diff --git a/doc/html/array_8h_source.html b/docs/html/array_8h_source.html
similarity index 100%
rename from doc/html/array_8h_source.html
rename to docs/html/array_8h_source.html
diff --git a/doc/html/ars_8h_source.html b/docs/html/ars_8h_source.html
similarity index 100%
rename from doc/html/ars_8h_source.html
rename to docs/html/ars_8h_source.html
diff --git a/doc/html/atm__shm_8hpp_source.html b/docs/html/atm__shm_8hpp_source.html
similarity index 100%
rename from doc/html/atm__shm_8hpp_source.html
rename to docs/html/atm__shm_8hpp_source.html
diff --git a/doc/html/atmosphere_8hpp_source.html b/docs/html/atmosphere_8hpp_source.html
similarity index 100%
rename from doc/html/atmosphere_8hpp_source.html
rename to docs/html/atmosphere_8hpp_source.html
diff --git a/doc/html/bc_s.png b/docs/html/bc_s.png
similarity index 100%
rename from doc/html/bc_s.png
rename to docs/html/bc_s.png
diff --git a/doc/html/bdwn.png b/docs/html/bdwn.png
similarity index 100%
rename from doc/html/bdwn.png
rename to docs/html/bdwn.png
diff --git a/doc/html/church_model.html b/docs/html/church_model.html
similarity index 100%
rename from doc/html/church_model.html
rename to docs/html/church_model.html
diff --git a/doc/html/clangfeatures_8h_source.html b/docs/html/clangfeatures_8h_source.html
similarity index 100%
rename from doc/html/clangfeatures_8h_source.html
rename to docs/html/clangfeatures_8h_source.html
diff --git a/doc/html/classcal_1_1_aligned_allocator-members.html b/docs/html/classcal_1_1_aligned_allocator-members.html
similarity index 100%
rename from doc/html/classcal_1_1_aligned_allocator-members.html
rename to docs/html/classcal_1_1_aligned_allocator-members.html
diff --git a/doc/html/classcal_1_1_aligned_allocator.html b/docs/html/classcal_1_1_aligned_allocator.html
similarity index 100%
rename from doc/html/classcal_1_1_aligned_allocator.html
rename to docs/html/classcal_1_1_aligned_allocator.html
diff --git a/doc/html/classcal_1_1_environment-members.html b/docs/html/classcal_1_1_environment-members.html
similarity index 100%
rename from doc/html/classcal_1_1_environment-members.html
rename to docs/html/classcal_1_1_environment-members.html
diff --git a/doc/html/classcal_1_1_environment.html b/docs/html/classcal_1_1_environment.html
similarity index 100%
rename from doc/html/classcal_1_1_environment.html
rename to docs/html/classcal_1_1_environment.html
diff --git a/doc/html/classcal_1_1_global_timers-members.html b/docs/html/classcal_1_1_global_timers-members.html
similarity index 100%
rename from doc/html/classcal_1_1_global_timers-members.html
rename to docs/html/classcal_1_1_global_timers-members.html
diff --git a/doc/html/classcal_1_1_global_timers.html b/docs/html/classcal_1_1_global_timers.html
similarity index 100%
rename from doc/html/classcal_1_1_global_timers.html
rename to docs/html/classcal_1_1_global_timers.html
diff --git a/doc/html/classcal_1_1_logger-members.html b/docs/html/classcal_1_1_logger-members.html
similarity index 100%
rename from doc/html/classcal_1_1_logger-members.html
rename to docs/html/classcal_1_1_logger-members.html
diff --git a/doc/html/classcal_1_1_logger.html b/docs/html/classcal_1_1_logger.html
similarity index 100%
rename from doc/html/classcal_1_1_logger.html
rename to docs/html/classcal_1_1_logger.html
diff --git a/doc/html/classcal_1_1_timer-members.html b/docs/html/classcal_1_1_timer-members.html
similarity index 100%
rename from doc/html/classcal_1_1_timer-members.html
rename to docs/html/classcal_1_1_timer-members.html
diff --git a/doc/html/classcal_1_1_timer.html b/docs/html/classcal_1_1_timer.html
similarity index 100%
rename from doc/html/classcal_1_1_timer.html
rename to docs/html/classcal_1_1_timer.html
diff --git a/doc/html/classcal_1_1atm__sim-members.html b/docs/html/classcal_1_1atm__sim-members.html
similarity index 100%
rename from doc/html/classcal_1_1atm__sim-members.html
rename to docs/html/classcal_1_1atm__sim-members.html
diff --git a/doc/html/classcal_1_1atm__sim.html b/docs/html/classcal_1_1atm__sim.html
similarity index 100%
rename from doc/html/classcal_1_1atm__sim.html
rename to docs/html/classcal_1_1atm__sim.html
diff --git a/doc/html/classcal_1_1mpi__atm__sim-members.html b/docs/html/classcal_1_1mpi__atm__sim-members.html
similarity index 100%
rename from doc/html/classcal_1_1mpi__atm__sim-members.html
rename to docs/html/classcal_1_1mpi__atm__sim-members.html
diff --git a/doc/html/classcal_1_1mpi__atm__sim.html b/docs/html/classcal_1_1mpi__atm__sim.html
similarity index 100%
rename from doc/html/classcal_1_1mpi__atm__sim.html
rename to docs/html/classcal_1_1mpi__atm__sim.html
diff --git a/doc/html/classcal_1_1mpi__atm__sim__coll__graph.map b/docs/html/classcal_1_1mpi__atm__sim__coll__graph.map
similarity index 100%
rename from doc/html/classcal_1_1mpi__atm__sim__coll__graph.map
rename to docs/html/classcal_1_1mpi__atm__sim__coll__graph.map
diff --git a/doc/html/classcal_1_1mpi__atm__sim__coll__graph.md5 b/docs/html/classcal_1_1mpi__atm__sim__coll__graph.md5
similarity index 100%
rename from doc/html/classcal_1_1mpi__atm__sim__coll__graph.md5
rename to docs/html/classcal_1_1mpi__atm__sim__coll__graph.md5
diff --git a/doc/html/classcal_1_1mpi__atm__sim__coll__graph.png b/docs/html/classcal_1_1mpi__atm__sim__coll__graph.png
similarity index 100%
rename from doc/html/classcal_1_1mpi__atm__sim__coll__graph.png
rename to docs/html/classcal_1_1mpi__atm__sim__coll__graph.png
diff --git a/doc/html/classcal_1_1mpi__shmem-members.html b/docs/html/classcal_1_1mpi__shmem-members.html
similarity index 100%
rename from doc/html/classcal_1_1mpi__shmem-members.html
rename to docs/html/classcal_1_1mpi__shmem-members.html
diff --git a/doc/html/classcal_1_1mpi__shmem.html b/docs/html/classcal_1_1mpi__shmem.html
similarity index 100%
rename from doc/html/classcal_1_1mpi__shmem.html
rename to docs/html/classcal_1_1mpi__shmem.html
diff --git a/doc/html/classes.html b/docs/html/classes.html
similarity index 100%
rename from doc/html/classes.html
rename to docs/html/classes.html
diff --git a/docs/html/classpycal_1_1cache_1_1_cache-members.html b/docs/html/classpycal_1_1cache_1_1_cache-members.html
new file mode 100644
index 00000000..5efc8b69
--- /dev/null
+++ b/docs/html/classpycal_1_1cache_1_1_cache-members.html
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+CAL - CMB Atmospheric Library: Member List
+
+
+
+
+
+
+
+
+
+
+
+
Data cache with explicit memory management.
+
+This class acts as a dictionary of named arrays. Each array may be
+multi-dimensional.
+
+Args:
+ pymem (bool): if True, use python memory rather than external
+ allocations in C. Only used for testing.
+
Add an alias to a name that already exists in the cache.
+
+Args:
+ alias (str): alias to create
+ name (str): an existing key in the cache
+
+Returns:
+ None
Clear one or more buffers.
+
+Args:
+ pattern (str): a regular expression to match against the buffer
+names when determining what should be cleared. If None,
+then all buffers are cleared.
+
+Returns:
+ None
Create a named data buffer of the given type and shape.
+
+Args:
+ name (str): the name to assign to the buffer.
+ type (numpy.dtype): one of the supported numpy types.
+ shape (tuple): a tuple containing the shape of the buffer.
+
+Returns:
+ (array): a reference to the allocated array.
Deallocate the specified buffer.
+
+Only call this if all numpy arrays that reference the memory
+are out of use. If the specified name is an alias, then the alias
+is simply deleted. If the specified name is an actual buffer, then
+all aliases pointing to that buffer are also deleted.
+
+Args:
+ name (str): the name of the buffer or alias to destroy.
+
+Returns:
+ None
Check whether a buffer exists.
+
+Args:
+ name (str): the name of the buffer to search for.
+
+Returns:
+ (bool): True if a buffer or alias exists with the given name.
Create a named data buffer to hold the provided data.
+
+If replace is True, existing buffer of the same name is first
+destroyed. If replace is True and the name is an alias, it is
+promoted to a new data buffer.
+
+Args:
+ name (str): the name to assign to the buffer.
+ data (numpy.ndarray): Numpy array
+ replace (bool): Overwrite any existing keys
+
+Returns:
+ (array): a numpy array wrapping the raw data buffer.
Return a numpy array pointing to the buffer.
+
+The returned array will wrap a pointer to the raw buffer, but will
+not claim ownership. When the numpy array is garbage collected, it
+will NOT attempt to free the memory (you must manually use the
+destroy method).
+
+Args:
+ name (str): the name of the buffer to return.
+
+Returns:
+ (array): a numpy array wrapping the raw data buffer.
Class which represents distributed data
+
+A Data object contains a list of observations assigned to
+each process group in the Comm.
+
+Args:
+ comm (:class:`cal.Comm`): the cal Comm class for distributing the data.
Print information about the distributed data.
+
+Information is written to the specified file handle. Only the rank 0
+process writes. Optional flag masks are used when computing the
+number of good samples.
+
+Args:
+ handle (descriptor): file descriptor supporting the write()
+method. If None, use print().
+ flag_mask (int): bit mask to use when computing the number of
+good detector samples.
+ common_flag_mask (int): bit mask to use when computing the
+number of good telescope pointings.
+ intervals (str): optional name of an intervals object to print
+from each observation.
+
+Returns:
+ None
Split the Data object.
+
+Split the Data object based on the value of `key` in the
+observation dictionary.
+
+Args:
+ key(str) : Observation key to use.
+
+Returns:
+ List of 2-tuples of the form (value, data)
+
+
+The documentation for this class was generated from the following file:
Class which represents a two-level hierarchy of MPI communicators.
+
+A Comm object splits the full set of processes into groups of size
+"group". If group_size does not divide evenly into the size of the given
+communicator, then those processes remain idle.
+
+A Comm object stores three MPI communicators: The "world" communicator
+given here, which contains all processes to consider, a "group"
+communicator (one per group), and a "rank" communicator which contains the
+processes with the same group-rank across all groups.
+
+If MPI is not enabled, then all communicators are set to None.
+
+Args:
+ world (mpi4py.MPI.Comm): the MPI communicator containing all processes.
+ group (int): the size of each process group.
Implement a MUTEX lock with MPI one-sided operations.
+
+The lock is created across the given communicator. This uses an array
+of bytes (one per process) to track which processes have requested the
+lock. When a given process releases the lock, it passes it to the next
+process in line.
+
+Args:
+ comm (MPI.Comm): the full communicator to use.
+ root (int): the rank which stores the list of waiting processes.
+ debug (bool): if True, print debugging info about the lock status.
+
Create a shared memory buffer that is replicated across nodes.
+
+For the given array dimensions and datatype, the original communicator
+is split into groups of processes that can share memory (i.e. that are
+on the same node).
+
+The values of the memory buffer can be set by one process at a time.
+When the set() method is called the data passed by the specified
+process is replicated to all nodes and then copied into the desired
+place in the shared memory buffer on each node. This way the shared
+buffer on each node is identical.
+
+All processes across all nodes may do read-only access to their node-
+local copy of the buffer, simply by using the standard array indexing
+notation ("[]") on the object itself.
+
+Args:
+ shape (tuple): the dimensions of the array.
+ dtype (np.dtype): the data type of the array.
+ comm (MPI.Comm): the full communicator to use. This may span
+ multiple nodes, and each node will have a copy.
+
Set the values of a slice of the shared array.
+
+This call is collective across the full communicator, but only the
+data input from process "fromrank" is meaningful. The offset
+specifies the starting element along each dimension when copying
+the data into the shared array. Regardless of which node the
+"fromrank" process is on, the data will be replicated to the
+shared memory buffer on all nodes.
+
+Args:
+ data (array): a numpy array with the same number of dimensions
+as the full array.
+ offset (tuple): the starting offset along each dimension, which
+determines where the input data should be inserted into the
+shared array.
+ fromrank (int): the process rank of the full communicator which
+is passing in the data.
+
+Returns:
+ Nothing
+
Base class for an operator that acts on collections of observations.
+
+An operator takes as input a cal.dist.Data object and modifies it in place.
+
+Args:
+ None
A test result class that can print formatted text results to a stream.
+
+The actions needed are coordinated across all processes.
+
+Used by MPITestRunner.
+
The documentation for this class was generated from the following file:
A test runner class that displays results in textual form.
+
+It prints out the names of tests as they are run, errors as they
+occur, and a summary of the results at the end of the test run.
+
+This information is only printed by the root process.
+
Operator which generates atmosphere timestreams.
+
+All processes collectively generate the atmospheric realization.
+Then each process passes through its local data and observes the
+atmosphere.
+
+This operator is only compatible with TOD objects that can return
+AZ/EL pointing.
+
+Args:
+ out (str): accumulate data to the cache with name
+ <out>_<detector>. If the named cache objects do not exist,
+ then they are created.
+ realization (int): if simulating multiple realizations, the
+ realization index.
+ component (int): the component index to use for this noise
+ simulation.
+ lmin_center (float): Kolmogorov turbulence dissipation scale
+ center.
+ lmin_sigma (float): Kolmogorov turbulence dissipation scale
+ sigma.
+ lmax_center (float): Kolmogorov turbulence injection scale
+ center.
+ lmax_sigma (float): Kolmogorov turbulence injection scale sigma.
+ gain (float): Scaling applied to the simulated TOD.
+ zatm (float): atmosphere extent for temperature profile.
+ zmax (float): atmosphere extent for water vapor integration.
+ xstep (float): size of volume elements in X direction.
+ ystep (float): size of volume elements in Y direction.
+ zstep (float): size of volume elements in Z direction.
+ nelem_sim_max (int): controls the size of the simulation slices.
+ verbosity (int): more information is printed for values > 0.
+ z0_center (float): central value of the water vapor
+ distribution.
+ z0_sigma (float): sigma of the water vapor distribution.
+ common_flag_name (str): Cache name of the output common flags.
+ If it already exists, it is used. Otherwise flags
+ are read from the tod object and stored in the cache under
+ common_flag_name.
+ common_flag_mask (byte): Bitmask to use when flagging data
+ based on the common flags.
+ flag_name (str): Cache name of the output detector flags will
+ be <flag_name>_<detector>. If the object exists, it is
+ used. Otherwise flags are read from the tod object.
+ flag_mask (byte): Bitmask to use when flagging data
+ based on the detector flags.
+ apply_flags (bool): When True, flagged samples are not
+ simulated.
+ report_timing (bool): Print out time taken to initialize,
+ simulate and observe
+ wind_dist (float): Maximum wind drift before discarding the
+ volume and creating a new one [meters].
+ cachedir (str): Directory to use for loading and saving
+ atmosphere realizations. Set to None to disable caching.
+ flush (bool): Flush all print statements
+ freq (float): Observing frequency in GHz.
+
The random number generator accepts a key and a counter,
+each made of two 64bit integers.
+Following tod_math.py we set
+key1 = realization * 2^32 + telescope * 2^16 + component
+key2 = obsindx * 2^32
+counter1 = hierarchical cone counter
+counter2 = sample in stream (incremented internally in the atm code)
+
Generate atmosphere timestreams.
+
+This iterates over all observations and detectors and generates
+the atmosphere timestreams.
+
+Args:
+ data (cal.Data): The distributed data.
+
+Returns:
+ None
cal Weather objects allow sampling weather parameters.
+
+The weather parameter distributions are read from site-specific
+cal weather files. The files contain parameter distributions
+for every UTC hour of the day, averaged over months.
Initialize a weather object
+
+Args:
+ fname(str) : FITS file containing the parameter
+distributions.
+ site(int) : Site index for the random number generator.
+ realization(int) : Initial realization index, may be
+changed later.
10-meter specific humidity [kg/kg]
+
+Water vapor concentration at the observing site 10 meters above
+ground at the preset time and for the preset realization.
+
+
+Generated by
+
+ 1.8.17
+
+
+
diff --git a/doc/html/doc.png b/docs/html/doc.png
similarity index 100%
rename from doc/html/doc.png
rename to docs/html/doc.png
diff --git a/doc/html/doxygen.css b/docs/html/doxygen.css
similarity index 100%
rename from doc/html/doxygen.css
rename to docs/html/doxygen.css
diff --git a/doc/html/doxygen.png b/docs/html/doxygen.png
similarity index 100%
rename from doc/html/doxygen.png
rename to docs/html/doxygen.png
diff --git a/doc/html/dynsections.js b/docs/html/dynsections.js
similarity index 100%
rename from doc/html/dynsections.js
rename to docs/html/dynsections.js
diff --git a/doc/html/emission_atm.jpg b/docs/html/emission_atm.jpg
similarity index 100%
rename from doc/html/emission_atm.jpg
rename to docs/html/emission_atm.jpg
diff --git a/doc/html/files.html b/docs/html/files.html
similarity index 100%
rename from doc/html/files.html
rename to docs/html/files.html
diff --git a/doc/html/folderclosed.png b/docs/html/folderclosed.png
similarity index 100%
rename from doc/html/folderclosed.png
rename to docs/html/folderclosed.png
diff --git a/doc/html/folderopen.png b/docs/html/folderopen.png
similarity index 100%
rename from doc/html/folderopen.png
rename to docs/html/folderopen.png
diff --git a/doc/html/functions.html b/docs/html/functions.html
similarity index 100%
rename from doc/html/functions.html
rename to docs/html/functions.html
diff --git a/doc/html/functions_func.html b/docs/html/functions_func.html
similarity index 100%
rename from doc/html/functions_func.html
rename to docs/html/functions_func.html
diff --git a/doc/html/functions_type.html b/docs/html/functions_type.html
similarity index 100%
rename from doc/html/functions_type.html
rename to docs/html/functions_type.html
diff --git a/doc/html/functions_vars.html b/docs/html/functions_vars.html
similarity index 100%
rename from doc/html/functions_vars.html
rename to docs/html/functions_vars.html
diff --git a/doc/html/gccfeatures_8h_source.html b/docs/html/gccfeatures_8h_source.html
similarity index 100%
rename from doc/html/gccfeatures_8h_source.html
rename to docs/html/gccfeatures_8h_source.html
diff --git a/doc/html/graph_legend.html b/docs/html/graph_legend.html
similarity index 100%
rename from doc/html/graph_legend.html
rename to docs/html/graph_legend.html
diff --git a/doc/html/graph_legend.md5 b/docs/html/graph_legend.md5
similarity index 100%
rename from doc/html/graph_legend.md5
rename to docs/html/graph_legend.md5
diff --git a/doc/html/graph_legend.png b/docs/html/graph_legend.png
similarity index 100%
rename from doc/html/graph_legend.png
rename to docs/html/graph_legend.png
diff --git a/doc/html/gsl__cbrng_8h_source.html b/docs/html/gsl__cbrng_8h_source.html
similarity index 100%
rename from doc/html/gsl__cbrng_8h_source.html
rename to docs/html/gsl__cbrng_8h_source.html
diff --git a/doc/html/gsl__microrng_8h_source.html b/docs/html/gsl__microrng_8h_source.html
similarity index 100%
rename from doc/html/gsl__microrng_8h_source.html
rename to docs/html/gsl__microrng_8h_source.html
diff --git a/docs/html/hierarchy.html b/docs/html/hierarchy.html
new file mode 100644
index 00000000..e7ef856f
--- /dev/null
+++ b/docs/html/hierarchy.html
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+
+CAL - CMB Atmospheric Library: Class Hierarchy
+
+
+
+
+
+
+
+
+
+
+
+
Import the package at the top of runner.py and load it below
+
+
+
+
+
+Generated by
+
+ 1.8.17
+
+
+
diff --git a/doc/html/menu.js b/docs/html/menu.js
similarity index 100%
rename from doc/html/menu.js
rename to docs/html/menu.js
diff --git a/doc/html/menudata.js b/docs/html/menudata.js
similarity index 100%
rename from doc/html/menudata.js
rename to docs/html/menudata.js
diff --git a/doc/html/mpi_2atmosphere_8hpp_source.html b/docs/html/mpi_2atmosphere_8hpp_source.html
similarity index 100%
rename from doc/html/mpi_2atmosphere_8hpp_source.html
rename to docs/html/mpi_2atmosphere_8hpp_source.html
diff --git a/doc/html/mpi_2include_2_a_a_t_m__fun_8hpp_source.html b/docs/html/mpi_2include_2_a_a_t_m__fun_8hpp_source.html
similarity index 100%
rename from doc/html/mpi_2include_2_a_a_t_m__fun_8hpp_source.html
rename to docs/html/mpi_2include_2_a_a_t_m__fun_8hpp_source.html
diff --git a/doc/html/mpi_2include_2math__rng_8hpp_source.html b/docs/html/mpi_2include_2math__rng_8hpp_source.html
similarity index 100%
rename from doc/html/mpi_2include_2math__rng_8hpp_source.html
rename to docs/html/mpi_2include_2math__rng_8hpp_source.html
diff --git a/doc/html/mpi_2include_2math__sf_8hpp_source.html b/docs/html/mpi_2include_2math__sf_8hpp_source.html
similarity index 100%
rename from doc/html/mpi_2include_2math__sf_8hpp_source.html
rename to docs/html/mpi_2include_2math__sf_8hpp_source.html
diff --git a/doc/html/mpi_2include_2sys__env_8hpp_source.html b/docs/html/mpi_2include_2sys__env_8hpp_source.html
similarity index 100%
rename from doc/html/mpi_2include_2sys__env_8hpp_source.html
rename to docs/html/mpi_2include_2sys__env_8hpp_source.html
diff --git a/doc/html/mpi_2include_2sys__utils_8hpp_source.html b/docs/html/mpi_2include_2sys__utils_8hpp_source.html
similarity index 100%
rename from doc/html/mpi_2include_2sys__utils_8hpp_source.html
rename to docs/html/mpi_2include_2sys__utils_8hpp_source.html
diff --git a/doc/html/mpi__init_8hpp_source.html b/docs/html/mpi__init_8hpp_source.html
similarity index 100%
rename from doc/html/mpi__init_8hpp_source.html
rename to docs/html/mpi__init_8hpp_source.html
diff --git a/doc/html/msvcfeatures_8h_source.html b/docs/html/msvcfeatures_8h_source.html
similarity index 100%
rename from doc/html/msvcfeatures_8h_source.html
rename to docs/html/msvcfeatures_8h_source.html
diff --git a/doc/html/namespaceatm.html b/docs/html/namespaceatm.html
similarity index 100%
rename from doc/html/namespaceatm.html
rename to docs/html/namespaceatm.html
diff --git a/doc/html/namespacecal.html b/docs/html/namespacecal.html
similarity index 100%
rename from doc/html/namespacecal.html
rename to docs/html/namespacecal.html
diff --git a/doc/html/namespacemembers.html b/docs/html/namespacemembers.html
similarity index 100%
rename from doc/html/namespacemembers.html
rename to docs/html/namespacemembers.html
diff --git a/doc/html/namespacemembers_enum.html b/docs/html/namespacemembers_enum.html
similarity index 100%
rename from doc/html/namespacemembers_enum.html
rename to docs/html/namespacemembers_enum.html
diff --git a/doc/html/namespacemembers_func.html b/docs/html/namespacemembers_func.html
similarity index 100%
rename from doc/html/namespacemembers_func.html
rename to docs/html/namespacemembers_func.html
diff --git a/doc/html/namespacemembers_vars.html b/docs/html/namespacemembers_vars.html
similarity index 100%
rename from doc/html/namespacemembers_vars.html
rename to docs/html/namespacemembers_vars.html
diff --git a/doc/html/namespacer123.html b/docs/html/namespacer123.html
similarity index 100%
rename from doc/html/namespacer123.html
rename to docs/html/namespacer123.html
diff --git a/doc/html/namespaces.html b/docs/html/namespaces.html
similarity index 100%
rename from doc/html/namespaces.html
rename to docs/html/namespaces.html
diff --git a/doc/html/nav_f.png b/docs/html/nav_f.png
similarity index 100%
rename from doc/html/nav_f.png
rename to docs/html/nav_f.png
diff --git a/doc/html/nav_g.png b/docs/html/nav_g.png
similarity index 100%
rename from doc/html/nav_g.png
rename to docs/html/nav_g.png
diff --git a/doc/html/nav_h.png b/docs/html/nav_h.png
similarity index 100%
rename from doc/html/nav_h.png
rename to docs/html/nav_h.png
diff --git a/doc/html/nvccfeatures_8h_source.html b/docs/html/nvccfeatures_8h_source.html
similarity index 100%
rename from doc/html/nvccfeatures_8h_source.html
rename to docs/html/nvccfeatures_8h_source.html
diff --git a/doc/html/open.png b/docs/html/open.png
similarity index 100%
rename from doc/html/open.png
rename to docs/html/open.png
diff --git a/doc/html/open64features_8h_source.html b/docs/html/open64features_8h_source.html
similarity index 100%
rename from doc/html/open64features_8h_source.html
rename to docs/html/open64features_8h_source.html
diff --git a/doc/html/openclfeatures_8h_source.html b/docs/html/openclfeatures_8h_source.html
similarity index 100%
rename from doc/html/openclfeatures_8h_source.html
rename to docs/html/openclfeatures_8h_source.html
diff --git a/doc/html/pages.html b/docs/html/pages.html
similarity index 100%
rename from doc/html/pages.html
rename to docs/html/pages.html
diff --git a/doc/html/pgccfeatures_8h_source.html b/docs/html/pgccfeatures_8h_source.html
similarity index 100%
rename from doc/html/pgccfeatures_8h_source.html
rename to docs/html/pgccfeatures_8h_source.html
diff --git a/doc/html/philox_8h_source.html b/docs/html/philox_8h_source.html
similarity index 100%
rename from doc/html/philox_8h_source.html
rename to docs/html/philox_8h_source.html
diff --git a/doc/html/porting.html b/docs/html/porting.html
similarity index 100%
rename from doc/html/porting.html
rename to docs/html/porting.html
diff --git a/doc/html/search/all_0.html b/docs/html/search/all_0.html
similarity index 100%
rename from doc/html/search/all_0.html
rename to docs/html/search/all_0.html
diff --git a/doc/html/search/all_0.js b/docs/html/search/all_0.js
similarity index 100%
rename from doc/html/search/all_0.js
rename to docs/html/search/all_0.js
diff --git a/doc/html/search/all_1.html b/docs/html/search/all_1.html
similarity index 100%
rename from doc/html/search/all_1.html
rename to docs/html/search/all_1.html
diff --git a/doc/html/search/all_1.js b/docs/html/search/all_1.js
similarity index 100%
rename from doc/html/search/all_1.js
rename to docs/html/search/all_1.js
diff --git a/doc/html/search/all_10.html b/docs/html/search/all_10.html
similarity index 100%
rename from doc/html/search/all_10.html
rename to docs/html/search/all_10.html
diff --git a/doc/html/search/all_10.js b/docs/html/search/all_10.js
similarity index 100%
rename from doc/html/search/all_10.js
rename to docs/html/search/all_10.js
diff --git a/doc/html/search/all_11.html b/docs/html/search/all_11.html
similarity index 100%
rename from doc/html/search/all_11.html
rename to docs/html/search/all_11.html
diff --git a/doc/html/search/all_11.js b/docs/html/search/all_11.js
similarity index 100%
rename from doc/html/search/all_11.js
rename to docs/html/search/all_11.js
diff --git a/doc/html/search/all_12.html b/docs/html/search/all_12.html
similarity index 100%
rename from doc/html/search/all_12.html
rename to docs/html/search/all_12.html
diff --git a/doc/html/search/all_12.js b/docs/html/search/all_12.js
similarity index 100%
rename from doc/html/search/all_12.js
rename to docs/html/search/all_12.js
diff --git a/doc/html/search/all_13.html b/docs/html/search/all_13.html
similarity index 100%
rename from doc/html/search/all_13.html
rename to docs/html/search/all_13.html
diff --git a/doc/html/search/all_13.js b/docs/html/search/all_13.js
similarity index 100%
rename from doc/html/search/all_13.js
rename to docs/html/search/all_13.js
diff --git a/doc/html/search/all_14.html b/docs/html/search/all_14.html
similarity index 100%
rename from doc/html/search/all_14.html
rename to docs/html/search/all_14.html
diff --git a/doc/html/search/all_14.js b/docs/html/search/all_14.js
similarity index 100%
rename from doc/html/search/all_14.js
rename to docs/html/search/all_14.js
diff --git a/docs/html/search/all_15.html b/docs/html/search/all_15.html
new file mode 100644
index 00000000..767aec36
--- /dev/null
+++ b/docs/html/search/all_15.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/html/search/all_17.js b/docs/html/search/all_17.js
new file mode 100644
index 00000000..98cfd7f4
--- /dev/null
+++ b/docs/html/search/all_17.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['_7eatm_5fsim_169',['~atm_sim',['../classcal_1_1atm__sim.html#a064b7336503ca3f5765e498d6932bf65',1,'cal::atm_sim']]],
+ ['_7empi_5fatm_5fsim_170',['~mpi_atm_sim',['../classcal_1_1mpi__atm__sim.html#add5e6b1af0cefd6f3b91ff143d029548',1,'cal::mpi_atm_sim']]]
+];
diff --git a/doc/html/search/all_2.html b/docs/html/search/all_2.html
similarity index 100%
rename from doc/html/search/all_2.html
rename to docs/html/search/all_2.html
diff --git a/doc/html/search/all_2.js b/docs/html/search/all_2.js
similarity index 100%
rename from doc/html/search/all_2.js
rename to docs/html/search/all_2.js
diff --git a/doc/html/search/all_3.html b/docs/html/search/all_3.html
similarity index 100%
rename from doc/html/search/all_3.html
rename to docs/html/search/all_3.html
diff --git a/doc/html/search/all_3.js b/docs/html/search/all_3.js
similarity index 100%
rename from doc/html/search/all_3.js
rename to docs/html/search/all_3.js
diff --git a/doc/html/search/all_4.html b/docs/html/search/all_4.html
similarity index 100%
rename from doc/html/search/all_4.html
rename to docs/html/search/all_4.html
diff --git a/doc/html/search/all_4.js b/docs/html/search/all_4.js
similarity index 100%
rename from doc/html/search/all_4.js
rename to docs/html/search/all_4.js
diff --git a/doc/html/search/all_5.html b/docs/html/search/all_5.html
similarity index 100%
rename from doc/html/search/all_5.html
rename to docs/html/search/all_5.html
diff --git a/doc/html/search/all_5.js b/docs/html/search/all_5.js
similarity index 100%
rename from doc/html/search/all_5.js
rename to docs/html/search/all_5.js
diff --git a/doc/html/search/all_6.html b/docs/html/search/all_6.html
similarity index 100%
rename from doc/html/search/all_6.html
rename to docs/html/search/all_6.html
diff --git a/doc/html/search/all_6.js b/docs/html/search/all_6.js
similarity index 100%
rename from doc/html/search/all_6.js
rename to docs/html/search/all_6.js
diff --git a/doc/html/search/all_7.html b/docs/html/search/all_7.html
similarity index 100%
rename from doc/html/search/all_7.html
rename to docs/html/search/all_7.html
diff --git a/doc/html/search/all_7.js b/docs/html/search/all_7.js
similarity index 100%
rename from doc/html/search/all_7.js
rename to docs/html/search/all_7.js
diff --git a/doc/html/search/all_8.html b/docs/html/search/all_8.html
similarity index 100%
rename from doc/html/search/all_8.html
rename to docs/html/search/all_8.html
diff --git a/doc/html/search/all_8.js b/docs/html/search/all_8.js
similarity index 100%
rename from doc/html/search/all_8.js
rename to docs/html/search/all_8.js
diff --git a/doc/html/search/all_9.html b/docs/html/search/all_9.html
similarity index 100%
rename from doc/html/search/all_9.html
rename to docs/html/search/all_9.html
diff --git a/doc/html/search/all_9.js b/docs/html/search/all_9.js
similarity index 100%
rename from doc/html/search/all_9.js
rename to docs/html/search/all_9.js
diff --git a/doc/html/search/all_a.html b/docs/html/search/all_a.html
similarity index 100%
rename from doc/html/search/all_a.html
rename to docs/html/search/all_a.html
diff --git a/doc/html/search/all_a.js b/docs/html/search/all_a.js
similarity index 100%
rename from doc/html/search/all_a.js
rename to docs/html/search/all_a.js
diff --git a/doc/html/search/all_b.html b/docs/html/search/all_b.html
similarity index 100%
rename from doc/html/search/all_b.html
rename to docs/html/search/all_b.html
diff --git a/doc/html/search/all_b.js b/docs/html/search/all_b.js
similarity index 100%
rename from doc/html/search/all_b.js
rename to docs/html/search/all_b.js
diff --git a/doc/html/search/all_c.html b/docs/html/search/all_c.html
similarity index 100%
rename from doc/html/search/all_c.html
rename to docs/html/search/all_c.html
diff --git a/doc/html/search/all_c.js b/docs/html/search/all_c.js
similarity index 100%
rename from doc/html/search/all_c.js
rename to docs/html/search/all_c.js
diff --git a/doc/html/search/all_d.html b/docs/html/search/all_d.html
similarity index 100%
rename from doc/html/search/all_d.html
rename to docs/html/search/all_d.html
diff --git a/doc/html/search/all_d.js b/docs/html/search/all_d.js
similarity index 100%
rename from doc/html/search/all_d.js
rename to docs/html/search/all_d.js
diff --git a/doc/html/search/all_e.html b/docs/html/search/all_e.html
similarity index 100%
rename from doc/html/search/all_e.html
rename to docs/html/search/all_e.html
diff --git a/doc/html/search/all_e.js b/docs/html/search/all_e.js
similarity index 100%
rename from doc/html/search/all_e.js
rename to docs/html/search/all_e.js
diff --git a/doc/html/search/all_f.html b/docs/html/search/all_f.html
similarity index 100%
rename from doc/html/search/all_f.html
rename to docs/html/search/all_f.html
diff --git a/doc/html/search/all_f.js b/docs/html/search/all_f.js
similarity index 100%
rename from doc/html/search/all_f.js
rename to docs/html/search/all_f.js
diff --git a/doc/html/search/classes_0.html b/docs/html/search/classes_0.html
similarity index 100%
rename from doc/html/search/classes_0.html
rename to docs/html/search/classes_0.html
diff --git a/doc/html/search/classes_0.js b/docs/html/search/classes_0.js
similarity index 100%
rename from doc/html/search/classes_0.js
rename to docs/html/search/classes_0.js
diff --git a/doc/html/search/classes_1.html b/docs/html/search/classes_1.html
similarity index 100%
rename from doc/html/search/classes_1.html
rename to docs/html/search/classes_1.html
diff --git a/doc/html/search/classes_1.js b/docs/html/search/classes_1.js
similarity index 100%
rename from doc/html/search/classes_1.js
rename to docs/html/search/classes_1.js
diff --git a/docs/html/search/classes_10.html b/docs/html/search/classes_10.html
new file mode 100644
index 00000000..abf37f53
--- /dev/null
+++ b/docs/html/search/classes_10.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/html/search/classes_f.js b/docs/html/search/classes_f.js
new file mode 100644
index 00000000..240f5707
--- /dev/null
+++ b/docs/html/search/classes_f.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['rebind_218',['rebind',['../structcal_1_1_aligned_allocator_1_1rebind.html',1,'cal::AlignedAllocator']]],
+ ['reinterpretctr_219',['ReinterpretCtr',['../structr123_1_1_reinterpret_ctr.html',1,'r123']]],
+ ['rngtest_220',['RNGTest',['../classpycal_1_1tests_1_1rng_1_1_r_n_g_test.html',1,'pycal::tests::rng']]]
+];
diff --git a/doc/html/search/close.png b/docs/html/search/close.png
similarity index 100%
rename from doc/html/search/close.png
rename to docs/html/search/close.png
diff --git a/doc/html/search/enums_0.html b/docs/html/search/enums_0.html
similarity index 100%
rename from doc/html/search/enums_0.html
rename to docs/html/search/enums_0.html
diff --git a/doc/html/search/enums_0.js b/docs/html/search/enums_0.js
similarity index 100%
rename from doc/html/search/enums_0.js
rename to docs/html/search/enums_0.js
diff --git a/doc/html/search/enumvalues_0.html b/docs/html/search/enumvalues_0.html
similarity index 100%
rename from doc/html/search/enumvalues_0.html
rename to docs/html/search/enumvalues_0.html
diff --git a/doc/html/search/enumvalues_0.js b/docs/html/search/enumvalues_0.js
similarity index 100%
rename from doc/html/search/enumvalues_0.js
rename to docs/html/search/enumvalues_0.js
diff --git a/doc/html/search/enumvalues_1.html b/docs/html/search/enumvalues_1.html
similarity index 100%
rename from doc/html/search/enumvalues_1.html
rename to docs/html/search/enumvalues_1.html
diff --git a/doc/html/search/enumvalues_1.js b/docs/html/search/enumvalues_1.js
similarity index 100%
rename from doc/html/search/enumvalues_1.js
rename to docs/html/search/enumvalues_1.js
diff --git a/doc/html/search/enumvalues_2.html b/docs/html/search/enumvalues_2.html
similarity index 100%
rename from doc/html/search/enumvalues_2.html
rename to docs/html/search/enumvalues_2.html
diff --git a/doc/html/search/enumvalues_2.js b/docs/html/search/enumvalues_2.js
similarity index 100%
rename from doc/html/search/enumvalues_2.js
rename to docs/html/search/enumvalues_2.js
diff --git a/doc/html/search/enumvalues_3.html b/docs/html/search/enumvalues_3.html
similarity index 100%
rename from doc/html/search/enumvalues_3.html
rename to docs/html/search/enumvalues_3.html
diff --git a/doc/html/search/enumvalues_3.js b/docs/html/search/enumvalues_3.js
similarity index 100%
rename from doc/html/search/enumvalues_3.js
rename to docs/html/search/enumvalues_3.js
diff --git a/doc/html/search/enumvalues_4.html b/docs/html/search/enumvalues_4.html
similarity index 100%
rename from doc/html/search/enumvalues_4.html
rename to docs/html/search/enumvalues_4.html
diff --git a/doc/html/search/enumvalues_4.js b/docs/html/search/enumvalues_4.js
similarity index 100%
rename from doc/html/search/enumvalues_4.js
rename to docs/html/search/enumvalues_4.js
diff --git a/doc/html/search/enumvalues_5.html b/docs/html/search/enumvalues_5.html
similarity index 100%
rename from doc/html/search/enumvalues_5.html
rename to docs/html/search/enumvalues_5.html
diff --git a/doc/html/search/enumvalues_5.js b/docs/html/search/enumvalues_5.js
similarity index 100%
rename from doc/html/search/enumvalues_5.js
rename to docs/html/search/enumvalues_5.js
diff --git a/doc/html/search/functions_0.html b/docs/html/search/functions_0.html
similarity index 100%
rename from doc/html/search/functions_0.html
rename to docs/html/search/functions_0.html
diff --git a/doc/html/search/functions_0.js b/docs/html/search/functions_0.js
similarity index 100%
rename from doc/html/search/functions_0.js
rename to docs/html/search/functions_0.js
diff --git a/doc/html/search/functions_1.html b/docs/html/search/functions_1.html
similarity index 100%
rename from doc/html/search/functions_1.html
rename to docs/html/search/functions_1.html
diff --git a/doc/html/search/functions_1.js b/docs/html/search/functions_1.js
similarity index 100%
rename from doc/html/search/functions_1.js
rename to docs/html/search/functions_1.js
diff --git a/docs/html/search/functions_10.html b/docs/html/search/functions_10.html
new file mode 100644
index 00000000..09422e1e
--- /dev/null
+++ b/docs/html/search/functions_10.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/html/search/functions_14.js b/docs/html/search/functions_14.js
new file mode 100644
index 00000000..4bb95c7e
--- /dev/null
+++ b/docs/html/search/functions_14.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['_7eatm_5fsim_324',['~atm_sim',['../classcal_1_1atm__sim.html#a064b7336503ca3f5765e498d6932bf65',1,'cal::atm_sim']]],
+ ['_7empi_5fatm_5fsim_325',['~mpi_atm_sim',['../classcal_1_1mpi__atm__sim.html#add5e6b1af0cefd6f3b91ff143d029548',1,'cal::mpi_atm_sim']]]
+];
diff --git a/doc/html/search/functions_2.html b/docs/html/search/functions_2.html
similarity index 100%
rename from doc/html/search/functions_2.html
rename to docs/html/search/functions_2.html
diff --git a/doc/html/search/functions_2.js b/docs/html/search/functions_2.js
similarity index 100%
rename from doc/html/search/functions_2.js
rename to docs/html/search/functions_2.js
diff --git a/doc/html/search/functions_3.html b/docs/html/search/functions_3.html
similarity index 100%
rename from doc/html/search/functions_3.html
rename to docs/html/search/functions_3.html
diff --git a/doc/html/search/functions_3.js b/docs/html/search/functions_3.js
similarity index 100%
rename from doc/html/search/functions_3.js
rename to docs/html/search/functions_3.js
diff --git a/doc/html/search/functions_4.html b/docs/html/search/functions_4.html
similarity index 100%
rename from doc/html/search/functions_4.html
rename to docs/html/search/functions_4.html
diff --git a/doc/html/search/functions_4.js b/docs/html/search/functions_4.js
similarity index 100%
rename from doc/html/search/functions_4.js
rename to docs/html/search/functions_4.js
diff --git a/doc/html/search/functions_5.html b/docs/html/search/functions_5.html
similarity index 100%
rename from doc/html/search/functions_5.html
rename to docs/html/search/functions_5.html
diff --git a/doc/html/search/functions_5.js b/docs/html/search/functions_5.js
similarity index 100%
rename from doc/html/search/functions_5.js
rename to docs/html/search/functions_5.js
diff --git a/doc/html/search/functions_6.html b/docs/html/search/functions_6.html
similarity index 100%
rename from doc/html/search/functions_6.html
rename to docs/html/search/functions_6.html
diff --git a/doc/html/search/functions_6.js b/docs/html/search/functions_6.js
similarity index 100%
rename from doc/html/search/functions_6.js
rename to docs/html/search/functions_6.js
diff --git a/doc/html/search/functions_7.html b/docs/html/search/functions_7.html
similarity index 100%
rename from doc/html/search/functions_7.html
rename to docs/html/search/functions_7.html
diff --git a/doc/html/search/functions_7.js b/docs/html/search/functions_7.js
similarity index 100%
rename from doc/html/search/functions_7.js
rename to docs/html/search/functions_7.js
diff --git a/doc/html/search/functions_8.html b/docs/html/search/functions_8.html
similarity index 100%
rename from doc/html/search/functions_8.html
rename to docs/html/search/functions_8.html
diff --git a/doc/html/search/functions_8.js b/docs/html/search/functions_8.js
similarity index 100%
rename from doc/html/search/functions_8.js
rename to docs/html/search/functions_8.js
diff --git a/doc/html/search/functions_9.html b/docs/html/search/functions_9.html
similarity index 100%
rename from doc/html/search/functions_9.html
rename to docs/html/search/functions_9.html
diff --git a/doc/html/search/functions_9.js b/docs/html/search/functions_9.js
similarity index 100%
rename from doc/html/search/functions_9.js
rename to docs/html/search/functions_9.js
diff --git a/doc/html/search/functions_a.html b/docs/html/search/functions_a.html
similarity index 100%
rename from doc/html/search/functions_a.html
rename to docs/html/search/functions_a.html
diff --git a/doc/html/search/functions_a.js b/docs/html/search/functions_a.js
similarity index 100%
rename from doc/html/search/functions_a.js
rename to docs/html/search/functions_a.js
diff --git a/doc/html/search/functions_b.html b/docs/html/search/functions_b.html
similarity index 100%
rename from doc/html/search/functions_b.html
rename to docs/html/search/functions_b.html
diff --git a/doc/html/search/functions_b.js b/docs/html/search/functions_b.js
similarity index 100%
rename from doc/html/search/functions_b.js
rename to docs/html/search/functions_b.js
diff --git a/doc/html/search/functions_c.html b/docs/html/search/functions_c.html
similarity index 100%
rename from doc/html/search/functions_c.html
rename to docs/html/search/functions_c.html
diff --git a/doc/html/search/functions_c.js b/docs/html/search/functions_c.js
similarity index 100%
rename from doc/html/search/functions_c.js
rename to docs/html/search/functions_c.js
diff --git a/doc/html/search/functions_d.html b/docs/html/search/functions_d.html
similarity index 100%
rename from doc/html/search/functions_d.html
rename to docs/html/search/functions_d.html
diff --git a/doc/html/search/functions_d.js b/docs/html/search/functions_d.js
similarity index 100%
rename from doc/html/search/functions_d.js
rename to docs/html/search/functions_d.js
diff --git a/doc/html/search/functions_e.html b/docs/html/search/functions_e.html
similarity index 100%
rename from doc/html/search/functions_e.html
rename to docs/html/search/functions_e.html
diff --git a/doc/html/search/functions_e.js b/docs/html/search/functions_e.js
similarity index 100%
rename from doc/html/search/functions_e.js
rename to docs/html/search/functions_e.js
diff --git a/docs/html/search/functions_f.html b/docs/html/search/functions_f.html
new file mode 100644
index 00000000..f17c412c
--- /dev/null
+++ b/docs/html/search/functions_f.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/docs/html/search/functions_f.js b/docs/html/search/functions_f.js
new file mode 100644
index 00000000..7f17ac22
--- /dev/null
+++ b/docs/html/search/functions_f.js
@@ -0,0 +1,14 @@
+var searchData=
+[
+ ['reference_298',['reference',['../classpycal_1_1cache_1_1_cache.html#a0a8a9a795e258ffacb9b7570b7ca3b02',1,'pycal::cache::Cache']]],
+ ['report_299',['report',['../classpycal_1_1cache_1_1_cache.html#acda569b1528d4636658be7163691ef6b',1,'pycal::cache::Cache']]],
+ ['resize_300',['resize',['../classcal_1_1mpi__shmem.html#ac06e026d159e3fd215110ef2ea6f4f20',1,'cal::mpi_shmem']]],
+ ['rng_5fdist_5fnormal_301',['rng_dist_normal',['../namespacecal.html#af67347a20a21ec50aaf3107e8904faa0',1,'cal']]],
+ ['rng_5fdist_5fuint64_302',['rng_dist_uint64',['../namespacecal.html#a119420eb035fa21d5757ec9e3aa17794',1,'cal']]],
+ ['rng_5fdist_5funiform_5f01_303',['rng_dist_uniform_01',['../namespacecal.html#ad85ba135719e986379571382ea3dc993',1,'cal']]],
+ ['rng_5fdist_5funiform_5f11_304',['rng_dist_uniform_11',['../namespacecal.html#af22d8436182a61d901904c393083816f',1,'cal']]],
+ ['rng_5fmulti_5fdist_5fnormal_305',['rng_multi_dist_normal',['../namespacecal.html#ac540295cd153689d6a8ce2e5d8be6b4c',1,'cal']]],
+ ['rng_5fmulti_5fdist_5fuint64_306',['rng_multi_dist_uint64',['../namespacecal.html#aee26a2086905116e32d0f8c667c6034a',1,'cal']]],
+ ['rng_5fmulti_5fdist_5funiform_5f01_307',['rng_multi_dist_uniform_01',['../namespacecal.html#a0cac030c480b3f2dfa9f4c793a448d20',1,'cal']]],
+ ['rng_5fmulti_5fdist_5funiform_5f11_308',['rng_multi_dist_uniform_11',['../namespacecal.html#a9df229f80e9c3ae03920b572be0e28d6',1,'cal']]]
+];
diff --git a/doc/html/search/mag_sel.png b/docs/html/search/mag_sel.png
similarity index 100%
rename from doc/html/search/mag_sel.png
rename to docs/html/search/mag_sel.png
diff --git a/doc/html/search/namespaces_0.html b/docs/html/search/namespaces_0.html
similarity index 100%
rename from doc/html/search/namespaces_0.html
rename to docs/html/search/namespaces_0.html
diff --git a/doc/html/search/namespaces_0.js b/docs/html/search/namespaces_0.js
similarity index 100%
rename from doc/html/search/namespaces_0.js
rename to docs/html/search/namespaces_0.js
diff --git a/doc/html/search/namespaces_1.html b/docs/html/search/namespaces_1.html
similarity index 100%
rename from doc/html/search/namespaces_1.html
rename to docs/html/search/namespaces_1.html
diff --git a/doc/html/search/namespaces_1.js b/docs/html/search/namespaces_1.js
similarity index 100%
rename from doc/html/search/namespaces_1.js
rename to docs/html/search/namespaces_1.js
diff --git a/doc/html/search/namespaces_2.html b/docs/html/search/namespaces_2.html
similarity index 100%
rename from doc/html/search/namespaces_2.html
rename to docs/html/search/namespaces_2.html
diff --git a/doc/html/search/namespaces_2.js b/docs/html/search/namespaces_2.js
similarity index 100%
rename from doc/html/search/namespaces_2.js
rename to docs/html/search/namespaces_2.js
diff --git a/doc/html/search/nomatches.html b/docs/html/search/nomatches.html
similarity index 100%
rename from doc/html/search/nomatches.html
rename to docs/html/search/nomatches.html
diff --git a/doc/html/search/pages_0.html b/docs/html/search/pages_0.html
similarity index 100%
rename from doc/html/search/pages_0.html
rename to docs/html/search/pages_0.html
diff --git a/doc/html/search/pages_0.js b/docs/html/search/pages_0.js
similarity index 100%
rename from doc/html/search/pages_0.js
rename to docs/html/search/pages_0.js
diff --git a/doc/html/search/pages_1.html b/docs/html/search/pages_1.html
similarity index 100%
rename from doc/html/search/pages_1.html
rename to docs/html/search/pages_1.html
diff --git a/doc/html/search/pages_1.js b/docs/html/search/pages_1.js
similarity index 100%
rename from doc/html/search/pages_1.js
rename to docs/html/search/pages_1.js
diff --git a/doc/html/search/search.css b/docs/html/search/search.css
similarity index 100%
rename from doc/html/search/search.css
rename to docs/html/search/search.css
diff --git a/doc/html/search/search.js b/docs/html/search/search.js
similarity index 100%
rename from doc/html/search/search.js
rename to docs/html/search/search.js
diff --git a/doc/html/search/search_l.png b/docs/html/search/search_l.png
similarity index 100%
rename from doc/html/search/search_l.png
rename to docs/html/search/search_l.png
diff --git a/doc/html/search/search_m.png b/docs/html/search/search_m.png
similarity index 100%
rename from doc/html/search/search_m.png
rename to docs/html/search/search_m.png
diff --git a/doc/html/search/search_r.png b/docs/html/search/search_r.png
similarity index 100%
rename from doc/html/search/search_r.png
rename to docs/html/search/search_r.png
diff --git a/doc/html/search/searchdata.js b/docs/html/search/searchdata.js
similarity index 100%
rename from doc/html/search/searchdata.js
rename to docs/html/search/searchdata.js
diff --git a/doc/html/search/typedefs_0.html b/docs/html/search/typedefs_0.html
similarity index 100%
rename from doc/html/search/typedefs_0.html
rename to docs/html/search/typedefs_0.html
diff --git a/doc/html/search/typedefs_0.js b/docs/html/search/typedefs_0.js
similarity index 100%
rename from doc/html/search/typedefs_0.js
rename to docs/html/search/typedefs_0.js
diff --git a/doc/html/search/typedefs_1.html b/docs/html/search/typedefs_1.html
similarity index 100%
rename from doc/html/search/typedefs_1.html
rename to docs/html/search/typedefs_1.html
diff --git a/doc/html/search/typedefs_1.js b/docs/html/search/typedefs_1.js
similarity index 100%
rename from doc/html/search/typedefs_1.js
rename to docs/html/search/typedefs_1.js
diff --git a/doc/html/search/variables_0.html b/docs/html/search/variables_0.html
similarity index 100%
rename from doc/html/search/variables_0.html
rename to docs/html/search/variables_0.html
diff --git a/doc/html/search/variables_0.js b/docs/html/search/variables_0.js
similarity index 100%
rename from doc/html/search/variables_0.js
rename to docs/html/search/variables_0.js
diff --git a/doc/html/search/variables_1.html b/docs/html/search/variables_1.html
similarity index 100%
rename from doc/html/search/variables_1.html
rename to docs/html/search/variables_1.html
diff --git a/doc/html/search/variables_1.js b/docs/html/search/variables_1.js
similarity index 100%
rename from doc/html/search/variables_1.js
rename to docs/html/search/variables_1.js
diff --git a/doc/html/search/variables_2.html b/docs/html/search/variables_2.html
similarity index 100%
rename from doc/html/search/variables_2.html
rename to docs/html/search/variables_2.html
diff --git a/doc/html/search/variables_2.js b/docs/html/search/variables_2.js
similarity index 100%
rename from doc/html/search/variables_2.js
rename to docs/html/search/variables_2.js
diff --git a/doc/html/search/variables_3.html b/docs/html/search/variables_3.html
similarity index 100%
rename from doc/html/search/variables_3.html
rename to docs/html/search/variables_3.html
diff --git a/doc/html/search/variables_3.js b/docs/html/search/variables_3.js
similarity index 100%
rename from doc/html/search/variables_3.js
rename to docs/html/search/variables_3.js
diff --git a/doc/html/search/variables_4.html b/docs/html/search/variables_4.html
similarity index 100%
rename from doc/html/search/variables_4.html
rename to docs/html/search/variables_4.html
diff --git a/doc/html/search/variables_4.js b/docs/html/search/variables_4.js
similarity index 100%
rename from doc/html/search/variables_4.js
rename to docs/html/search/variables_4.js
diff --git a/doc/html/search/variables_5.html b/docs/html/search/variables_5.html
similarity index 100%
rename from doc/html/search/variables_5.html
rename to docs/html/search/variables_5.html
diff --git a/doc/html/search/variables_5.js b/docs/html/search/variables_5.js
similarity index 100%
rename from doc/html/search/variables_5.js
rename to docs/html/search/variables_5.js
diff --git a/doc/html/search/variables_6.html b/docs/html/search/variables_6.html
similarity index 100%
rename from doc/html/search/variables_6.html
rename to docs/html/search/variables_6.html
diff --git a/doc/html/search/variables_6.js b/docs/html/search/variables_6.js
similarity index 100%
rename from doc/html/search/variables_6.js
rename to docs/html/search/variables_6.js
diff --git a/doc/html/splitbar.png b/docs/html/splitbar.png
similarity index 100%
rename from doc/html/splitbar.png
rename to docs/html/splitbar.png
diff --git a/doc/html/sse_8h_source.html b/docs/html/sse_8h_source.html
similarity index 100%
rename from doc/html/sse_8h_source.html
rename to docs/html/sse_8h_source.html
diff --git a/doc/html/structcal_1_1_aligned_allocator_1_1rebind-members.html b/docs/html/structcal_1_1_aligned_allocator_1_1rebind-members.html
similarity index 100%
rename from doc/html/structcal_1_1_aligned_allocator_1_1rebind-members.html
rename to docs/html/structcal_1_1_aligned_allocator_1_1rebind-members.html
diff --git a/doc/html/structcal_1_1_aligned_allocator_1_1rebind.html b/docs/html/structcal_1_1_aligned_allocator_1_1rebind.html
similarity index 100%
rename from doc/html/structcal_1_1_aligned_allocator_1_1rebind.html
rename to docs/html/structcal_1_1_aligned_allocator_1_1rebind.html
diff --git a/doc/html/structr123_1_1_engine-members.html b/docs/html/structr123_1_1_engine-members.html
similarity index 100%
rename from doc/html/structr123_1_1_engine-members.html
rename to docs/html/structr123_1_1_engine-members.html
diff --git a/doc/html/structr123_1_1_engine.html b/docs/html/structr123_1_1_engine.html
similarity index 100%
rename from doc/html/structr123_1_1_engine.html
rename to docs/html/structr123_1_1_engine.html
diff --git a/doc/html/structr123_1_1_reinterpret_ctr-members.html b/docs/html/structr123_1_1_reinterpret_ctr-members.html
similarity index 100%
rename from doc/html/structr123_1_1_reinterpret_ctr-members.html
rename to docs/html/structr123_1_1_reinterpret_ctr-members.html
diff --git a/doc/html/structr123_1_1_reinterpret_ctr.html b/docs/html/structr123_1_1_reinterpret_ctr.html
similarity index 100%
rename from doc/html/structr123_1_1_reinterpret_ctr.html
rename to docs/html/structr123_1_1_reinterpret_ctr.html
diff --git a/doc/html/structr123_1_1make__signed.html b/docs/html/structr123_1_1make__signed.html
similarity index 100%
rename from doc/html/structr123_1_1make__signed.html
rename to docs/html/structr123_1_1make__signed.html
diff --git a/doc/html/structr123_1_1make__unsigned.html b/docs/html/structr123_1_1make__unsigned.html
similarity index 100%
rename from doc/html/structr123_1_1make__unsigned.html
rename to docs/html/structr123_1_1make__unsigned.html
diff --git a/doc/html/sunprofeatures_8h_source.html b/docs/html/sunprofeatures_8h_source.html
similarity index 100%
rename from doc/html/sunprofeatures_8h_source.html
rename to docs/html/sunprofeatures_8h_source.html
diff --git a/doc/html/sync_off.png b/docs/html/sync_off.png
similarity index 100%
rename from doc/html/sync_off.png
rename to docs/html/sync_off.png
diff --git a/doc/html/sync_on.png b/docs/html/sync_on.png
similarity index 100%
rename from doc/html/sync_on.png
rename to docs/html/sync_on.png
diff --git a/doc/html/tab_a.png b/docs/html/tab_a.png
similarity index 100%
rename from doc/html/tab_a.png
rename to docs/html/tab_a.png
diff --git a/doc/html/tab_b.png b/docs/html/tab_b.png
similarity index 100%
rename from doc/html/tab_b.png
rename to docs/html/tab_b.png
diff --git a/doc/html/tab_h.png b/docs/html/tab_h.png
similarity index 100%
rename from doc/html/tab_h.png
rename to docs/html/tab_h.png
diff --git a/doc/html/tab_s.png b/docs/html/tab_s.png
similarity index 100%
rename from doc/html/tab_s.png
rename to docs/html/tab_s.png
diff --git a/doc/html/tabs.css b/docs/html/tabs.css
similarity index 100%
rename from doc/html/tabs.css
rename to docs/html/tabs.css
diff --git a/doc/html/threefry_8h_source.html b/docs/html/threefry_8h_source.html
similarity index 100%
rename from doc/html/threefry_8h_source.html
rename to docs/html/threefry_8h_source.html
diff --git a/doc/html/uniform_8hpp_source.html b/docs/html/uniform_8hpp_source.html
similarity index 100%
rename from doc/html/uniform_8hpp_source.html
rename to docs/html/uniform_8hpp_source.html
diff --git a/doc/html/xlcfeatures_8h_source.html b/docs/html/xlcfeatures_8h_source.html
similarity index 100%
rename from doc/html/xlcfeatures_8h_source.html
rename to docs/html/xlcfeatures_8h_source.html
diff --git a/doc/inle.png b/docs/inle.png
similarity index 100%
rename from doc/inle.png
rename to docs/inle.png
diff --git a/doc/latex/Makefile b/docs/latex/Makefile
similarity index 100%
rename from doc/latex/Makefile
rename to docs/latex/Makefile
diff --git a/doc/latex/annotated.tex b/docs/latex/annotated.tex
similarity index 100%
rename from doc/latex/annotated.tex
rename to docs/latex/annotated.tex
diff --git a/doc/latex/church_model.tex b/docs/latex/church_model.tex
similarity index 100%
rename from doc/latex/church_model.tex
rename to docs/latex/church_model.tex
diff --git a/doc/latex/classcal_1_1_aligned_allocator.tex b/docs/latex/classcal_1_1_aligned_allocator.tex
similarity index 100%
rename from doc/latex/classcal_1_1_aligned_allocator.tex
rename to docs/latex/classcal_1_1_aligned_allocator.tex
diff --git a/doc/latex/classcal_1_1_environment.tex b/docs/latex/classcal_1_1_environment.tex
similarity index 100%
rename from doc/latex/classcal_1_1_environment.tex
rename to docs/latex/classcal_1_1_environment.tex
diff --git a/doc/latex/classcal_1_1_global_timers.tex b/docs/latex/classcal_1_1_global_timers.tex
similarity index 100%
rename from doc/latex/classcal_1_1_global_timers.tex
rename to docs/latex/classcal_1_1_global_timers.tex
diff --git a/doc/latex/classcal_1_1_logger.tex b/docs/latex/classcal_1_1_logger.tex
similarity index 100%
rename from doc/latex/classcal_1_1_logger.tex
rename to docs/latex/classcal_1_1_logger.tex
diff --git a/doc/latex/classcal_1_1_timer.tex b/docs/latex/classcal_1_1_timer.tex
similarity index 100%
rename from doc/latex/classcal_1_1_timer.tex
rename to docs/latex/classcal_1_1_timer.tex
diff --git a/doc/latex/classcal_1_1atm__sim.tex b/docs/latex/classcal_1_1atm__sim.tex
similarity index 100%
rename from doc/latex/classcal_1_1atm__sim.tex
rename to docs/latex/classcal_1_1atm__sim.tex
diff --git a/doc/latex/classcal_1_1mpi__atm__sim.tex b/docs/latex/classcal_1_1mpi__atm__sim.tex
similarity index 100%
rename from doc/latex/classcal_1_1mpi__atm__sim.tex
rename to docs/latex/classcal_1_1mpi__atm__sim.tex
diff --git a/doc/latex/classcal_1_1mpi__atm__sim__coll__graph.md5 b/docs/latex/classcal_1_1mpi__atm__sim__coll__graph.md5
similarity index 100%
rename from doc/latex/classcal_1_1mpi__atm__sim__coll__graph.md5
rename to docs/latex/classcal_1_1mpi__atm__sim__coll__graph.md5
diff --git a/doc/latex/classcal_1_1mpi__atm__sim__coll__graph.pdf b/docs/latex/classcal_1_1mpi__atm__sim__coll__graph.pdf
similarity index 100%
rename from doc/latex/classcal_1_1mpi__atm__sim__coll__graph.pdf
rename to docs/latex/classcal_1_1mpi__atm__sim__coll__graph.pdf
diff --git a/doc/latex/classcal_1_1mpi__shmem.tex b/docs/latex/classcal_1_1mpi__shmem.tex
similarity index 100%
rename from doc/latex/classcal_1_1mpi__shmem.tex
rename to docs/latex/classcal_1_1mpi__shmem.tex
diff --git a/docs/latex/classpycal_1_1cache_1_1_cache.tex b/docs/latex/classpycal_1_1cache_1_1_cache.tex
new file mode 100644
index 00000000..0642e0c7
--- /dev/null
+++ b/docs/latex/classpycal_1_1cache_1_1_cache.tex
@@ -0,0 +1,229 @@
+\hypertarget{classpycal_1_1cache_1_1_cache}{}\doxysection{pycal.\+cache.\+Cache Class Reference}
+\label{classpycal_1_1cache_1_1_cache}\index{pycal.cache.Cache@{pycal.cache.Cache}}
+
+
+Inheritance diagram for pycal.\+cache.\+Cache\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=187pt]{classpycal_1_1cache_1_1_cache__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+cache.\+Cache\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=187pt]{classpycal_1_1cache_1_1_cache__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1cache_1_1_cache_a5e86dec7a3a5b4a4feac98895f5b6a13}\label{classpycal_1_1cache_1_1_cache_a5e86dec7a3a5b4a4feac98895f5b6a13}}
+def {\bfseries \+\_\+\+\_\+init\+\_\+\+\_\+} (self, pymem=False)
+\item
+def \mbox{\hyperlink{classpycal_1_1cache_1_1_cache_a103f2b2f042c41f44fea7eab4e9c9cf0}{clear}} (self, pattern=None)
+\item
+def \mbox{\hyperlink{classpycal_1_1cache_1_1_cache_ad63f85b0fd7a19cfca1944f7ef1d2292}{create}} (self, name, type, shape)
+\item
+def \mbox{\hyperlink{classpycal_1_1cache_1_1_cache_a4c7bdee7385a29e52b034f96bb751fcd}{put}} (self, name, data, replace=False)
+\item
+def \mbox{\hyperlink{classpycal_1_1cache_1_1_cache_ae3b6273e52035f64154112f10aaf25bf}{add\+\_\+alias}} (self, alias, name)
+\item
+def \mbox{\hyperlink{classpycal_1_1cache_1_1_cache_a3fd96ba982f1eca4cc117cdfa8f7908d}{destroy}} (self, name)
+\item
+def \mbox{\hyperlink{classpycal_1_1cache_1_1_cache_a9d34e07145794bfc3d23dc9021a0e364}{exists}} (self, name)
+\item
+def \mbox{\hyperlink{classpycal_1_1cache_1_1_cache_a0a8a9a795e258ffacb9b7570b7ca3b02}{reference}} (self, name)
+\item
+def \mbox{\hyperlink{classpycal_1_1cache_1_1_cache_a487bb62878b52a8b0c465e31ba72bd83}{keys}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1cache_1_1_cache_a7c0f905cc54e8e16631bc7f13fa0e73b}{aliases}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1cache_1_1_cache_acda569b1528d4636658be7163691ef6b}{report}} (self, silent=False)
+\end{DoxyCompactItemize}
+\doxysubsection*{Private Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1cache_1_1_cache_a414fdbc56f3a2fe51baf409a31ccdfca}\label{classpycal_1_1cache_1_1_cache_a414fdbc56f3a2fe51baf409a31ccdfca}}
+{\bfseries \+\_\+pymem}
+\item
+\mbox{\Hypertarget{classpycal_1_1cache_1_1_cache_aa15919a59a1a9286e6ac1463a3fced59}\label{classpycal_1_1cache_1_1_cache_aa15919a59a1a9286e6ac1463a3fced59}}
+{\bfseries \+\_\+buffers}
+\item
+\mbox{\Hypertarget{classpycal_1_1cache_1_1_cache_a1a9f83f8394765e1bf3ccf1367b42857}\label{classpycal_1_1cache_1_1_cache_a1a9f83f8394765e1bf3ccf1367b42857}}
+{\bfseries \+\_\+dtypes}
+\item
+\mbox{\Hypertarget{classpycal_1_1cache_1_1_cache_a6c0818c9c1522f09b5bbff9721c0b3f1}\label{classpycal_1_1cache_1_1_cache_a6c0818c9c1522f09b5bbff9721c0b3f1}}
+{\bfseries \+\_\+shapes}
+\item
+\mbox{\Hypertarget{classpycal_1_1cache_1_1_cache_aca8ff92c611e44b318ea8e5a0367e152}\label{classpycal_1_1cache_1_1_cache_aca8ff92c611e44b318ea8e5a0367e152}}
+{\bfseries \+\_\+aliases}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+\begin{DoxyVerb}Data cache with explicit memory management.
+
+This class acts as a dictionary of named arrays. Each array may be
+multi-dimensional.
+
+Args:
+ pymem (bool): if True, use python memory rather than external
+ allocations in C. Only used for testing.
+\end{DoxyVerb}
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classpycal_1_1cache_1_1_cache_ae3b6273e52035f64154112f10aaf25bf}\label{classpycal_1_1cache_1_1_cache_ae3b6273e52035f64154112f10aaf25bf}}
+\index{pycal.cache.Cache@{pycal.cache.Cache}!add\_alias@{add\_alias}}
+\index{add\_alias@{add\_alias}!pycal.cache.Cache@{pycal.cache.Cache}}
+\doxysubsubsection{\texorpdfstring{add\_alias()}{add\_alias()}}
+{\footnotesize\ttfamily def pycal.\+cache.\+Cache.\+add\+\_\+alias (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{alias, }\item[{}]{name }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Add an alias to a name that already exists in the cache.
+
+Args:
+ alias (str): alias to create
+ name (str): an existing key in the cache
+
+Returns:
+ None\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1cache_1_1_cache_a7c0f905cc54e8e16631bc7f13fa0e73b}\label{classpycal_1_1cache_1_1_cache_a7c0f905cc54e8e16631bc7f13fa0e73b}}
+\index{pycal.cache.Cache@{pycal.cache.Cache}!aliases@{aliases}}
+\index{aliases@{aliases}!pycal.cache.Cache@{pycal.cache.Cache}}
+\doxysubsubsection{\texorpdfstring{aliases()}{aliases()}}
+{\footnotesize\ttfamily def pycal.\+cache.\+Cache.\+aliases (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Return a dictionary of all the aliases to keys in the cache.
+
+Returns:
+ (dict): Dictionary of aliases.\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1cache_1_1_cache_a103f2b2f042c41f44fea7eab4e9c9cf0}\label{classpycal_1_1cache_1_1_cache_a103f2b2f042c41f44fea7eab4e9c9cf0}}
+\index{pycal.cache.Cache@{pycal.cache.Cache}!clear@{clear}}
+\index{clear@{clear}!pycal.cache.Cache@{pycal.cache.Cache}}
+\doxysubsubsection{\texorpdfstring{clear()}{clear()}}
+{\footnotesize\ttfamily def pycal.\+cache.\+Cache.\+clear (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{pattern = {\ttfamily None} }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Clear one or more buffers.
+
+Args:
+ pattern (str): a regular expression to match against the buffer
+names when determining what should be cleared. If None,
+then all buffers are cleared.
+
+Returns:
+ None\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1cache_1_1_cache_ad63f85b0fd7a19cfca1944f7ef1d2292}\label{classpycal_1_1cache_1_1_cache_ad63f85b0fd7a19cfca1944f7ef1d2292}}
+\index{pycal.cache.Cache@{pycal.cache.Cache}!create@{create}}
+\index{create@{create}!pycal.cache.Cache@{pycal.cache.Cache}}
+\doxysubsubsection{\texorpdfstring{create()}{create()}}
+{\footnotesize\ttfamily def pycal.\+cache.\+Cache.\+create (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{name, }\item[{}]{type, }\item[{}]{shape }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Create a named data buffer of the given type and shape.
+
+Args:
+ name (str): the name to assign to the buffer.
+ type (numpy.dtype): one of the supported numpy types.
+ shape (tuple): a tuple containing the shape of the buffer.
+
+Returns:
+ (array): a reference to the allocated array.\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1cache_1_1_cache_a3fd96ba982f1eca4cc117cdfa8f7908d}\label{classpycal_1_1cache_1_1_cache_a3fd96ba982f1eca4cc117cdfa8f7908d}}
+\index{pycal.cache.Cache@{pycal.cache.Cache}!destroy@{destroy}}
+\index{destroy@{destroy}!pycal.cache.Cache@{pycal.cache.Cache}}
+\doxysubsubsection{\texorpdfstring{destroy()}{destroy()}}
+{\footnotesize\ttfamily def pycal.\+cache.\+Cache.\+destroy (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{name }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Deallocate the specified buffer.
+
+Only call this if all numpy arrays that reference the memory
+are out of use. If the specified name is an alias, then the alias
+is simply deleted. If the specified name is an actual buffer, then
+all aliases pointing to that buffer are also deleted.
+
+Args:
+ name (str): the name of the buffer or alias to destroy.
+
+Returns:
+ None\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1cache_1_1_cache_a9d34e07145794bfc3d23dc9021a0e364}\label{classpycal_1_1cache_1_1_cache_a9d34e07145794bfc3d23dc9021a0e364}}
+\index{pycal.cache.Cache@{pycal.cache.Cache}!exists@{exists}}
+\index{exists@{exists}!pycal.cache.Cache@{pycal.cache.Cache}}
+\doxysubsubsection{\texorpdfstring{exists()}{exists()}}
+{\footnotesize\ttfamily def pycal.\+cache.\+Cache.\+exists (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{name }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Check whether a buffer exists.
+
+Args:
+ name (str): the name of the buffer to search for.
+
+Returns:
+ (bool): True if a buffer or alias exists with the given name.\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1cache_1_1_cache_a487bb62878b52a8b0c465e31ba72bd83}\label{classpycal_1_1cache_1_1_cache_a487bb62878b52a8b0c465e31ba72bd83}}
+\index{pycal.cache.Cache@{pycal.cache.Cache}!keys@{keys}}
+\index{keys@{keys}!pycal.cache.Cache@{pycal.cache.Cache}}
+\doxysubsubsection{\texorpdfstring{keys()}{keys()}}
+{\footnotesize\ttfamily def pycal.\+cache.\+Cache.\+keys (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Return a list of all the keys in the cache.
+
+Returns:
+ (list): List of key strings.\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1cache_1_1_cache_a4c7bdee7385a29e52b034f96bb751fcd}\label{classpycal_1_1cache_1_1_cache_a4c7bdee7385a29e52b034f96bb751fcd}}
+\index{pycal.cache.Cache@{pycal.cache.Cache}!put@{put}}
+\index{put@{put}!pycal.cache.Cache@{pycal.cache.Cache}}
+\doxysubsubsection{\texorpdfstring{put()}{put()}}
+{\footnotesize\ttfamily def pycal.\+cache.\+Cache.\+put (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{name, }\item[{}]{data, }\item[{}]{replace = {\ttfamily False} }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Create a named data buffer to hold the provided data.
+
+If replace is True, existing buffer of the same name is first
+destroyed. If replace is True and the name is an alias, it is
+promoted to a new data buffer.
+
+Args:
+ name (str): the name to assign to the buffer.
+ data (numpy.ndarray): Numpy array
+ replace (bool): Overwrite any existing keys
+
+Returns:
+ (array): a numpy array wrapping the raw data buffer.\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1cache_1_1_cache_a0a8a9a795e258ffacb9b7570b7ca3b02}\label{classpycal_1_1cache_1_1_cache_a0a8a9a795e258ffacb9b7570b7ca3b02}}
+\index{pycal.cache.Cache@{pycal.cache.Cache}!reference@{reference}}
+\index{reference@{reference}!pycal.cache.Cache@{pycal.cache.Cache}}
+\doxysubsubsection{\texorpdfstring{reference()}{reference()}}
+{\footnotesize\ttfamily def pycal.\+cache.\+Cache.\+reference (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{name }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Return a numpy array pointing to the buffer.
+
+The returned array will wrap a pointer to the raw buffer, but will
+not claim ownership. When the numpy array is garbage collected, it
+will NOT attempt to free the memory (you must manually use the
+destroy method).
+
+Args:
+ name (str): the name of the buffer to return.
+
+Returns:
+ (array): a numpy array wrapping the raw data buffer.\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1cache_1_1_cache_acda569b1528d4636658be7163691ef6b}\label{classpycal_1_1cache_1_1_cache_acda569b1528d4636658be7163691ef6b}}
+\index{pycal.cache.Cache@{pycal.cache.Cache}!report@{report}}
+\index{report@{report}!pycal.cache.Cache@{pycal.cache.Cache}}
+\doxysubsubsection{\texorpdfstring{report()}{report()}}
+{\footnotesize\ttfamily def pycal.\+cache.\+Cache.\+report (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{silent = {\ttfamily False} }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Report memory usage.
+
+Args:
+ silent (bool): Count and return the memory without printing.
+
+Returns:
+ (int): Amount of allocated memory in bytes\end{DoxyVerb}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/cache.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1cache_1_1_cache__coll__graph.md5 b/docs/latex/classpycal_1_1cache_1_1_cache__coll__graph.md5
new file mode 100644
index 00000000..165c25d1
--- /dev/null
+++ b/docs/latex/classpycal_1_1cache_1_1_cache__coll__graph.md5
@@ -0,0 +1 @@
+7148038fadcad2c0a2956cb313a6b422
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1cache_1_1_cache__coll__graph.pdf b/docs/latex/classpycal_1_1cache_1_1_cache__coll__graph.pdf
new file mode 100644
index 00000000..1e2aeeb8
Binary files /dev/null and b/docs/latex/classpycal_1_1cache_1_1_cache__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1cache_1_1_cache__inherit__graph.md5 b/docs/latex/classpycal_1_1cache_1_1_cache__inherit__graph.md5
new file mode 100644
index 00000000..165c25d1
--- /dev/null
+++ b/docs/latex/classpycal_1_1cache_1_1_cache__inherit__graph.md5
@@ -0,0 +1 @@
+7148038fadcad2c0a2956cb313a6b422
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1cache_1_1_cache__inherit__graph.pdf b/docs/latex/classpycal_1_1cache_1_1_cache__inherit__graph.pdf
new file mode 100644
index 00000000..1e2aeeb8
Binary files /dev/null and b/docs/latex/classpycal_1_1cache_1_1_cache__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1dist_1_1_data.tex b/docs/latex/classpycal_1_1dist_1_1_data.tex
new file mode 100644
index 00000000..91b1338b
--- /dev/null
+++ b/docs/latex/classpycal_1_1dist_1_1_data.tex
@@ -0,0 +1,132 @@
+\hypertarget{classpycal_1_1dist_1_1_data}{}\doxysection{pycal.\+dist.\+Data Class Reference}
+\label{classpycal_1_1dist_1_1_data}\index{pycal.dist.Data@{pycal.dist.Data}}
+
+
+Inheritance diagram for pycal.\+dist.\+Data\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=170pt]{classpycal_1_1dist_1_1_data__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+dist.\+Data\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=170pt]{classpycal_1_1dist_1_1_data__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1dist_1_1_data_a826e16453062cedca69e66bd81897aa8}\label{classpycal_1_1dist_1_1_data_a826e16453062cedca69e66bd81897aa8}}
+def {\bfseries \+\_\+\+\_\+init\+\_\+\+\_\+} (self, \mbox{\hyperlink{classpycal_1_1dist_1_1_data_a7d45194f2a7b693f081da6d3b2ec2712}{comm}}=\mbox{\hyperlink{classpycal_1_1mpi_1_1_comm}{Comm}}())
+\item
+\mbox{\Hypertarget{classpycal_1_1dist_1_1_data_a39ca68226028afbf5195ecbaf9679d2e}\label{classpycal_1_1dist_1_1_data_a39ca68226028afbf5195ecbaf9679d2e}}
+def {\bfseries \+\_\+\+\_\+contains\+\_\+\+\_\+} (self, key)
+\item
+\mbox{\Hypertarget{classpycal_1_1dist_1_1_data_a04d77648f156e7312cfc90feefe7db6d}\label{classpycal_1_1dist_1_1_data_a04d77648f156e7312cfc90feefe7db6d}}
+def {\bfseries \+\_\+\+\_\+getitem\+\_\+\+\_\+} (self, key)
+\item
+\mbox{\Hypertarget{classpycal_1_1dist_1_1_data_a81c0df5b64dcca636964b15b870cff06}\label{classpycal_1_1dist_1_1_data_a81c0df5b64dcca636964b15b870cff06}}
+def {\bfseries \+\_\+\+\_\+setitem\+\_\+\+\_\+} (self, key, value)
+\item
+def \mbox{\hyperlink{classpycal_1_1dist_1_1_data_a7d45194f2a7b693f081da6d3b2ec2712}{comm}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1dist_1_1_data_ae517a23004d3f79753f8ebad727c1843}{clear}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1dist_1_1_data_a0f27f6fdb10036c2c900e05446852e41}{info}} (self, handle=None, flag\+\_\+mask=255, common\+\_\+flag\+\_\+mask=255, intervals=None)
+\item
+def \mbox{\hyperlink{classpycal_1_1dist_1_1_data_a15544fb4ddc14de4b136bcb4b66279c6}{split}} (self, key)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1dist_1_1_data_aff90c694f471d210732e7991d7e85437}\label{classpycal_1_1dist_1_1_data_aff90c694f471d210732e7991d7e85437}}
+{\bfseries obs}
+\end{DoxyCompactItemize}
+\doxysubsection*{Private Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1dist_1_1_data_aca86e60d0d9297bbae48ae00fb211b4b}\label{classpycal_1_1dist_1_1_data_aca86e60d0d9297bbae48ae00fb211b4b}}
+{\bfseries \+\_\+comm}
+\item
+\mbox{\Hypertarget{classpycal_1_1dist_1_1_data_aa375979c3442af525d7186bf7590945a}\label{classpycal_1_1dist_1_1_data_aa375979c3442af525d7186bf7590945a}}
+{\bfseries \+\_\+metadata}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+\begin{DoxyVerb}Class which represents distributed data
+
+A Data object contains a list of observations assigned to
+each process group in the Comm.
+
+Args:
+ comm (:class:`cal.Comm`): the cal Comm class for distributing the data.\end{DoxyVerb}
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classpycal_1_1dist_1_1_data_ae517a23004d3f79753f8ebad727c1843}\label{classpycal_1_1dist_1_1_data_ae517a23004d3f79753f8ebad727c1843}}
+\index{pycal.dist.Data@{pycal.dist.Data}!clear@{clear}}
+\index{clear@{clear}!pycal.dist.Data@{pycal.dist.Data}}
+\doxysubsubsection{\texorpdfstring{clear()}{clear()}}
+{\footnotesize\ttfamily def pycal.\+dist.\+Data.\+clear (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Clear the list of observations.
+\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1dist_1_1_data_a7d45194f2a7b693f081da6d3b2ec2712}\label{classpycal_1_1dist_1_1_data_a7d45194f2a7b693f081da6d3b2ec2712}}
+\index{pycal.dist.Data@{pycal.dist.Data}!comm@{comm}}
+\index{comm@{comm}!pycal.dist.Data@{pycal.dist.Data}}
+\doxysubsubsection{\texorpdfstring{comm()}{comm()}}
+{\footnotesize\ttfamily def pycal.\+dist.\+Data.\+comm (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}The cal.Comm over which the data is distributed.
+\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1dist_1_1_data_a0f27f6fdb10036c2c900e05446852e41}\label{classpycal_1_1dist_1_1_data_a0f27f6fdb10036c2c900e05446852e41}}
+\index{pycal.dist.Data@{pycal.dist.Data}!info@{info}}
+\index{info@{info}!pycal.dist.Data@{pycal.dist.Data}}
+\doxysubsubsection{\texorpdfstring{info()}{info()}}
+{\footnotesize\ttfamily def pycal.\+dist.\+Data.\+info (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{handle = {\ttfamily None}, }\item[{}]{flag\+\_\+mask = {\ttfamily 255}, }\item[{}]{common\+\_\+flag\+\_\+mask = {\ttfamily 255}, }\item[{}]{intervals = {\ttfamily None} }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Print information about the distributed data.
+
+Information is written to the specified file handle. Only the rank 0
+process writes. Optional flag masks are used when computing the
+number of good samples.
+
+Args:
+ handle (descriptor): file descriptor supporting the write()
+method. If None, use print().
+ flag_mask (int): bit mask to use when computing the number of
+good detector samples.
+ common_flag_mask (int): bit mask to use when computing the
+number of good telescope pointings.
+ intervals (str): optional name of an intervals object to print
+from each observation.
+
+Returns:
+ None\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1dist_1_1_data_a15544fb4ddc14de4b136bcb4b66279c6}\label{classpycal_1_1dist_1_1_data_a15544fb4ddc14de4b136bcb4b66279c6}}
+\index{pycal.dist.Data@{pycal.dist.Data}!split@{split}}
+\index{split@{split}!pycal.dist.Data@{pycal.dist.Data}}
+\doxysubsubsection{\texorpdfstring{split()}{split()}}
+{\footnotesize\ttfamily def pycal.\+dist.\+Data.\+split (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{key }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Split the Data object.
+
+Split the Data object based on the value of `key` in the
+observation dictionary.
+
+Args:
+ key(str) : Observation key to use.
+
+Returns:
+ List of 2-tuples of the form (value, data)\end{DoxyVerb}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/dist.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1dist_1_1_data__coll__graph.md5 b/docs/latex/classpycal_1_1dist_1_1_data__coll__graph.md5
new file mode 100644
index 00000000..2bb51c5c
--- /dev/null
+++ b/docs/latex/classpycal_1_1dist_1_1_data__coll__graph.md5
@@ -0,0 +1 @@
+c9778a2545cf016451d9d40c2e41fdc1
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1dist_1_1_data__coll__graph.pdf b/docs/latex/classpycal_1_1dist_1_1_data__coll__graph.pdf
new file mode 100644
index 00000000..31cbb13b
Binary files /dev/null and b/docs/latex/classpycal_1_1dist_1_1_data__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1dist_1_1_data__inherit__graph.md5 b/docs/latex/classpycal_1_1dist_1_1_data__inherit__graph.md5
new file mode 100644
index 00000000..2bb51c5c
--- /dev/null
+++ b/docs/latex/classpycal_1_1dist_1_1_data__inherit__graph.md5
@@ -0,0 +1 @@
+c9778a2545cf016451d9d40c2e41fdc1
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1dist_1_1_data__inherit__graph.pdf b/docs/latex/classpycal_1_1dist_1_1_data__inherit__graph.pdf
new file mode 100644
index 00000000..31cbb13b
Binary files /dev/null and b/docs/latex/classpycal_1_1dist_1_1_data__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1mpi_1_1_comm.tex b/docs/latex/classpycal_1_1mpi_1_1_comm.tex
new file mode 100644
index 00000000..353abebd
--- /dev/null
+++ b/docs/latex/classpycal_1_1mpi_1_1_comm.tex
@@ -0,0 +1,176 @@
+\hypertarget{classpycal_1_1mpi_1_1_comm}{}\doxysection{pycal.\+mpi.\+Comm Class Reference}
+\label{classpycal_1_1mpi_1_1_comm}\index{pycal.mpi.Comm@{pycal.mpi.Comm}}
+
+
+Inheritance diagram for pycal.\+mpi.\+Comm\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=180pt]{classpycal_1_1mpi_1_1_comm__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+mpi.\+Comm\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=180pt]{classpycal_1_1mpi_1_1_comm__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_a6512bf727cb677b4fd335c4df34ff801}\label{classpycal_1_1mpi_1_1_comm_a6512bf727cb677b4fd335c4df34ff801}}
+def {\bfseries \+\_\+\+\_\+init\+\_\+\+\_\+} (self, world=None, groupsize=0)
+\item
+def \mbox{\hyperlink{classpycal_1_1mpi_1_1_comm_a8453456792a581a039b51f695f2866a4}{world\+\_\+size}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1mpi_1_1_comm_aef1ab9de83eaa00cd432b2795ced31d9}{world\+\_\+rank}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1mpi_1_1_comm_a5259604c988d294cc4fc5493ce631271}{ngroups}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1mpi_1_1_comm_a636fd91b72ccb85e76d7e1c9640635b1}{group}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1mpi_1_1_comm_ac323805bf823c9d8183e0c031f578dac}{group\+\_\+size}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1mpi_1_1_comm_ae0845f4d4f0cc2ddc47282a28ec134f5}{group\+\_\+rank}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1mpi_1_1_comm_a319b0fa08b1e2be3f6bbdd5ea883fa5d}{comm\+\_\+world}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1mpi_1_1_comm_a3162234cd2deeabcfe4a604b98394315}{comm\+\_\+group}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1mpi_1_1_comm_a1d453c42c402b6cbcb0f808d3e3a6d2a}{comm\+\_\+rank}} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_ae6bcff357b6188a84b7cade3aaf0dd45}\label{classpycal_1_1mpi_1_1_comm_ae6bcff357b6188a84b7cade3aaf0dd45}}
+def {\bfseries \+\_\+\+\_\+repr\+\_\+\+\_\+} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Private Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_ac8317c38c5515f0dbb23369d2c56c249}\label{classpycal_1_1mpi_1_1_comm_ac8317c38c5515f0dbb23369d2c56c249}}
+{\bfseries \+\_\+wcomm}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_a6b6f72c6bc65348f7af677a5efa76846}\label{classpycal_1_1mpi_1_1_comm_a6b6f72c6bc65348f7af677a5efa76846}}
+{\bfseries \+\_\+wrank}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_a8a643f03d8d5d479d7c512a73d446a8d}\label{classpycal_1_1mpi_1_1_comm_a8a643f03d8d5d479d7c512a73d446a8d}}
+{\bfseries \+\_\+wsize}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_a0042a08a2f237a35f36790250f4dcb3b}\label{classpycal_1_1mpi_1_1_comm_a0042a08a2f237a35f36790250f4dcb3b}}
+{\bfseries \+\_\+gsize}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_a6c65bce1fa33cc333a721d5eee6b3b52}\label{classpycal_1_1mpi_1_1_comm_a6c65bce1fa33cc333a721d5eee6b3b52}}
+{\bfseries \+\_\+ngroups}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_af8155a302df8e1e1e52259df391a1c16}\label{classpycal_1_1mpi_1_1_comm_af8155a302df8e1e1e52259df391a1c16}}
+{\bfseries \+\_\+group}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_a7b9b8d185b89f9bdfcd3dbb8b1bc86a6}\label{classpycal_1_1mpi_1_1_comm_a7b9b8d185b89f9bdfcd3dbb8b1bc86a6}}
+{\bfseries \+\_\+grank}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_a368bca8849651aa627a2b998bace8dc2}\label{classpycal_1_1mpi_1_1_comm_a368bca8849651aa627a2b998bace8dc2}}
+{\bfseries \+\_\+gcomm}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_a76e0d6cfab5c750790ad5728f7553a90}\label{classpycal_1_1mpi_1_1_comm_a76e0d6cfab5c750790ad5728f7553a90}}
+{\bfseries \+\_\+rcomm}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+\begin{DoxyVerb}Class which represents a two-level hierarchy of MPI communicators.
+
+A Comm object splits the full set of processes into groups of size
+"group". If group_size does not divide evenly into the size of the given
+communicator, then those processes remain idle.
+
+A Comm object stores three MPI communicators: The "world" communicator
+given here, which contains all processes to consider, a "group"
+communicator (one per group), and a "rank" communicator which contains the
+processes with the same group-rank across all groups.
+
+If MPI is not enabled, then all communicators are set to None.
+
+Args:
+ world (mpi4py.MPI.Comm): the MPI communicator containing all processes.
+ group (int): the size of each process group.\end{DoxyVerb}
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_a3162234cd2deeabcfe4a604b98394315}\label{classpycal_1_1mpi_1_1_comm_a3162234cd2deeabcfe4a604b98394315}}
+\index{pycal.mpi.Comm@{pycal.mpi.Comm}!comm\_group@{comm\_group}}
+\index{comm\_group@{comm\_group}!pycal.mpi.Comm@{pycal.mpi.Comm}}
+\doxysubsubsection{\texorpdfstring{comm\_group()}{comm\_group()}}
+{\footnotesize\ttfamily def pycal.\+mpi.\+Comm.\+comm\+\_\+group (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}The communicator shared by processes within this group.
+\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_a1d453c42c402b6cbcb0f808d3e3a6d2a}\label{classpycal_1_1mpi_1_1_comm_a1d453c42c402b6cbcb0f808d3e3a6d2a}}
+\index{pycal.mpi.Comm@{pycal.mpi.Comm}!comm\_rank@{comm\_rank}}
+\index{comm\_rank@{comm\_rank}!pycal.mpi.Comm@{pycal.mpi.Comm}}
+\doxysubsubsection{\texorpdfstring{comm\_rank()}{comm\_rank()}}
+{\footnotesize\ttfamily def pycal.\+mpi.\+Comm.\+comm\+\_\+rank (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}The communicator shared by processes with the same group_rank.
+\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_a319b0fa08b1e2be3f6bbdd5ea883fa5d}\label{classpycal_1_1mpi_1_1_comm_a319b0fa08b1e2be3f6bbdd5ea883fa5d}}
+\index{pycal.mpi.Comm@{pycal.mpi.Comm}!comm\_world@{comm\_world}}
+\index{comm\_world@{comm\_world}!pycal.mpi.Comm@{pycal.mpi.Comm}}
+\doxysubsubsection{\texorpdfstring{comm\_world()}{comm\_world()}}
+{\footnotesize\ttfamily def pycal.\+mpi.\+Comm.\+comm\+\_\+world (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}The world communicator.
+\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_a636fd91b72ccb85e76d7e1c9640635b1}\label{classpycal_1_1mpi_1_1_comm_a636fd91b72ccb85e76d7e1c9640635b1}}
+\index{pycal.mpi.Comm@{pycal.mpi.Comm}!group@{group}}
+\index{group@{group}!pycal.mpi.Comm@{pycal.mpi.Comm}}
+\doxysubsubsection{\texorpdfstring{group()}{group()}}
+{\footnotesize\ttfamily def pycal.\+mpi.\+Comm.\+group (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}The group containing this process.
+\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_ae0845f4d4f0cc2ddc47282a28ec134f5}\label{classpycal_1_1mpi_1_1_comm_ae0845f4d4f0cc2ddc47282a28ec134f5}}
+\index{pycal.mpi.Comm@{pycal.mpi.Comm}!group\_rank@{group\_rank}}
+\index{group\_rank@{group\_rank}!pycal.mpi.Comm@{pycal.mpi.Comm}}
+\doxysubsubsection{\texorpdfstring{group\_rank()}{group\_rank()}}
+{\footnotesize\ttfamily def pycal.\+mpi.\+Comm.\+group\+\_\+rank (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}The rank of this process in the group communicator.
+\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_ac323805bf823c9d8183e0c031f578dac}\label{classpycal_1_1mpi_1_1_comm_ac323805bf823c9d8183e0c031f578dac}}
+\index{pycal.mpi.Comm@{pycal.mpi.Comm}!group\_size@{group\_size}}
+\index{group\_size@{group\_size}!pycal.mpi.Comm@{pycal.mpi.Comm}}
+\doxysubsubsection{\texorpdfstring{group\_size()}{group\_size()}}
+{\footnotesize\ttfamily def pycal.\+mpi.\+Comm.\+group\+\_\+size (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}The size of the group containing this process.
+\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_a5259604c988d294cc4fc5493ce631271}\label{classpycal_1_1mpi_1_1_comm_a5259604c988d294cc4fc5493ce631271}}
+\index{pycal.mpi.Comm@{pycal.mpi.Comm}!ngroups@{ngroups}}
+\index{ngroups@{ngroups}!pycal.mpi.Comm@{pycal.mpi.Comm}}
+\doxysubsubsection{\texorpdfstring{ngroups()}{ngroups()}}
+{\footnotesize\ttfamily def pycal.\+mpi.\+Comm.\+ngroups (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}The number of process groups.
+\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_aef1ab9de83eaa00cd432b2795ced31d9}\label{classpycal_1_1mpi_1_1_comm_aef1ab9de83eaa00cd432b2795ced31d9}}
+\index{pycal.mpi.Comm@{pycal.mpi.Comm}!world\_rank@{world\_rank}}
+\index{world\_rank@{world\_rank}!pycal.mpi.Comm@{pycal.mpi.Comm}}
+\doxysubsubsection{\texorpdfstring{world\_rank()}{world\_rank()}}
+{\footnotesize\ttfamily def pycal.\+mpi.\+Comm.\+world\+\_\+rank (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}The rank of this process in the world communicator.
+\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1mpi_1_1_comm_a8453456792a581a039b51f695f2866a4}\label{classpycal_1_1mpi_1_1_comm_a8453456792a581a039b51f695f2866a4}}
+\index{pycal.mpi.Comm@{pycal.mpi.Comm}!world\_size@{world\_size}}
+\index{world\_size@{world\_size}!pycal.mpi.Comm@{pycal.mpi.Comm}}
+\doxysubsubsection{\texorpdfstring{world\_size()}{world\_size()}}
+{\footnotesize\ttfamily def pycal.\+mpi.\+Comm.\+world\+\_\+size (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}The size of the world communicator.
+\end{DoxyVerb}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/mpi.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1mpi_1_1_comm__coll__graph.md5 b/docs/latex/classpycal_1_1mpi_1_1_comm__coll__graph.md5
new file mode 100644
index 00000000..53f5c2a3
--- /dev/null
+++ b/docs/latex/classpycal_1_1mpi_1_1_comm__coll__graph.md5
@@ -0,0 +1 @@
+4521b45aa2145de62818dd9ddee00976
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1mpi_1_1_comm__coll__graph.pdf b/docs/latex/classpycal_1_1mpi_1_1_comm__coll__graph.pdf
new file mode 100644
index 00000000..426c4ad1
Binary files /dev/null and b/docs/latex/classpycal_1_1mpi_1_1_comm__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1mpi_1_1_comm__inherit__graph.md5 b/docs/latex/classpycal_1_1mpi_1_1_comm__inherit__graph.md5
new file mode 100644
index 00000000..53f5c2a3
--- /dev/null
+++ b/docs/latex/classpycal_1_1mpi_1_1_comm__inherit__graph.md5
@@ -0,0 +1 @@
+4521b45aa2145de62818dd9ddee00976
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1mpi_1_1_comm__inherit__graph.pdf b/docs/latex/classpycal_1_1mpi_1_1_comm__inherit__graph.pdf
new file mode 100644
index 00000000..1c32f013
Binary files /dev/null and b/docs/latex/classpycal_1_1mpi_1_1_comm__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1mpi_1_1_m_p_i_lock.tex b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_lock.tex
new file mode 100644
index 00000000..be367156
--- /dev/null
+++ b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_lock.tex
@@ -0,0 +1,142 @@
+\hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock}{}\doxysection{pycal.\+mpi.\+M\+P\+I\+Lock Class Reference}
+\label{classpycal_1_1mpi_1_1_m_p_i_lock}\index{pycal.mpi.MPILock@{pycal.mpi.MPILock}}
+
+
+Inheritance diagram for pycal.\+mpi.\+M\+P\+I\+Lock\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=188pt]{classpycal_1_1mpi_1_1_m_p_i_lock__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+mpi.\+M\+P\+I\+Lock\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=188pt]{classpycal_1_1mpi_1_1_m_p_i_lock__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_ae973f62cfc3af259b08a119d267db885}\label{classpycal_1_1mpi_1_1_m_p_i_lock_ae973f62cfc3af259b08a119d267db885}}
+def {\bfseries \+\_\+\+\_\+init\+\_\+\+\_\+} (self, \mbox{\hyperlink{classpycal_1_1mpi_1_1_m_p_i_lock_a17b755492462936b044a7c8f688f4d9f}{comm}}, root=0, debug=False)
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_a55309bf04ec5814808295c7633d75bbb}\label{classpycal_1_1mpi_1_1_m_p_i_lock_a55309bf04ec5814808295c7633d75bbb}}
+def {\bfseries \+\_\+\+\_\+del\+\_\+\+\_\+} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_a4ec1fc3d44659426f042aa34e530c411}\label{classpycal_1_1mpi_1_1_m_p_i_lock_a4ec1fc3d44659426f042aa34e530c411}}
+def {\bfseries \+\_\+\+\_\+enter\+\_\+\+\_\+} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_a0193887605e409997904ae9d0de4eaae}\label{classpycal_1_1mpi_1_1_m_p_i_lock_a0193887605e409997904ae9d0de4eaae}}
+def {\bfseries \+\_\+\+\_\+exit\+\_\+\+\_\+} (self, type, value, tb)
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_aa763b1f91afd5896131e25c3dc71e3a3}\label{classpycal_1_1mpi_1_1_m_p_i_lock_aa763b1f91afd5896131e25c3dc71e3a3}}
+def {\bfseries close} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1mpi_1_1_m_p_i_lock_a17b755492462936b044a7c8f688f4d9f}{comm}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1mpi_1_1_m_p_i_lock_a108ddc5c77094d3dfbec8f228a440280}{lock}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1mpi_1_1_m_p_i_lock_af84f3c605f0812d5b46da80addfd6dc4}{unlock}} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Static Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_ad5978858826ea25e26c3db245867b843}\label{classpycal_1_1mpi_1_1_m_p_i_lock_ad5978858826ea25e26c3db245867b843}}
+{\bfseries newid} = next(itertools.\+count())
+\end{DoxyCompactItemize}
+\doxysubsection*{Private Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_a8708b1f523d5b44ccb8dd84fcf9e7bc8}\label{classpycal_1_1mpi_1_1_m_p_i_lock_a8708b1f523d5b44ccb8dd84fcf9e7bc8}}
+def {\bfseries \+\_\+checkabort} (self, \mbox{\hyperlink{classpycal_1_1mpi_1_1_m_p_i_lock_a17b755492462936b044a7c8f688f4d9f}{comm}}, status, msg)
+\end{DoxyCompactItemize}
+\doxysubsection*{Private Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_ae82820987aaeea25021a9cb5678f0862}\label{classpycal_1_1mpi_1_1_m_p_i_lock_ae82820987aaeea25021a9cb5678f0862}}
+{\bfseries \+\_\+comm}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_a720f061503f332fc4cdb80419ce323c9}\label{classpycal_1_1mpi_1_1_m_p_i_lock_a720f061503f332fc4cdb80419ce323c9}}
+{\bfseries \+\_\+root}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_a406aa925b0d01d7ca89a3506cb87a15a}\label{classpycal_1_1mpi_1_1_m_p_i_lock_a406aa925b0d01d7ca89a3506cb87a15a}}
+{\bfseries \+\_\+debug}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_a378b3f242aa9fd6979650e4d77ab40ed}\label{classpycal_1_1mpi_1_1_m_p_i_lock_a378b3f242aa9fd6979650e4d77ab40ed}}
+{\bfseries \+\_\+tag}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_a056dcc66fadc0ca978a14813ac198376}\label{classpycal_1_1mpi_1_1_m_p_i_lock_a056dcc66fadc0ca978a14813ac198376}}
+{\bfseries \+\_\+rank}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_a15cf20e9a962cf4230e04a659b383316}\label{classpycal_1_1mpi_1_1_m_p_i_lock_a15cf20e9a962cf4230e04a659b383316}}
+{\bfseries \+\_\+procs}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_a3fb4655fb06d8e721d542fd051c9d112}\label{classpycal_1_1mpi_1_1_m_p_i_lock_a3fb4655fb06d8e721d542fd051c9d112}}
+{\bfseries \+\_\+nlocal}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_a9e3a582bcbe6dbc3a6567c3efdbb066b}\label{classpycal_1_1mpi_1_1_m_p_i_lock_a9e3a582bcbe6dbc3a6567c3efdbb066b}}
+{\bfseries \+\_\+mpitype}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_a0525eeea6ac19e230289a8ccd1736cad}\label{classpycal_1_1mpi_1_1_m_p_i_lock_a0525eeea6ac19e230289a8ccd1736cad}}
+{\bfseries \+\_\+win}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_a703b2eebdbb5d26513d91a7967306343}\label{classpycal_1_1mpi_1_1_m_p_i_lock_a703b2eebdbb5d26513d91a7967306343}}
+{\bfseries \+\_\+have\+\_\+lock}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_a55177cd59efb9909d36d9ca18823d319}\label{classpycal_1_1mpi_1_1_m_p_i_lock_a55177cd59efb9909d36d9ca18823d319}}
+{\bfseries \+\_\+waiting}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+\begin{DoxyVerb}Implement a MUTEX lock with MPI one-sided operations.
+
+The lock is created across the given communicator. This uses an array
+of bytes (one per process) to track which processes have requested the
+lock. When a given process releases the lock, it passes it to the next
+process in line.
+
+Args:
+ comm (MPI.Comm): the full communicator to use.
+ root (int): the rank which stores the list of waiting processes.
+ debug (bool): if True, print debugging info about the lock status.
+\end{DoxyVerb}
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_a17b755492462936b044a7c8f688f4d9f}\label{classpycal_1_1mpi_1_1_m_p_i_lock_a17b755492462936b044a7c8f688f4d9f}}
+\index{pycal.mpi.MPILock@{pycal.mpi.MPILock}!comm@{comm}}
+\index{comm@{comm}!pycal.mpi.MPILock@{pycal.mpi.MPILock}}
+\doxysubsubsection{\texorpdfstring{comm()}{comm()}}
+{\footnotesize\ttfamily def pycal.\+mpi.\+M\+P\+I\+Lock.\+comm (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}The communicator.
+\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_a108ddc5c77094d3dfbec8f228a440280}\label{classpycal_1_1mpi_1_1_m_p_i_lock_a108ddc5c77094d3dfbec8f228a440280}}
+\index{pycal.mpi.MPILock@{pycal.mpi.MPILock}!lock@{lock}}
+\index{lock@{lock}!pycal.mpi.MPILock@{pycal.mpi.MPILock}}
+\doxysubsubsection{\texorpdfstring{lock()}{lock()}}
+{\footnotesize\ttfamily def pycal.\+mpi.\+M\+P\+I\+Lock.\+lock (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Request the lock and wait.
+
+This call blocks until lock is available. Then it acquires
+the lock and returns.
+\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_lock_af84f3c605f0812d5b46da80addfd6dc4}\label{classpycal_1_1mpi_1_1_m_p_i_lock_af84f3c605f0812d5b46da80addfd6dc4}}
+\index{pycal.mpi.MPILock@{pycal.mpi.MPILock}!unlock@{unlock}}
+\index{unlock@{unlock}!pycal.mpi.MPILock@{pycal.mpi.MPILock}}
+\doxysubsubsection{\texorpdfstring{unlock()}{unlock()}}
+{\footnotesize\ttfamily def pycal.\+mpi.\+M\+P\+I\+Lock.\+unlock (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Unlock and return.
+\end{DoxyVerb}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/mpi.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1mpi_1_1_m_p_i_lock__coll__graph.md5 b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_lock__coll__graph.md5
new file mode 100644
index 00000000..3ebc17b0
--- /dev/null
+++ b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_lock__coll__graph.md5
@@ -0,0 +1 @@
+a61df68dc268951478c25813db27cf1b
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1mpi_1_1_m_p_i_lock__coll__graph.pdf b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_lock__coll__graph.pdf
new file mode 100644
index 00000000..2672d82f
Binary files /dev/null and b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_lock__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1mpi_1_1_m_p_i_lock__inherit__graph.md5 b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_lock__inherit__graph.md5
new file mode 100644
index 00000000..3ebc17b0
--- /dev/null
+++ b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_lock__inherit__graph.md5
@@ -0,0 +1 @@
+a61df68dc268951478c25813db27cf1b
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1mpi_1_1_m_p_i_lock__inherit__graph.pdf b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_lock__inherit__graph.pdf
new file mode 100644
index 00000000..fa1ea8fb
Binary files /dev/null and b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_lock__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1mpi_1_1_m_p_i_shared.tex b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_shared.tex
new file mode 100644
index 00000000..9f6c96e4
--- /dev/null
+++ b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_shared.tex
@@ -0,0 +1,221 @@
+\hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared}{}\doxysection{pycal.\+mpi.\+M\+P\+I\+Shared Class Reference}
+\label{classpycal_1_1mpi_1_1_m_p_i_shared}\index{pycal.mpi.MPIShared@{pycal.mpi.MPIShared}}
+
+
+Inheritance diagram for pycal.\+mpi.\+M\+P\+I\+Shared\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=199pt]{classpycal_1_1mpi_1_1_m_p_i_shared__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+mpi.\+M\+P\+I\+Shared\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=199pt]{classpycal_1_1mpi_1_1_m_p_i_shared__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_af5382eb16192539362c41e2626d4e7d0}\label{classpycal_1_1mpi_1_1_m_p_i_shared_af5382eb16192539362c41e2626d4e7d0}}
+def {\bfseries \+\_\+\+\_\+init\+\_\+\+\_\+} (self, \mbox{\hyperlink{classpycal_1_1mpi_1_1_m_p_i_shared_a202fd28eca15f3abbfe9e9d44a674224}{shape}}, \mbox{\hyperlink{classpycal_1_1mpi_1_1_m_p_i_shared_a09a9a294e703139c6995237e6ce0ab3c}{dtype}}, \mbox{\hyperlink{classpycal_1_1mpi_1_1_m_p_i_shared_a074d9d6d9970ba302e9bc795095a6c11}{comm}})
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_ae4d5d66d68d6913cef8170dd46c20518}\label{classpycal_1_1mpi_1_1_m_p_i_shared_ae4d5d66d68d6913cef8170dd46c20518}}
+def {\bfseries \+\_\+\+\_\+del\+\_\+\+\_\+} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_abbf6a2efc80827fb8a718e50cfd2a3ff}\label{classpycal_1_1mpi_1_1_m_p_i_shared_abbf6a2efc80827fb8a718e50cfd2a3ff}}
+def {\bfseries \+\_\+\+\_\+enter\+\_\+\+\_\+} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_a279fc4ee3fe17ac1f0fd977e36ecd7ff}\label{classpycal_1_1mpi_1_1_m_p_i_shared_a279fc4ee3fe17ac1f0fd977e36ecd7ff}}
+def {\bfseries \+\_\+\+\_\+exit\+\_\+\+\_\+} (self, type, value, tb)
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_a38469950d865bd6e5451a424dca814ab}\label{classpycal_1_1mpi_1_1_m_p_i_shared_a38469950d865bd6e5451a424dca814ab}}
+def {\bfseries close} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1mpi_1_1_m_p_i_shared_a202fd28eca15f3abbfe9e9d44a674224}{shape}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1mpi_1_1_m_p_i_shared_a09a9a294e703139c6995237e6ce0ab3c}{dtype}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1mpi_1_1_m_p_i_shared_a074d9d6d9970ba302e9bc795095a6c11}{comm}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1mpi_1_1_m_p_i_shared_a4389949dab062f5190ab15a84e643c3b}{nodecomm}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1mpi_1_1_m_p_i_shared_a01a4b63c3fb8c32721e45d2ce7c31ea7}{set}} (self, data, offset, fromrank=0)
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_af61eae2080752b48344b550592392a94}\label{classpycal_1_1mpi_1_1_m_p_i_shared_af61eae2080752b48344b550592392a94}}
+def {\bfseries \+\_\+\+\_\+getitem\+\_\+\+\_\+} (self, key)
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_a17b225a0fe29e3da291a2fc0b7adb778}\label{classpycal_1_1mpi_1_1_m_p_i_shared_a17b225a0fe29e3da291a2fc0b7adb778}}
+def {\bfseries \+\_\+\+\_\+setitem\+\_\+\+\_\+} (self, key, value)
+\end{DoxyCompactItemize}
+\doxysubsection*{Private Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_adf75d768ab65706515ae065b53d5104a}\label{classpycal_1_1mpi_1_1_m_p_i_shared_adf75d768ab65706515ae065b53d5104a}}
+def {\bfseries \+\_\+disthelper} (self, n, groups)
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_a5122b8c0e5212af26aad15aa7e5b4864}\label{classpycal_1_1mpi_1_1_m_p_i_shared_a5122b8c0e5212af26aad15aa7e5b4864}}
+def {\bfseries \+\_\+checkabort} (self, \mbox{\hyperlink{classpycal_1_1mpi_1_1_m_p_i_shared_a074d9d6d9970ba302e9bc795095a6c11}{comm}}, status, msg)
+\end{DoxyCompactItemize}
+\doxysubsection*{Private Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_a82a97f240f873a944c617ee18040c53f}\label{classpycal_1_1mpi_1_1_m_p_i_shared_a82a97f240f873a944c617ee18040c53f}}
+{\bfseries \+\_\+shape}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_a3478bbec9fe7691607b0e7813ff7b66a}\label{classpycal_1_1mpi_1_1_m_p_i_shared_a3478bbec9fe7691607b0e7813ff7b66a}}
+{\bfseries \+\_\+dtype}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_adbc65ba9540ca9a210579b996bd9a5ba}\label{classpycal_1_1mpi_1_1_m_p_i_shared_adbc65ba9540ca9a210579b996bd9a5ba}}
+{\bfseries \+\_\+comm}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_abf8e6f6ef10481924c7889b553dfad62}\label{classpycal_1_1mpi_1_1_m_p_i_shared_abf8e6f6ef10481924c7889b553dfad62}}
+{\bfseries \+\_\+rank}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_a7870b7a46cb8c794c268f8639777969d}\label{classpycal_1_1mpi_1_1_m_p_i_shared_a7870b7a46cb8c794c268f8639777969d}}
+{\bfseries \+\_\+procs}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_af914e18b4d7dde8176b31fea58b1feb7}\label{classpycal_1_1mpi_1_1_m_p_i_shared_af914e18b4d7dde8176b31fea58b1feb7}}
+{\bfseries \+\_\+n}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_abc5879914b88654657bee004db1aaf35}\label{classpycal_1_1mpi_1_1_m_p_i_shared_abc5879914b88654657bee004db1aaf35}}
+{\bfseries \+\_\+nodecomm}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_a716371e7cee2d2da8e12839f5ed58606}\label{classpycal_1_1mpi_1_1_m_p_i_shared_a716371e7cee2d2da8e12839f5ed58606}}
+{\bfseries \+\_\+rankcomm}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_ac3e7a18515b1c133a8d3cb070c6932bc}\label{classpycal_1_1mpi_1_1_m_p_i_shared_ac3e7a18515b1c133a8d3cb070c6932bc}}
+{\bfseries \+\_\+noderank}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_ad704cca171083ab9b09fe9633739ab61}\label{classpycal_1_1mpi_1_1_m_p_i_shared_ad704cca171083ab9b09fe9633739ab61}}
+{\bfseries \+\_\+nodeprocs}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_abf315436bf722278d9172cd0b4a0c17e}\label{classpycal_1_1mpi_1_1_m_p_i_shared_abf315436bf722278d9172cd0b4a0c17e}}
+{\bfseries \+\_\+nodes}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_a1781674c48cee3690f63dbd462da3396}\label{classpycal_1_1mpi_1_1_m_p_i_shared_a1781674c48cee3690f63dbd462da3396}}
+{\bfseries \+\_\+mynode}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_ac57b38a33fa8bbafd300679b004ac681}\label{classpycal_1_1mpi_1_1_m_p_i_shared_ac57b38a33fa8bbafd300679b004ac681}}
+{\bfseries \+\_\+maxsetrank}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_a2b258de9b3b09f3fabf4af7288719567}\label{classpycal_1_1mpi_1_1_m_p_i_shared_a2b258de9b3b09f3fabf4af7288719567}}
+{\bfseries \+\_\+localoffset}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_a6d9b4a3f1c263c120e339005843e094c}\label{classpycal_1_1mpi_1_1_m_p_i_shared_a6d9b4a3f1c263c120e339005843e094c}}
+{\bfseries \+\_\+nlocal}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_afb2f5ea2512689d033d5b37f8bb10b7c}\label{classpycal_1_1mpi_1_1_m_p_i_shared_afb2f5ea2512689d033d5b37f8bb10b7c}}
+{\bfseries \+\_\+mpitype}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_aedf5b4a706c1c5cc9d748caa69b210d3}\label{classpycal_1_1mpi_1_1_m_p_i_shared_aedf5b4a706c1c5cc9d748caa69b210d3}}
+{\bfseries \+\_\+win}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_a14c60b7c07e4e3b66e3a623ba99ee600}\label{classpycal_1_1mpi_1_1_m_p_i_shared_a14c60b7c07e4e3b66e3a623ba99ee600}}
+{\bfseries \+\_\+buffer}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_a98bfe7a1a219561ac515cd9dd6e826da}\label{classpycal_1_1mpi_1_1_m_p_i_shared_a98bfe7a1a219561ac515cd9dd6e826da}}
+{\bfseries \+\_\+dbuf}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_a31c3849ac4449dc6f151859463349cb7}\label{classpycal_1_1mpi_1_1_m_p_i_shared_a31c3849ac4449dc6f151859463349cb7}}
+{\bfseries \+\_\+flat}
+\item
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_ad1c91fcaf5bfed2e956cef18b3bb45fe}\label{classpycal_1_1mpi_1_1_m_p_i_shared_ad1c91fcaf5bfed2e956cef18b3bb45fe}}
+{\bfseries \+\_\+data}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+\begin{DoxyVerb}Create a shared memory buffer that is replicated across nodes.
+
+For the given array dimensions and datatype, the original communicator
+is split into groups of processes that can share memory (i.e. that are
+on the same node).
+
+The values of the memory buffer can be set by one process at a time.
+When the set() method is called the data passed by the specified
+process is replicated to all nodes and then copied into the desired
+place in the shared memory buffer on each node. This way the shared
+buffer on each node is identical.
+
+All processes across all nodes may do read-only access to their node-
+local copy of the buffer, simply by using the standard array indexing
+notation ("[]") on the object itself.
+
+Args:
+ shape (tuple): the dimensions of the array.
+ dtype (np.dtype): the data type of the array.
+ comm (MPI.Comm): the full communicator to use. This may span
+ multiple nodes, and each node will have a copy.
+\end{DoxyVerb}
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_a074d9d6d9970ba302e9bc795095a6c11}\label{classpycal_1_1mpi_1_1_m_p_i_shared_a074d9d6d9970ba302e9bc795095a6c11}}
+\index{pycal.mpi.MPIShared@{pycal.mpi.MPIShared}!comm@{comm}}
+\index{comm@{comm}!pycal.mpi.MPIShared@{pycal.mpi.MPIShared}}
+\doxysubsubsection{\texorpdfstring{comm()}{comm()}}
+{\footnotesize\ttfamily def pycal.\+mpi.\+M\+P\+I\+Shared.\+comm (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}The full communicator.
+\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_a09a9a294e703139c6995237e6ce0ab3c}\label{classpycal_1_1mpi_1_1_m_p_i_shared_a09a9a294e703139c6995237e6ce0ab3c}}
+\index{pycal.mpi.MPIShared@{pycal.mpi.MPIShared}!dtype@{dtype}}
+\index{dtype@{dtype}!pycal.mpi.MPIShared@{pycal.mpi.MPIShared}}
+\doxysubsubsection{\texorpdfstring{dtype()}{dtype()}}
+{\footnotesize\ttfamily def pycal.\+mpi.\+M\+P\+I\+Shared.\+dtype (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}The numpy datatype of the shared array.
+\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_a4389949dab062f5190ab15a84e643c3b}\label{classpycal_1_1mpi_1_1_m_p_i_shared_a4389949dab062f5190ab15a84e643c3b}}
+\index{pycal.mpi.MPIShared@{pycal.mpi.MPIShared}!nodecomm@{nodecomm}}
+\index{nodecomm@{nodecomm}!pycal.mpi.MPIShared@{pycal.mpi.MPIShared}}
+\doxysubsubsection{\texorpdfstring{nodecomm()}{nodecomm()}}
+{\footnotesize\ttfamily def pycal.\+mpi.\+M\+P\+I\+Shared.\+nodecomm (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}The node-local communicator.
+\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_a01a4b63c3fb8c32721e45d2ce7c31ea7}\label{classpycal_1_1mpi_1_1_m_p_i_shared_a01a4b63c3fb8c32721e45d2ce7c31ea7}}
+\index{pycal.mpi.MPIShared@{pycal.mpi.MPIShared}!set@{set}}
+\index{set@{set}!pycal.mpi.MPIShared@{pycal.mpi.MPIShared}}
+\doxysubsubsection{\texorpdfstring{set()}{set()}}
+{\footnotesize\ttfamily def pycal.\+mpi.\+M\+P\+I\+Shared.\+set (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{data, }\item[{}]{offset, }\item[{}]{fromrank = {\ttfamily 0} }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Set the values of a slice of the shared array.
+
+This call is collective across the full communicator, but only the
+data input from process "fromrank" is meaningful. The offset
+specifies the starting element along each dimension when copying
+the data into the shared array. Regardless of which node the
+"fromrank" process is on, the data will be replicated to the
+shared memory buffer on all nodes.
+
+Args:
+ data (array): a numpy array with the same number of dimensions
+as the full array.
+ offset (tuple): the starting offset along each dimension, which
+determines where the input data should be inserted into the
+shared array.
+ fromrank (int): the process rank of the full communicator which
+is passing in the data.
+
+Returns:
+ Nothing
+\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1mpi_1_1_m_p_i_shared_a202fd28eca15f3abbfe9e9d44a674224}\label{classpycal_1_1mpi_1_1_m_p_i_shared_a202fd28eca15f3abbfe9e9d44a674224}}
+\index{pycal.mpi.MPIShared@{pycal.mpi.MPIShared}!shape@{shape}}
+\index{shape@{shape}!pycal.mpi.MPIShared@{pycal.mpi.MPIShared}}
+\doxysubsubsection{\texorpdfstring{shape()}{shape()}}
+{\footnotesize\ttfamily def pycal.\+mpi.\+M\+P\+I\+Shared.\+shape (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}The tuple of dimensions of the shared array.
+\end{DoxyVerb}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/mpi.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1mpi_1_1_m_p_i_shared__coll__graph.md5 b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_shared__coll__graph.md5
new file mode 100644
index 00000000..79d2a5dd
--- /dev/null
+++ b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_shared__coll__graph.md5
@@ -0,0 +1 @@
+77e28a5abc336c20755d3f40c1f301c4
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1mpi_1_1_m_p_i_shared__coll__graph.pdf b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_shared__coll__graph.pdf
new file mode 100644
index 00000000..3c1e8697
Binary files /dev/null and b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_shared__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1mpi_1_1_m_p_i_shared__inherit__graph.md5 b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_shared__inherit__graph.md5
new file mode 100644
index 00000000..79d2a5dd
--- /dev/null
+++ b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_shared__inherit__graph.md5
@@ -0,0 +1 @@
+77e28a5abc336c20755d3f40c1f301c4
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1mpi_1_1_m_p_i_shared__inherit__graph.pdf b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_shared__inherit__graph.pdf
new file mode 100644
index 00000000..3c1e8697
Binary files /dev/null and b/docs/latex/classpycal_1_1mpi_1_1_m_p_i_shared__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1op_1_1_operator.tex b/docs/latex/classpycal_1_1op_1_1_operator.tex
new file mode 100644
index 00000000..90b01bc5
--- /dev/null
+++ b/docs/latex/classpycal_1_1op_1_1_operator.tex
@@ -0,0 +1,62 @@
+\hypertarget{classpycal_1_1op_1_1_operator}{}\doxysection{pycal.\+op.\+Operator Class Reference}
+\label{classpycal_1_1op_1_1_operator}\index{pycal.op.Operator@{pycal.op.Operator}}
+
+
+Inheritance diagram for pycal.\+op.\+Operator\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=216pt]{classpycal_1_1op_1_1_operator__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+op.\+Operator\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=184pt]{classpycal_1_1op_1_1_operator__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1op_1_1_operator_a9867b72e45330efd40ceef2154045165}\label{classpycal_1_1op_1_1_operator_a9867b72e45330efd40ceef2154045165}}
+def {\bfseries \+\_\+\+\_\+init\+\_\+\+\_\+} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1op_1_1_operator_af40922bdae44d1b640f4271c03926302}{exec}} (self, data)
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+\begin{DoxyVerb}Base class for an operator that acts on collections of observations.
+
+An operator takes as input a cal.dist.Data object and modifies it in place.
+
+Args:
+ None\end{DoxyVerb}
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classpycal_1_1op_1_1_operator_af40922bdae44d1b640f4271c03926302}\label{classpycal_1_1op_1_1_operator_af40922bdae44d1b640f4271c03926302}}
+\index{pycal.op.Operator@{pycal.op.Operator}!exec@{exec}}
+\index{exec@{exec}!pycal.op.Operator@{pycal.op.Operator}}
+\doxysubsubsection{\texorpdfstring{exec()}{exec()}}
+{\footnotesize\ttfamily def pycal.\+op.\+Operator.\+exec (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{data }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Perform operations on a Data object.
+
+Args:
+ data (cal.Data): The distributed data.
+
+Returns:
+ None\end{DoxyVerb}
+
+
+Reimplemented in \mbox{\hyperlink{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_ab9550ae5cb9f0781ad6725ea2edae9e1}{pycal.\+todmap.\+sim\+\_\+det\+\_\+atm.\+Op\+Sim\+Atmosphere}}.
+
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/op.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1op_1_1_operator__coll__graph.md5 b/docs/latex/classpycal_1_1op_1_1_operator__coll__graph.md5
new file mode 100644
index 00000000..379197fb
--- /dev/null
+++ b/docs/latex/classpycal_1_1op_1_1_operator__coll__graph.md5
@@ -0,0 +1 @@
+0be7ac7dd7f3c7f5c0c76013710c59f4
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1op_1_1_operator__coll__graph.pdf b/docs/latex/classpycal_1_1op_1_1_operator__coll__graph.pdf
new file mode 100644
index 00000000..67770f05
Binary files /dev/null and b/docs/latex/classpycal_1_1op_1_1_operator__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1op_1_1_operator__inherit__graph.md5 b/docs/latex/classpycal_1_1op_1_1_operator__inherit__graph.md5
new file mode 100644
index 00000000..f91165f4
--- /dev/null
+++ b/docs/latex/classpycal_1_1op_1_1_operator__inherit__graph.md5
@@ -0,0 +1 @@
+6a0dd97f656975dac01fc8ccfead4e99
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1op_1_1_operator__inherit__graph.pdf b/docs/latex/classpycal_1_1op_1_1_operator__inherit__graph.pdf
new file mode 100644
index 00000000..c2d8fbd6
Binary files /dev/null and b/docs/latex/classpycal_1_1op_1_1_operator__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1binned_1_1_binned_test.tex b/docs/latex/classpycal_1_1tests_1_1binned_1_1_binned_test.tex
new file mode 100644
index 00000000..d53f9640
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1binned_1_1_binned_test.tex
@@ -0,0 +1,82 @@
+\hypertarget{classpycal_1_1tests_1_1binned_1_1_binned_test}{}\doxysection{pycal.\+tests.\+binned.\+Binned\+Test Class Reference}
+\label{classpycal_1_1tests_1_1binned_1_1_binned_test}\index{pycal.tests.binned.BinnedTest@{pycal.tests.binned.BinnedTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+binned.\+Binned\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=242pt]{classpycal_1_1tests_1_1binned_1_1_binned_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+binned.\+Binned\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=242pt]{classpycal_1_1tests_1_1binned_1_1_binned_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1binned_1_1_binned_test_a8a4222f1d401a6af0a893361ac23c0f0}\label{classpycal_1_1tests_1_1binned_1_1_binned_test_a8a4222f1d401a6af0a893361ac23c0f0}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1binned_1_1_binned_test_ae37e8a6f84cf5bb5fb251dafc7db3d52}\label{classpycal_1_1tests_1_1binned_1_1_binned_test_ae37e8a6f84cf5bb5fb251dafc7db3d52}}
+def {\bfseries test\+\_\+binned} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1binned_1_1_binned_test_a389f0d25a057792b33c1ff3276deec10}\label{classpycal_1_1tests_1_1binned_1_1_binned_test_a389f0d25a057792b33c1ff3276deec10}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1binned_1_1_binned_test_a31ddc0c67e6b2a73e9e3bf43c874c9c6}\label{classpycal_1_1tests_1_1binned_1_1_binned_test_a31ddc0c67e6b2a73e9e3bf43c874c9c6}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1binned_1_1_binned_test_ac1a10001784a0de86fec620893e3a2e7}\label{classpycal_1_1tests_1_1binned_1_1_binned_test_ac1a10001784a0de86fec620893e3a2e7}}
+{\bfseries ndet}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1binned_1_1_binned_test_ab0c1991ec39bddcd24c09cd5848bf892}\label{classpycal_1_1tests_1_1binned_1_1_binned_test_ab0c1991ec39bddcd24c09cd5848bf892}}
+{\bfseries rate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1binned_1_1_binned_test_a1ceec029cfe5d60a03b2a702b170532e}\label{classpycal_1_1tests_1_1binned_1_1_binned_test_a1ceec029cfe5d60a03b2a702b170532e}}
+{\bfseries hwprpm}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1binned_1_1_binned_test_a0fe662a9e1ee463d40e8f94cae22c717}\label{classpycal_1_1tests_1_1binned_1_1_binned_test_a0fe662a9e1ee463d40e8f94cae22c717}}
+{\bfseries totsamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1binned_1_1_binned_test_a403c16f35541fd156c69be636a28843e}\label{classpycal_1_1tests_1_1binned_1_1_binned_test_a403c16f35541fd156c69be636a28843e}}
+{\bfseries sim\+\_\+nside}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1binned_1_1_binned_test_a77985f6bbe159a86c39200cb851ad349}\label{classpycal_1_1tests_1_1binned_1_1_binned_test_a77985f6bbe159a86c39200cb851ad349}}
+{\bfseries sim\+\_\+npix}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1binned_1_1_binned_test_ae325ab147ec8b72977da050185b86626}\label{classpycal_1_1tests_1_1binned_1_1_binned_test_ae325ab147ec8b72977da050185b86626}}
+{\bfseries map\+\_\+nside}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1binned_1_1_binned_test_a5fe8be1e8761464227ac8337156fc849}\label{classpycal_1_1tests_1_1binned_1_1_binned_test_a5fe8be1e8761464227ac8337156fc849}}
+{\bfseries map\+\_\+npix}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1binned_1_1_binned_test_aead053ad2910c29bad0703d8e36c5b95}\label{classpycal_1_1tests_1_1binned_1_1_binned_test_aead053ad2910c29bad0703d8e36c5b95}}
+{\bfseries spinperiod}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1binned_1_1_binned_test_a0d2aedb248de775de02cc560d2d726fd}\label{classpycal_1_1tests_1_1binned_1_1_binned_test_a0d2aedb248de775de02cc560d2d726fd}}
+{\bfseries spinangle}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1binned_1_1_binned_test_a62689d14af872da407a578e7d52ed550}\label{classpycal_1_1tests_1_1binned_1_1_binned_test_a62689d14af872da407a578e7d52ed550}}
+{\bfseries precperiod}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1binned_1_1_binned_test_aa88e883e718fc78f578a23f67288ce29}\label{classpycal_1_1tests_1_1binned_1_1_binned_test_aa88e883e718fc78f578a23f67288ce29}}
+{\bfseries precangle}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1binned_1_1_binned_test_a881994cb9fbc353f5032d2de4a444e2d}\label{classpycal_1_1tests_1_1binned_1_1_binned_test_a881994cb9fbc353f5032d2de4a444e2d}}
+{\bfseries validsamp}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/binned.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1binned_1_1_binned_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1binned_1_1_binned_test__coll__graph.md5
new file mode 100644
index 00000000..341dc85d
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1binned_1_1_binned_test__coll__graph.md5
@@ -0,0 +1 @@
+949d2c618a0f2c57061d890eef26e1f3
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1binned_1_1_binned_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1binned_1_1_binned_test__coll__graph.pdf
new file mode 100644
index 00000000..f65d7969
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1binned_1_1_binned_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1binned_1_1_binned_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1binned_1_1_binned_test__inherit__graph.md5
new file mode 100644
index 00000000..341dc85d
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1binned_1_1_binned_test__inherit__graph.md5
@@ -0,0 +1 @@
+949d2c618a0f2c57061d890eef26e1f3
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1binned_1_1_binned_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1binned_1_1_binned_test__inherit__graph.pdf
new file mode 100644
index 00000000..fe41e100
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1binned_1_1_binned_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1cache_1_1_cache_test.tex b/docs/latex/classpycal_1_1tests_1_1cache_1_1_cache_test.tex
new file mode 100644
index 00000000..4abfdca6
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1cache_1_1_cache_test.tex
@@ -0,0 +1,79 @@
+\hypertarget{classpycal_1_1tests_1_1cache_1_1_cache_test}{}\doxysection{pycal.\+tests.\+cache.\+Cache\+Test Class Reference}
+\label{classpycal_1_1tests_1_1cache_1_1_cache_test}\index{pycal.tests.cache.CacheTest@{pycal.tests.cache.CacheTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+cache.\+Cache\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1cache_1_1_cache_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+cache.\+Cache\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1cache_1_1_cache_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cache_1_1_cache_test_aea01ad52d50771ef78807dceaa35075d}\label{classpycal_1_1tests_1_1cache_1_1_cache_test_aea01ad52d50771ef78807dceaa35075d}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cache_1_1_cache_test_addb80b0a784be7010705874752ee5f21}\label{classpycal_1_1tests_1_1cache_1_1_cache_test_addb80b0a784be7010705874752ee5f21}}
+def {\bfseries tear\+Down} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cache_1_1_cache_test_adc5007206cca9de34b8a4d010e6db94f}\label{classpycal_1_1tests_1_1cache_1_1_cache_test_adc5007206cca9de34b8a4d010e6db94f}}
+def {\bfseries test\+\_\+refcount} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cache_1_1_cache_test_a8e127d04599a25c2735370f926e9b46c}\label{classpycal_1_1tests_1_1cache_1_1_cache_test_a8e127d04599a25c2735370f926e9b46c}}
+def {\bfseries test\+\_\+create} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cache_1_1_cache_test_a15ae263c21e20f76469a830a52554943}\label{classpycal_1_1tests_1_1cache_1_1_cache_test_a15ae263c21e20f76469a830a52554943}}
+def {\bfseries test\+\_\+put} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cache_1_1_cache_test_a3bd9edcbfcee78cdc07b9c9324d2f1f4}\label{classpycal_1_1tests_1_1cache_1_1_cache_test_a3bd9edcbfcee78cdc07b9c9324d2f1f4}}
+def {\bfseries test\+\_\+create\+\_\+none} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cache_1_1_cache_test_af9d78e2d30149a2a63263134be8d5ac3}\label{classpycal_1_1tests_1_1cache_1_1_cache_test_af9d78e2d30149a2a63263134be8d5ac3}}
+def {\bfseries test\+\_\+put\+\_\+none} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cache_1_1_cache_test_a2fcecd762580e8591dbf3250d9428064}\label{classpycal_1_1tests_1_1cache_1_1_cache_test_a2fcecd762580e8591dbf3250d9428064}}
+def {\bfseries test\+\_\+clear} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cache_1_1_cache_test_a9722c738f06345318f817d6e5ceb72d7}\label{classpycal_1_1tests_1_1cache_1_1_cache_test_a9722c738f06345318f817d6e5ceb72d7}}
+def {\bfseries test\+\_\+alias} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cache_1_1_cache_test_aade3ff88f6ed7c03a9eeb9c7ba10fafc}\label{classpycal_1_1tests_1_1cache_1_1_cache_test_aade3ff88f6ed7c03a9eeb9c7ba10fafc}}
+def {\bfseries test\+\_\+memfree} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cache_1_1_cache_test_a12bdefe36d8aac05436d617443e3febc}\label{classpycal_1_1tests_1_1cache_1_1_cache_test_a12bdefe36d8aac05436d617443e3febc}}
+{\bfseries nsamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cache_1_1_cache_test_a9f326a878bd7b7f0496fd792ddd8352c}\label{classpycal_1_1tests_1_1cache_1_1_cache_test_a9f326a878bd7b7f0496fd792ddd8352c}}
+{\bfseries membytes}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cache_1_1_cache_test_a5deb19f2d1009041c1ab6d6b7dbc03a5}\label{classpycal_1_1tests_1_1cache_1_1_cache_test_a5deb19f2d1009041c1ab6d6b7dbc03a5}}
+{\bfseries memnbuf}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cache_1_1_cache_test_aa6d0482582d2f94d3ac8fc24d7df51e3}\label{classpycal_1_1tests_1_1cache_1_1_cache_test_aa6d0482582d2f94d3ac8fc24d7df51e3}}
+{\bfseries cache}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cache_1_1_cache_test_a8faa86b631e4ba969edd9525dfc9e2cb}\label{classpycal_1_1tests_1_1cache_1_1_cache_test_a8faa86b631e4ba969edd9525dfc9e2cb}}
+{\bfseries pycache}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cache_1_1_cache_test_ab118372888a33849814351def3b84a5f}\label{classpycal_1_1tests_1_1cache_1_1_cache_test_ab118372888a33849814351def3b84a5f}}
+{\bfseries types}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/cache.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1cache_1_1_cache_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1cache_1_1_cache_test__coll__graph.md5
new file mode 100644
index 00000000..9dd8c842
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1cache_1_1_cache_test__coll__graph.md5
@@ -0,0 +1 @@
+090479d786c3875d16b75d09f242387d
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1cache_1_1_cache_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1cache_1_1_cache_test__coll__graph.pdf
new file mode 100644
index 00000000..f069f832
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1cache_1_1_cache_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1cache_1_1_cache_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1cache_1_1_cache_test__inherit__graph.md5
new file mode 100644
index 00000000..9dd8c842
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1cache_1_1_cache_test__inherit__graph.md5
@@ -0,0 +1 @@
+090479d786c3875d16b75d09f242387d
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1cache_1_1_cache_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1cache_1_1_cache_test__inherit__graph.pdf
new file mode 100644
index 00000000..f069f832
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1cache_1_1_cache_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1cov_1_1_covariance_test.tex b/docs/latex/classpycal_1_1tests_1_1cov_1_1_covariance_test.tex
new file mode 100644
index 00000000..0bc49aad
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1cov_1_1_covariance_test.tex
@@ -0,0 +1,97 @@
+\hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test}{}\doxysection{pycal.\+tests.\+cov.\+Covariance\+Test Class Reference}
+\label{classpycal_1_1tests_1_1cov_1_1_covariance_test}\index{pycal.tests.cov.CovarianceTest@{pycal.tests.cov.CovarianceTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+cov.\+Covariance\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=247pt]{classpycal_1_1tests_1_1cov_1_1_covariance_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+cov.\+Covariance\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=247pt]{classpycal_1_1tests_1_1cov_1_1_covariance_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_a160eb9fc01523cc66d483249aa5994ef}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_a160eb9fc01523cc66d483249aa5994ef}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_a7c1e7649d35cddfbe5a0f698aad56882}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_a7c1e7649d35cddfbe5a0f698aad56882}}
+def {\bfseries tear\+Down} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_a2247a7fda6e5f2e43036b7e3c9372048}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_a2247a7fda6e5f2e43036b7e3c9372048}}
+def {\bfseries test\+\_\+accum} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_abf1b83efac191c7c1080204c576d0324}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_abf1b83efac191c7c1080204c576d0324}}
+def {\bfseries test\+\_\+invert} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_a48b1980adf643d38fbc2a2ca0c7731c7}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_a48b1980adf643d38fbc2a2ca0c7731c7}}
+def {\bfseries test\+\_\+invnpp} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_ae43ac97044c650f51ef34545ff76cc19}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_ae43ac97044c650f51ef34545ff76cc19}}
+def {\bfseries test\+\_\+distpix\+\_\+init} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_a84f41d38e0447c3074b810821d38d52a}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_a84f41d38e0447c3074b810821d38d52a}}
+def {\bfseries test\+\_\+multiply} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_aa10f6557ebef28e3badc32f2936c01af}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_aa10f6557ebef28e3badc32f2936c01af}}
+def {\bfseries test\+\_\+fitsio} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_af510e21f8dd14791655e6be5d08eb8f7}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_af510e21f8dd14791655e6be5d08eb8f7}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_a0fb6db9981d6d4ec7624166582d11eeb}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_a0fb6db9981d6d4ec7624166582d11eeb}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_a40f75f0eeddd5218bc54fb8530153ccf}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_a40f75f0eeddd5218bc54fb8530153ccf}}
+{\bfseries ndet}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_a6f4d481a679821e620dd0b119ed823c8}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_a6f4d481a679821e620dd0b119ed823c8}}
+{\bfseries rate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_a9d01feffcb3963316e94a22b592bb1d7}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_a9d01feffcb3963316e94a22b592bb1d7}}
+{\bfseries hwprpm}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_aa1a368c210f10a48a6fb231a40cc6ce4}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_aa1a368c210f10a48a6fb231a40cc6ce4}}
+{\bfseries totsamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_a43868ae8ffeff97cb0984291e43076d4}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_a43868ae8ffeff97cb0984291e43076d4}}
+{\bfseries sim\+\_\+nside}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_a1f407c9cf2fcbf980535ec2fe6ebe163}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_a1f407c9cf2fcbf980535ec2fe6ebe163}}
+{\bfseries sim\+\_\+npix}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_a94eb1946808c822528db5676428e2b03}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_a94eb1946808c822528db5676428e2b03}}
+{\bfseries map\+\_\+nside}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_ad5639e4c76259ce8930748e38df83712}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_ad5639e4c76259ce8930748e38df83712}}
+{\bfseries map\+\_\+npix}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_af3919df77e518ccb706a516a6831e693}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_af3919df77e518ccb706a516a6831e693}}
+{\bfseries spinperiod}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_ab50d736e970ee17b147d9bac9298952f}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_ab50d736e970ee17b147d9bac9298952f}}
+{\bfseries spinangle}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_a55fc67c6b93ea9fdbf39cf99f70f847c}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_a55fc67c6b93ea9fdbf39cf99f70f847c}}
+{\bfseries precperiod}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1cov_1_1_covariance_test_aa6aa09ad0b728082d4ec95fd9b30420e}\label{classpycal_1_1tests_1_1cov_1_1_covariance_test_aa6aa09ad0b728082d4ec95fd9b30420e}}
+{\bfseries precangle}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/cov.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1cov_1_1_covariance_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1cov_1_1_covariance_test__coll__graph.md5
new file mode 100644
index 00000000..96572a9b
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1cov_1_1_covariance_test__coll__graph.md5
@@ -0,0 +1 @@
+159a6a97ecac79557231a07aeef29a02
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1cov_1_1_covariance_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1cov_1_1_covariance_test__coll__graph.pdf
new file mode 100644
index 00000000..66dfcbd4
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1cov_1_1_covariance_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1cov_1_1_covariance_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1cov_1_1_covariance_test__inherit__graph.md5
new file mode 100644
index 00000000..96572a9b
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1cov_1_1_covariance_test__inherit__graph.md5
@@ -0,0 +1 @@
+159a6a97ecac79557231a07aeef29a02
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1cov_1_1_covariance_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1cov_1_1_covariance_test__inherit__graph.pdf
new file mode 100644
index 00000000..66dfcbd4
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1cov_1_1_covariance_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1dist_1_1_data_test.tex b/docs/latex/classpycal_1_1tests_1_1dist_1_1_data_test.tex
new file mode 100644
index 00000000..2ae19bf2
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1dist_1_1_data_test.tex
@@ -0,0 +1,64 @@
+\hypertarget{classpycal_1_1tests_1_1dist_1_1_data_test}{}\doxysection{pycal.\+tests.\+dist.\+Data\+Test Class Reference}
+\label{classpycal_1_1tests_1_1dist_1_1_data_test}\index{pycal.tests.dist.DataTest@{pycal.tests.dist.DataTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+dist.\+Data\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1dist_1_1_data_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+dist.\+Data\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1dist_1_1_data_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1dist_1_1_data_test_a1b5d61699b9bef0da24ba39847de03d3}\label{classpycal_1_1tests_1_1dist_1_1_data_test_a1b5d61699b9bef0da24ba39847de03d3}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1dist_1_1_data_test_a5ebfcfd27b49f54f1244cb7326df834f}\label{classpycal_1_1tests_1_1dist_1_1_data_test_a5ebfcfd27b49f54f1244cb7326df834f}}
+def {\bfseries test\+\_\+construction} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1dist_1_1_data_test_adaf3d2097bbfca9e003e6f160452b0ff}\label{classpycal_1_1tests_1_1dist_1_1_data_test_adaf3d2097bbfca9e003e6f160452b0ff}}
+def {\bfseries test\+\_\+split} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1dist_1_1_data_test_a363dc69aa0c5d8feaedbf44a4aa2223a}\label{classpycal_1_1tests_1_1dist_1_1_data_test_a363dc69aa0c5d8feaedbf44a4aa2223a}}
+def {\bfseries test\+\_\+none} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1dist_1_1_data_test_aa577e541bed128baf2bca2aaaf3c172d}\label{classpycal_1_1tests_1_1dist_1_1_data_test_aa577e541bed128baf2bca2aaaf3c172d}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1dist_1_1_data_test_ab174983171836908f5a5f5c4b2c2c674}\label{classpycal_1_1tests_1_1dist_1_1_data_test_ab174983171836908f5a5f5c4b2c2c674}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1dist_1_1_data_test_afb0eb0ae85574d23640b4372c79646af}\label{classpycal_1_1tests_1_1dist_1_1_data_test_afb0eb0ae85574d23640b4372c79646af}}
+{\bfseries ntask}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1dist_1_1_data_test_af5db1bf27952240bb8452009a3d5ee95}\label{classpycal_1_1tests_1_1dist_1_1_data_test_af5db1bf27952240bb8452009a3d5ee95}}
+{\bfseries sizes1}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1dist_1_1_data_test_a9369ef1ecd7239d38dcf9503159b4ace}\label{classpycal_1_1tests_1_1dist_1_1_data_test_a9369ef1ecd7239d38dcf9503159b4ace}}
+{\bfseries totsamp1}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1dist_1_1_data_test_a6c1de73424e7f8bc44a56651ebf1c17c}\label{classpycal_1_1tests_1_1dist_1_1_data_test_a6c1de73424e7f8bc44a56651ebf1c17c}}
+{\bfseries sizes2}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1dist_1_1_data_test_ab86dc2c74166e0830bbc691735e9613c}\label{classpycal_1_1tests_1_1dist_1_1_data_test_ab86dc2c74166e0830bbc691735e9613c}}
+{\bfseries totsamp2}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/dist.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1dist_1_1_data_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1dist_1_1_data_test__coll__graph.md5
new file mode 100644
index 00000000..0ce80d26
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1dist_1_1_data_test__coll__graph.md5
@@ -0,0 +1 @@
+a6b3d4657e374bb6dec97097c0d97790
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1dist_1_1_data_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1dist_1_1_data_test__coll__graph.pdf
new file mode 100644
index 00000000..d65e3312
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1dist_1_1_data_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1dist_1_1_data_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1dist_1_1_data_test__inherit__graph.md5
new file mode 100644
index 00000000..0ce80d26
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1dist_1_1_data_test__inherit__graph.md5
@@ -0,0 +1 @@
+a6b3d4657e374bb6dec97097c0d97790
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1dist_1_1_data_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1dist_1_1_data_test__inherit__graph.pdf
new file mode 100644
index 00000000..d65e3312
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1dist_1_1_data_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1env_1_1_env_test.tex b/docs/latex/classpycal_1_1tests_1_1env_1_1_env_test.tex
new file mode 100644
index 00000000..b8275d96
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1env_1_1_env_test.tex
@@ -0,0 +1,46 @@
+\hypertarget{classpycal_1_1tests_1_1env_1_1_env_test}{}\doxysection{pycal.\+tests.\+env.\+Env\+Test Class Reference}
+\label{classpycal_1_1tests_1_1env_1_1_env_test}\index{pycal.tests.env.EnvTest@{pycal.tests.env.EnvTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+env.\+Env\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1env_1_1_env_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+env.\+Env\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1env_1_1_env_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1env_1_1_env_test_a93db1b4e7b5a72d82d08bfa491c516d0}\label{classpycal_1_1tests_1_1env_1_1_env_test_a93db1b4e7b5a72d82d08bfa491c516d0}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1env_1_1_env_test_aabf698b6977d67de385fcdfa7e734dd2}\label{classpycal_1_1tests_1_1env_1_1_env_test_aabf698b6977d67de385fcdfa7e734dd2}}
+def {\bfseries test\+\_\+env} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1env_1_1_env_test_a7c1c6908f0914553b3600be46def31dc}\label{classpycal_1_1tests_1_1env_1_1_env_test_a7c1c6908f0914553b3600be46def31dc}}
+def {\bfseries test\+\_\+comm} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1env_1_1_env_test_a61ca291d519d6f99f19c0cda1afc94d7}\label{classpycal_1_1tests_1_1env_1_1_env_test_a61ca291d519d6f99f19c0cda1afc94d7}}
+{\bfseries rank}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1env_1_1_env_test_aee33162ab076eb7b779be7493b4290ec}\label{classpycal_1_1tests_1_1env_1_1_env_test_aee33162ab076eb7b779be7493b4290ec}}
+{\bfseries nproc}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/env.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1env_1_1_env_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1env_1_1_env_test__coll__graph.md5
new file mode 100644
index 00000000..a2d3fd13
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1env_1_1_env_test__coll__graph.md5
@@ -0,0 +1 @@
+0f192de2aa1edab0c630e497cbbaa563
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1env_1_1_env_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1env_1_1_env_test__coll__graph.pdf
new file mode 100644
index 00000000..ad0c5336
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1env_1_1_env_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1env_1_1_env_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1env_1_1_env_test__inherit__graph.md5
new file mode 100644
index 00000000..a2d3fd13
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1env_1_1_env_test__inherit__graph.md5
@@ -0,0 +1 @@
+0f192de2aa1edab0c630e497cbbaa563
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1env_1_1_env_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1env_1_1_env_test__inherit__graph.pdf
new file mode 100644
index 00000000..ad0c5336
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1env_1_1_env_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1fft_1_1_f_f_t_test.tex b/docs/latex/classpycal_1_1tests_1_1fft_1_1_f_f_t_test.tex
new file mode 100644
index 00000000..dd06f9ce
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1fft_1_1_f_f_t_test.tex
@@ -0,0 +1,58 @@
+\hypertarget{classpycal_1_1tests_1_1fft_1_1_f_f_t_test}{}\doxysection{pycal.\+tests.\+fft.\+F\+F\+T\+Test Class Reference}
+\label{classpycal_1_1tests_1_1fft_1_1_f_f_t_test}\index{pycal.tests.fft.FFTTest@{pycal.tests.fft.FFTTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+fft.\+F\+F\+T\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1fft_1_1_f_f_t_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+fft.\+F\+F\+T\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1fft_1_1_f_f_t_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1fft_1_1_f_f_t_test_a2be822df9de56186dec4390588de176c}\label{classpycal_1_1tests_1_1fft_1_1_f_f_t_test_a2be822df9de56186dec4390588de176c}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1fft_1_1_f_f_t_test_a9bccd9e7d68ef4ef647fb4a66ed2f973}\label{classpycal_1_1tests_1_1fft_1_1_f_f_t_test_a9bccd9e7d68ef4ef647fb4a66ed2f973}}
+def {\bfseries test\+\_\+roundtrip} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1fft_1_1_f_f_t_test_a2fd560e908a34adfd51e78e42c9ffbf5}\label{classpycal_1_1tests_1_1fft_1_1_f_f_t_test_a2fd560e908a34adfd51e78e42c9ffbf5}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1fft_1_1_f_f_t_test_a89327654521a730b7804f12f1207d08a}\label{classpycal_1_1tests_1_1fft_1_1_f_f_t_test_a89327654521a730b7804f12f1207d08a}}
+{\bfseries length}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1fft_1_1_f_f_t_test_a7234add9dfd24de1774f045d72fa1699}\label{classpycal_1_1tests_1_1fft_1_1_f_f_t_test_a7234add9dfd24de1774f045d72fa1699}}
+{\bfseries input\+\_\+one}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1fft_1_1_f_f_t_test_af1255d9a859cbc06cadae458e263ebf3}\label{classpycal_1_1tests_1_1fft_1_1_f_f_t_test_af1255d9a859cbc06cadae458e263ebf3}}
+{\bfseries compare\+\_\+one}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1fft_1_1_f_f_t_test_a7c92ce394988cddd041fc4f7546688ec}\label{classpycal_1_1tests_1_1fft_1_1_f_f_t_test_a7c92ce394988cddd041fc4f7546688ec}}
+{\bfseries nbatch}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1fft_1_1_f_f_t_test_a1419198eb98668c85436ed92f7237487}\label{classpycal_1_1tests_1_1fft_1_1_f_f_t_test_a1419198eb98668c85436ed92f7237487}}
+{\bfseries input\+\_\+batch}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1fft_1_1_f_f_t_test_a0a7d3b7426d6e78c82b1db482df181c6}\label{classpycal_1_1tests_1_1fft_1_1_f_f_t_test_a0a7d3b7426d6e78c82b1db482df181c6}}
+{\bfseries compare\+\_\+batch}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/fft.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1fft_1_1_f_f_t_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1fft_1_1_f_f_t_test__coll__graph.md5
new file mode 100644
index 00000000..42494db3
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1fft_1_1_f_f_t_test__coll__graph.md5
@@ -0,0 +1 @@
+c37693e536408d67158e2ccdff20e239
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1fft_1_1_f_f_t_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1fft_1_1_f_f_t_test__coll__graph.pdf
new file mode 100644
index 00000000..33c7e964
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1fft_1_1_f_f_t_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1fft_1_1_f_f_t_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1fft_1_1_f_f_t_test__inherit__graph.md5
new file mode 100644
index 00000000..42494db3
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1fft_1_1_f_f_t_test__inherit__graph.md5
@@ -0,0 +1 @@
+c37693e536408d67158e2ccdff20e239
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1fft_1_1_f_f_t_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1fft_1_1_f_f_t_test__inherit__graph.pdf
new file mode 100644
index 00000000..33c7e964
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1fft_1_1_f_f_t_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1healpix_1_1_healpix_test.tex b/docs/latex/classpycal_1_1tests_1_1healpix_1_1_healpix_test.tex
new file mode 100644
index 00000000..44c2f508
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1healpix_1_1_healpix_test.tex
@@ -0,0 +1,73 @@
+\hypertarget{classpycal_1_1tests_1_1healpix_1_1_healpix_test}{}\doxysection{pycal.\+tests.\+healpix.\+Healpix\+Test Class Reference}
+\label{classpycal_1_1tests_1_1healpix_1_1_healpix_test}\index{pycal.tests.healpix.HealpixTest@{pycal.tests.healpix.HealpixTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+healpix.\+Healpix\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=249pt]{classpycal_1_1tests_1_1healpix_1_1_healpix_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+healpix.\+Healpix\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=249pt]{classpycal_1_1tests_1_1healpix_1_1_healpix_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1healpix_1_1_healpix_test_a29eb59d2aba37502e531354db61631db}\label{classpycal_1_1tests_1_1healpix_1_1_healpix_test_a29eb59d2aba37502e531354db61631db}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1healpix_1_1_healpix_test_a35b3ce8aff1b3581edfd12d9478ce28d}\label{classpycal_1_1tests_1_1healpix_1_1_healpix_test_a35b3ce8aff1b3581edfd12d9478ce28d}}
+def {\bfseries test\+\_\+roundtrip} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1healpix_1_1_healpix_test_abd7e9a2f11369de95d6c34a1238841da}\label{classpycal_1_1tests_1_1healpix_1_1_healpix_test_abd7e9a2f11369de95d6c34a1238841da}}
+def {\bfseries test\+\_\+pix} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1healpix_1_1_healpix_test_a2de7de30e2d1117f62b32edb94a8a9bb}\label{classpycal_1_1tests_1_1healpix_1_1_healpix_test_a2de7de30e2d1117f62b32edb94a8a9bb}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1healpix_1_1_healpix_test_aa7ebf3cce25922b0ef36dd4828025c7d}\label{classpycal_1_1tests_1_1healpix_1_1_healpix_test_aa7ebf3cce25922b0ef36dd4828025c7d}}
+{\bfseries nside}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1healpix_1_1_healpix_test_a578d2b597deef535681a92b6dc18364b}\label{classpycal_1_1tests_1_1healpix_1_1_healpix_test_a578d2b597deef535681a92b6dc18364b}}
+{\bfseries eps32}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1healpix_1_1_healpix_test_aaa9cf9fecf52b2c961ddcd5509a328eb}\label{classpycal_1_1tests_1_1healpix_1_1_healpix_test_aaa9cf9fecf52b2c961ddcd5509a328eb}}
+{\bfseries eps64}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1healpix_1_1_healpix_test_adbf62b69e5e56cb7ced51daa47e01fb1}\label{classpycal_1_1tests_1_1healpix_1_1_healpix_test_adbf62b69e5e56cb7ced51daa47e01fb1}}
+{\bfseries extremes}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1healpix_1_1_healpix_test_a29cc8b237fbf7c19a10532b251f83ae8}\label{classpycal_1_1tests_1_1healpix_1_1_healpix_test_a29cc8b237fbf7c19a10532b251f83ae8}}
+{\bfseries extcompnest}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1healpix_1_1_healpix_test_a989cfce5a135f76952196275219c8036}\label{classpycal_1_1tests_1_1healpix_1_1_healpix_test_a989cfce5a135f76952196275219c8036}}
+{\bfseries extcompring}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1healpix_1_1_healpix_test_aff2a84d7bd1219b6904d46308b6c2c03}\label{classpycal_1_1tests_1_1healpix_1_1_healpix_test_aff2a84d7bd1219b6904d46308b6c2c03}}
+{\bfseries nreg}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1healpix_1_1_healpix_test_a27b40b88968c0842d727340a9bf9fc90}\label{classpycal_1_1tests_1_1healpix_1_1_healpix_test_a27b40b88968c0842d727340a9bf9fc90}}
+{\bfseries regular}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1healpix_1_1_healpix_test_afcbe499bf501bf5b9ad967f0f5c2639c}\label{classpycal_1_1tests_1_1healpix_1_1_healpix_test_afcbe499bf501bf5b9ad967f0f5c2639c}}
+{\bfseries regcompnest}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1healpix_1_1_healpix_test_a5af90edd23391fa58594081b94fdbb26}\label{classpycal_1_1tests_1_1healpix_1_1_healpix_test_a5af90edd23391fa58594081b94fdbb26}}
+{\bfseries regcompring}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/healpix.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1healpix_1_1_healpix_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1healpix_1_1_healpix_test__coll__graph.md5
new file mode 100644
index 00000000..c11fecba
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1healpix_1_1_healpix_test__coll__graph.md5
@@ -0,0 +1 @@
+39a42165d7a666856d9c68aac44a2d2e
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1healpix_1_1_healpix_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1healpix_1_1_healpix_test__coll__graph.pdf
new file mode 100644
index 00000000..bb85ca47
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1healpix_1_1_healpix_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1healpix_1_1_healpix_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1healpix_1_1_healpix_test__inherit__graph.md5
new file mode 100644
index 00000000..c11fecba
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1healpix_1_1_healpix_test__inherit__graph.md5
@@ -0,0 +1 @@
+39a42165d7a666856d9c68aac44a2d2e
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1healpix_1_1_healpix_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1healpix_1_1_healpix_test__inherit__graph.pdf
new file mode 100644
index 00000000..8e99a6a8
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1healpix_1_1_healpix_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1intervals_1_1_interval_test.tex b/docs/latex/classpycal_1_1tests_1_1intervals_1_1_interval_test.tex
new file mode 100644
index 00000000..a38d1a02
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1intervals_1_1_interval_test.tex
@@ -0,0 +1,58 @@
+\hypertarget{classpycal_1_1tests_1_1intervals_1_1_interval_test}{}\doxysection{pycal.\+tests.\+intervals.\+Interval\+Test Class Reference}
+\label{classpycal_1_1tests_1_1intervals_1_1_interval_test}\index{pycal.tests.intervals.IntervalTest@{pycal.tests.intervals.IntervalTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+intervals.\+Interval\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=256pt]{classpycal_1_1tests_1_1intervals_1_1_interval_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+intervals.\+Interval\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=256pt]{classpycal_1_1tests_1_1intervals_1_1_interval_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1intervals_1_1_interval_test_ab11c14d9ba12eaffacc4fcf1409542d1}\label{classpycal_1_1tests_1_1intervals_1_1_interval_test_ab11c14d9ba12eaffacc4fcf1409542d1}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1intervals_1_1_interval_test_a496a7fe6717482b74bd8e695e76f78df}\label{classpycal_1_1tests_1_1intervals_1_1_interval_test_a496a7fe6717482b74bd8e695e76f78df}}
+def {\bfseries test\+\_\+tochunks} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1intervals_1_1_interval_test_a70de964b239ad3fe3c0efdf29c9dc5b6}\label{classpycal_1_1tests_1_1intervals_1_1_interval_test_a70de964b239ad3fe3c0efdf29c9dc5b6}}
+def {\bfseries test\+\_\+regular} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1intervals_1_1_interval_test_a45f1c5614b4433c32cd5e752febadc0e}\label{classpycal_1_1tests_1_1intervals_1_1_interval_test_a45f1c5614b4433c32cd5e752febadc0e}}
+{\bfseries rate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1intervals_1_1_interval_test_a48710e64c4953a1a44bcc5ecaa3a072f}\label{classpycal_1_1tests_1_1intervals_1_1_interval_test_a48710e64c4953a1a44bcc5ecaa3a072f}}
+{\bfseries duration}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1intervals_1_1_interval_test_a7cddd03f7e5d214e88e8505c90ba0c57}\label{classpycal_1_1tests_1_1intervals_1_1_interval_test_a7cddd03f7e5d214e88e8505c90ba0c57}}
+{\bfseries gap}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1intervals_1_1_interval_test_a89e13958c0d50c99346908408101aeac}\label{classpycal_1_1tests_1_1intervals_1_1_interval_test_a89e13958c0d50c99346908408101aeac}}
+{\bfseries start}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1intervals_1_1_interval_test_a13eb9c2cec27c0170ebd9efb44f5d0f5}\label{classpycal_1_1tests_1_1intervals_1_1_interval_test_a13eb9c2cec27c0170ebd9efb44f5d0f5}}
+{\bfseries first}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1intervals_1_1_interval_test_aa6759b713cff0acbeefd251fe9a666bd}\label{classpycal_1_1tests_1_1intervals_1_1_interval_test_aa6759b713cff0acbeefd251fe9a666bd}}
+{\bfseries nint}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/intervals.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1intervals_1_1_interval_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1intervals_1_1_interval_test__coll__graph.md5
new file mode 100644
index 00000000..4c1859ee
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1intervals_1_1_interval_test__coll__graph.md5
@@ -0,0 +1 @@
+2d0e28f565e5039ffeb00d050c111619
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1intervals_1_1_interval_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1intervals_1_1_interval_test__coll__graph.pdf
new file mode 100644
index 00000000..427bdd52
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1intervals_1_1_interval_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1intervals_1_1_interval_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1intervals_1_1_interval_test__inherit__graph.md5
new file mode 100644
index 00000000..4c1859ee
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1intervals_1_1_interval_test__inherit__graph.md5
@@ -0,0 +1 @@
+2d0e28f565e5039ffeb00d050c111619
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1intervals_1_1_interval_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1intervals_1_1_interval_test__inherit__graph.pdf
new file mode 100644
index 00000000..17912183
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1intervals_1_1_interval_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1map__ground_1_1_map_ground_test.tex b/docs/latex/classpycal_1_1tests_1_1map__ground_1_1_map_ground_test.tex
new file mode 100644
index 00000000..9781b981
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1map__ground_1_1_map_ground_test.tex
@@ -0,0 +1,118 @@
+\hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test}{}\doxysection{pycal.\+tests.\+map\+\_\+ground.\+Map\+Ground\+Test Class Reference}
+\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test}\index{pycal.tests.map\_ground.MapGroundTest@{pycal.tests.map\_ground.MapGroundTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+map\+\_\+ground.\+Map\+Ground\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=238pt]{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+map\+\_\+ground.\+Map\+Ground\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=238pt]{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a771f2f4d9579faa3bf3f65c6ab1eaf71}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a771f2f4d9579faa3bf3f65c6ab1eaf71}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a0a2e7845b1ae05f76963a2a60d9fa4f9}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a0a2e7845b1ae05f76963a2a60d9fa4f9}}
+def {\bfseries test\+\_\+azel} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_aaf8da1b1af25418ce2dfe5b6278c7b10}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_aaf8da1b1af25418ce2dfe5b6278c7b10}}
+def {\bfseries test\+\_\+grad} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a83365c9230392aeb1871915c699c00f3}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a83365c9230392aeb1871915c699c00f3}}
+def {\bfseries test\+\_\+noise} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a45f8907d5f28ce63fe2f5cc36b27acdf}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a45f8907d5f28ce63fe2f5cc36b27acdf}}
+def {\bfseries test\+\_\+scanmap} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_aa7afb6facf5288f6cd5b4b33d112a311}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_aa7afb6facf5288f6cd5b4b33d112a311}}
+def {\bfseries test\+\_\+hwpfast} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a7288eb02216211c3f033a6c67e230db5}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a7288eb02216211c3f033a6c67e230db5}}
+def {\bfseries test\+\_\+hwpconst} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a96f8704b915875e840e8b1eb8b305c43}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a96f8704b915875e840e8b1eb8b305c43}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a5f8b16c1c360318a89c79166cfbfb02c}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a5f8b16c1c360318a89c79166cfbfb02c}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a9bef73602e7e6fd127fb6055c2edbcda}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a9bef73602e7e6fd127fb6055c2edbcda}}
+{\bfseries data\+\_\+fast\+\_\+hwp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a87c46575605a6d9fc0b6841b5b81c9a3}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a87c46575605a6d9fc0b6841b5b81c9a3}}
+{\bfseries data\+\_\+const\+\_\+hwp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_ad11c76fb03686a411b71c0d37a12da4a}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_ad11c76fb03686a411b71c0d37a12da4a}}
+{\bfseries ndet}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a4291b0a2d6f310ed4b666e644a544d8b}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a4291b0a2d6f310ed4b666e644a544d8b}}
+{\bfseries rate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a821acbac095b7754e3e184f5f1d05253}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a821acbac095b7754e3e184f5f1d05253}}
+{\bfseries N\+ET}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_ac8b0ba9a20e38855977eb4f845ede6a2}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_ac8b0ba9a20e38855977eb4f845ede6a2}}
+{\bfseries totsamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_abb0314a9e679fba182565e8735510f96}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_abb0314a9e679fba182565e8735510f96}}
+{\bfseries sim\+\_\+nside}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a4d04a138c6be055f8536ff70ff7f75e2}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a4d04a138c6be055f8536ff70ff7f75e2}}
+{\bfseries map\+\_\+nside}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a9ad4adfffe94ff0d8af8d4226fe9a9f7}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a9ad4adfffe94ff0d8af8d4226fe9a9f7}}
+{\bfseries site\+\_\+lon}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a5b73ac80b252b3b50a909125ed5f42f0}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a5b73ac80b252b3b50a909125ed5f42f0}}
+{\bfseries site\+\_\+lat}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a2030fc219504e559a0b3b0364fd4825a}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a2030fc219504e559a0b3b0364fd4825a}}
+{\bfseries site\+\_\+alt}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_af108f90d58c4f2c7977de05e596856e1}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_af108f90d58c4f2c7977de05e596856e1}}
+{\bfseries coord}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_ae49b04de7820a03d5178b53255b5bc39}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_ae49b04de7820a03d5178b53255b5bc39}}
+{\bfseries azmin}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_ab168d7cfc08df576dea207936168d9a4}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_ab168d7cfc08df576dea207936168d9a4}}
+{\bfseries azmax}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a43c0e752830853675434bbf8aeaba455}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a43c0e752830853675434bbf8aeaba455}}
+{\bfseries el}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a46eb070cd67982a04c9d7aa5b3266213}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a46eb070cd67982a04c9d7aa5b3266213}}
+{\bfseries scanrate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a01612ae00f7c21391615d9ca5fee483d}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a01612ae00f7c21391615d9ca5fee483d}}
+{\bfseries scan\+\_\+accel}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_ac0a89737c7d0ef4d9cc7be31222eb9c9}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_ac0a89737c7d0ef4d9cc7be31222eb9c9}}
+{\bfseries C\+E\+S\+\_\+start}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_aae6f7031e4bf1894b6a8e80cc9bba0a4}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_aae6f7031e4bf1894b6a8e80cc9bba0a4}}
+{\bfseries common\+\_\+flag\+\_\+mask}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a63b692de3e6aca24a551d8e8033c484c}\label{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test_a63b692de3e6aca24a551d8e8033c484c}}
+{\bfseries nflagged}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/map\+\_\+ground.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1map__ground_1_1_map_ground_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1map__ground_1_1_map_ground_test__coll__graph.md5
new file mode 100644
index 00000000..1430beec
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1map__ground_1_1_map_ground_test__coll__graph.md5
@@ -0,0 +1 @@
+5cc16908fc594fba4c2817a3f6ad2a40
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1map__ground_1_1_map_ground_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1map__ground_1_1_map_ground_test__coll__graph.pdf
new file mode 100644
index 00000000..2d91ff8d
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1map__ground_1_1_map_ground_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1map__ground_1_1_map_ground_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1map__ground_1_1_map_ground_test__inherit__graph.md5
new file mode 100644
index 00000000..1430beec
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1map__ground_1_1_map_ground_test__inherit__graph.md5
@@ -0,0 +1 @@
+5cc16908fc594fba4c2817a3f6ad2a40
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1map__ground_1_1_map_ground_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1map__ground_1_1_map_ground_test__inherit__graph.pdf
new file mode 100644
index 00000000..2d91ff8d
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1map__ground_1_1_map_ground_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test.tex b/docs/latex/classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test.tex
new file mode 100644
index 00000000..7f07a262
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test.tex
@@ -0,0 +1,97 @@
+\hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test}{}\doxysection{pycal.\+tests.\+map\+\_\+satellite.\+Map\+Satellite\+Test Class Reference}
+\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test}\index{pycal.tests.map\_satellite.MapSatelliteTest@{pycal.tests.map\_satellite.MapSatelliteTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+map\+\_\+satellite.\+Map\+Satellite\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+map\+\_\+satellite.\+Map\+Satellite\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_ae13accf04504642cd8f3c67d678ced35}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_ae13accf04504642cd8f3c67d678ced35}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_aaacec6c3a20e79b450362240d808ced8}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_aaacec6c3a20e79b450362240d808ced8}}
+def {\bfseries test\+\_\+boresight\+\_\+null} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_acc1ba54c9520723ee329ad2831e446eb}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_acc1ba54c9520723ee329ad2831e446eb}}
+def {\bfseries test\+\_\+grad} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_a176506f8d4589297171bc7b232d891a7}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_a176506f8d4589297171bc7b232d891a7}}
+def {\bfseries test\+\_\+noise} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_afbd6bab1d8145cc6d24470e7d63c0a7a}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_afbd6bab1d8145cc6d24470e7d63c0a7a}}
+def {\bfseries test\+\_\+scanmap} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_a3ef0f5d8137eeb7cbabffe18d157adc3}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_a3ef0f5d8137eeb7cbabffe18d157adc3}}
+def {\bfseries test\+\_\+hwpfast} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_a1a5e831e22042ca54fa3c8a6f1001653}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_a1a5e831e22042ca54fa3c8a6f1001653}}
+def {\bfseries test\+\_\+hwpconst} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_affcfe10794fbe07255fd9d8b71b418bd}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_affcfe10794fbe07255fd9d8b71b418bd}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_ae59bf735a07b3bf2783de81ce50a4605}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_ae59bf735a07b3bf2783de81ce50a4605}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_aa5c23e3cc017a9d236b637602eb2e285}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_aa5c23e3cc017a9d236b637602eb2e285}}
+{\bfseries data\+\_\+fast\+\_\+hwp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_af858463fc2968e5e00408e00a6f063a3}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_af858463fc2968e5e00408e00a6f063a3}}
+{\bfseries data\+\_\+const\+\_\+hwp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_a2d14e925f9f7e20bad45262458c6bddc}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_a2d14e925f9f7e20bad45262458c6bddc}}
+{\bfseries ndet}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_a726752a692efa7adfef0fd83b9e9b33c}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_a726752a692efa7adfef0fd83b9e9b33c}}
+{\bfseries rate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_ab7f2a7eea10402a01649d68297768f7e}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_ab7f2a7eea10402a01649d68297768f7e}}
+{\bfseries N\+ET}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_a55e106a8af6fba348d911cdb3f0f6de5}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_a55e106a8af6fba348d911cdb3f0f6de5}}
+{\bfseries totsamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_a52d68c32b4d89074358e1420d99af433}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_a52d68c32b4d89074358e1420d99af433}}
+{\bfseries sim\+\_\+nside}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_ab5477846ff90979411e7823a88654929}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_ab5477846ff90979411e7823a88654929}}
+{\bfseries map\+\_\+nside}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_ad90e191dc128836a416aaf87397515c3}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_ad90e191dc128836a416aaf87397515c3}}
+{\bfseries nside\+\_\+submap}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_a022a11d0651c42f81ff3d5cc3da14448}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_a022a11d0651c42f81ff3d5cc3da14448}}
+{\bfseries spinperiod}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_a07416342f1f73097d1e06f57def1863a}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_a07416342f1f73097d1e06f57def1863a}}
+{\bfseries spinangle}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_aae7439f5591b90648d5ac087c37751f3}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_aae7439f5591b90648d5ac087c37751f3}}
+{\bfseries precperiod}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_aa4b0f45755b4ec4bd9809aad806c3263}\label{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test_aa4b0f45755b4ec4bd9809aad806c3263}}
+{\bfseries precangle}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/map\+\_\+satellite.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test__coll__graph.md5
new file mode 100644
index 00000000..3cc42528
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test__coll__graph.md5
@@ -0,0 +1 @@
+04478753f0cc6ae54e481a3505bd1aa6
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test__coll__graph.pdf
new file mode 100644
index 00000000..14bdec01
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test__inherit__graph.md5
new file mode 100644
index 00000000..3cc42528
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test__inherit__graph.md5
@@ -0,0 +1 @@
+04478753f0cc6ae54e481a3505bd1aa6
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test__inherit__graph.pdf
new file mode 100644
index 00000000..14bdec01
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1___writeln_decorator.tex b/docs/latex/classpycal_1_1tests_1_1mpi_1_1___writeln_decorator.tex
new file mode 100644
index 00000000..5c6bbba0
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1mpi_1_1___writeln_decorator.tex
@@ -0,0 +1,47 @@
+\hypertarget{classpycal_1_1tests_1_1mpi_1_1___writeln_decorator}{}\doxysection{pycal.\+tests.\+mpi.\+\_\+\+Writeln\+Decorator Class Reference}
+\label{classpycal_1_1tests_1_1mpi_1_1___writeln_decorator}\index{pycal.tests.mpi.\_WritelnDecorator@{pycal.tests.mpi.\_WritelnDecorator}}
+
+
+Inheritance diagram for pycal.\+tests.\+mpi.\+\_\+\+Writeln\+Decorator\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=215pt]{classpycal_1_1tests_1_1mpi_1_1___writeln_decorator__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+mpi.\+\_\+\+Writeln\+Decorator\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=215pt]{classpycal_1_1tests_1_1mpi_1_1___writeln_decorator__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1___writeln_decorator_afdd53b8b2f3b11ef47a9103e8445d42a}\label{classpycal_1_1tests_1_1mpi_1_1___writeln_decorator_afdd53b8b2f3b11ef47a9103e8445d42a}}
+def {\bfseries \+\_\+\+\_\+init\+\_\+\+\_\+} (self, stream)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1___writeln_decorator_a5c09a6aab91c43501b1c10f67f47930a}\label{classpycal_1_1tests_1_1mpi_1_1___writeln_decorator_a5c09a6aab91c43501b1c10f67f47930a}}
+def {\bfseries \+\_\+\+\_\+getattr\+\_\+\+\_\+} (self, attr)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1___writeln_decorator_ae1c27ce9705521883114d084af4497d0}\label{classpycal_1_1tests_1_1mpi_1_1___writeln_decorator_ae1c27ce9705521883114d084af4497d0}}
+def {\bfseries writeln} (self, arg=None)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1___writeln_decorator_a7e835cb19507be367b776fd5344aa743}\label{classpycal_1_1tests_1_1mpi_1_1___writeln_decorator_a7e835cb19507be367b776fd5344aa743}}
+{\bfseries stream}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+\begin{DoxyVerb}Used to decorate file-like objects with a handy "writeln" method\end{DoxyVerb}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/mpi.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1___writeln_decorator__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1mpi_1_1___writeln_decorator__coll__graph.md5
new file mode 100644
index 00000000..2af94692
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1mpi_1_1___writeln_decorator__coll__graph.md5
@@ -0,0 +1 @@
+26274909f3ba0340b1f5ee96cfa12c21
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1___writeln_decorator__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1mpi_1_1___writeln_decorator__coll__graph.pdf
new file mode 100644
index 00000000..9193ae11
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1mpi_1_1___writeln_decorator__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1___writeln_decorator__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1mpi_1_1___writeln_decorator__inherit__graph.md5
new file mode 100644
index 00000000..2af94692
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1mpi_1_1___writeln_decorator__inherit__graph.md5
@@ -0,0 +1 @@
+26274909f3ba0340b1f5ee96cfa12c21
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1___writeln_decorator__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1mpi_1_1___writeln_decorator__inherit__graph.pdf
new file mode 100644
index 00000000..9193ae11
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1mpi_1_1___writeln_decorator__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case.tex b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case.tex
new file mode 100644
index 00000000..a365fa56
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case.tex
@@ -0,0 +1,46 @@
+\hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case}{}\doxysection{pycal.\+tests.\+mpi.\+M\+P\+I\+Test\+Case Class Reference}
+\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case}\index{pycal.tests.mpi.MPITestCase@{pycal.tests.mpi.MPITestCase}}
+
+
+Inheritance diagram for pycal.\+tests.\+mpi.\+M\+P\+I\+Test\+Case\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=550pt]{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+mpi.\+M\+P\+I\+Test\+Case\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case_a8808e88f866212d1ad4dfa253888d3e8}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case_a8808e88f866212d1ad4dfa253888d3e8}}
+def {\bfseries \+\_\+\+\_\+init\+\_\+\+\_\+} (self, $\ast$args, $\ast$$\ast$kwargs)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case_a4680fda25db2c1e26c739145661bd486}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case_a4680fda25db2c1e26c739145661bd486}}
+def {\bfseries set\+Comm} (self, comm)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case_a83a195255db650769b516a913bb2aea4}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case_a83a195255db650769b516a913bb2aea4}}
+{\bfseries comm}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+\begin{DoxyVerb}A simple wrapper around the standard TestCase which provides
+one extra method to set the communicator.
+\end{DoxyVerb}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/mpi.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case__coll__graph.md5
new file mode 100644
index 00000000..32aa7462
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case__coll__graph.md5
@@ -0,0 +1 @@
+a9ce2c70e43474dcbbb6eb3e4b589f1a
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case__coll__graph.pdf
new file mode 100644
index 00000000..5cf6088c
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case__inherit__graph.md5
new file mode 100644
index 00000000..4b0f19ec
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case__inherit__graph.md5
@@ -0,0 +1 @@
+2a48ba7d16106427aa10df4120b5aa85
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case__inherit__graph.pdf
new file mode 100644
index 00000000..4ad70811
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result.tex b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result.tex
new file mode 100644
index 00000000..879b4f51
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result.tex
@@ -0,0 +1,100 @@
+\hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result}{}\doxysection{pycal.\+tests.\+mpi.\+M\+P\+I\+Test\+Result Class Reference}
+\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result}\index{pycal.tests.mpi.MPITestResult@{pycal.tests.mpi.MPITestResult}}
+
+
+Inheritance diagram for pycal.\+tests.\+mpi.\+M\+P\+I\+Test\+Result\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=243pt]{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+mpi.\+M\+P\+I\+Test\+Result\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=243pt]{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_af6df21a5365d527f664223038022a672}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_af6df21a5365d527f664223038022a672}}
+def {\bfseries \+\_\+\+\_\+init\+\_\+\+\_\+} (self, comm, stream=None, descriptions=None, verbosity=None, $\ast$$\ast$kwargs)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_af68644c5ecb71731897bbba1e89a66db}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_af68644c5ecb71731897bbba1e89a66db}}
+def {\bfseries get\+Description} (self, test)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a9f4e58c140e5f09447e93ad42d24efd9}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a9f4e58c140e5f09447e93ad42d24efd9}}
+def {\bfseries start\+Test} (self, test)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_ab1b17d8fb0d1be6840c166a67de82fbf}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_ab1b17d8fb0d1be6840c166a67de82fbf}}
+def {\bfseries add\+Success} (self, test)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_ae4c34ba05599e792ca35c97204bd003f}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_ae4c34ba05599e792ca35c97204bd003f}}
+def {\bfseries add\+Error} (self, test, err)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a174e2836857596d8a62e9bc1b032cef8}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a174e2836857596d8a62e9bc1b032cef8}}
+def {\bfseries add\+Failure} (self, test, err)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a35dc0c58f4b740f46f64c49cd07ca993}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a35dc0c58f4b740f46f64c49cd07ca993}}
+def {\bfseries add\+Skip} (self, test, reason)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_ad1241975f8ed25756317584d295cbdd0}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_ad1241975f8ed25756317584d295cbdd0}}
+def {\bfseries add\+Expected\+Failure} (self, test, err)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a42e2317e39fc2d5b8cdfccaee349c9c2}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a42e2317e39fc2d5b8cdfccaee349c9c2}}
+def {\bfseries add\+Unexpected\+Success} (self, test)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a2ae667784996667922f90b13dfc312b9}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a2ae667784996667922f90b13dfc312b9}}
+def {\bfseries print\+Error\+List} (self, flavour, errors)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a6c2408e518f8313a9bf43006391b64a6}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a6c2408e518f8313a9bf43006391b64a6}}
+def {\bfseries print\+Errors} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a2215489c3f40c7ef35782e1fef78c05c}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a2215489c3f40c7ef35782e1fef78c05c}}
+def {\bfseries all\+Successful} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a928ea9426123b63df686b5b0724ec611}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a928ea9426123b63df686b5b0724ec611}}
+{\bfseries comm}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a2bb956146eac975a19f148bf2ab381ec}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a2bb956146eac975a19f148bf2ab381ec}}
+{\bfseries stream}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a1b7be87f9cc4bf3719654c32c21c17a9}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a1b7be87f9cc4bf3719654c32c21c17a9}}
+{\bfseries descriptions}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_aba08459a449d04b26bbdf1109db74ce2}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_aba08459a449d04b26bbdf1109db74ce2}}
+{\bfseries buffer}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a555a7ca1be733273d997355e9a986a82}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_a555a7ca1be733273d997355e9a986a82}}
+{\bfseries failfast}
+\end{DoxyCompactItemize}
+\doxysubsection*{Static Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_afb77a7413356119edc5eb104a229e1d2}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_afb77a7413356119edc5eb104a229e1d2}}
+string {\bfseries separator1} = \char`\"{}=\char`\"{} $\ast$ 70
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_aa31cad702125f6db06da4dc7ff710056}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result_aa31cad702125f6db06da4dc7ff710056}}
+string {\bfseries separator2} = \char`\"{}-\/\char`\"{} $\ast$ 70
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+\begin{DoxyVerb}A test result class that can print formatted text results to a stream.
+
+The actions needed are coordinated across all processes.
+
+Used by MPITestRunner.
+\end{DoxyVerb}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/mpi.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result__coll__graph.md5
new file mode 100644
index 00000000..f692e1e8
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result__coll__graph.md5
@@ -0,0 +1 @@
+894d1957cab060e924a33634abf93215
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result__coll__graph.pdf
new file mode 100644
index 00000000..24c98880
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result__inherit__graph.md5
new file mode 100644
index 00000000..f692e1e8
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result__inherit__graph.md5
@@ -0,0 +1 @@
+894d1957cab060e924a33634abf93215
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result__inherit__graph.pdf
new file mode 100644
index 00000000..24c98880
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner.tex b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner.tex
new file mode 100644
index 00000000..4baa3315
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner.tex
@@ -0,0 +1,81 @@
+\hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner}{}\doxysection{pycal.\+tests.\+mpi.\+M\+P\+I\+Test\+Runner Class Reference}
+\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner}\index{pycal.tests.mpi.MPITestRunner@{pycal.tests.mpi.MPITestRunner}}
+
+
+Inheritance diagram for pycal.\+tests.\+mpi.\+M\+P\+I\+Test\+Runner\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=247pt]{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+mpi.\+M\+P\+I\+Test\+Runner\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=247pt]{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+def \mbox{\hyperlink{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner_aaa5ae490e988aa9462dd234d56266e5e}{\+\_\+\+\_\+init\+\_\+\+\_\+}} (self, comm, stream=None, descriptions=True, verbosity=2, warnings=None)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner_a6cb76a320dd9cb5d3d7f4ea92d88878e}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner_a6cb76a320dd9cb5d3d7f4ea92d88878e}}
+def {\bfseries run} (self, test)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner_a4ebae1a25f28718ef12d6409a5d870a5}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner_a4ebae1a25f28718ef12d6409a5d870a5}}
+{\bfseries comm}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner_a2455da0c356ab39bcf4a956d2e69bfaf}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner_a2455da0c356ab39bcf4a956d2e69bfaf}}
+{\bfseries stream}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner_a5591ebda22fe2a8f8c9c7bbf17994778}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner_a5591ebda22fe2a8f8c9c7bbf17994778}}
+{\bfseries descriptions}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner_a8cdfc8f46758a2ddaca793c9793aa896}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner_a8cdfc8f46758a2ddaca793c9793aa896}}
+{\bfseries verbosity}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner_a3a2164d979215f5138393e3712dceeb0}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner_a3a2164d979215f5138393e3712dceeb0}}
+{\bfseries warnings}
+\end{DoxyCompactItemize}
+\doxysubsection*{Static Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner_a7cbcb4b2bc06defb690c5de0c99084a8}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner_a7cbcb4b2bc06defb690c5de0c99084a8}}
+{\bfseries resultclass} = \mbox{\hyperlink{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result}{M\+P\+I\+Test\+Result}}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+\begin{DoxyVerb}A test runner class that displays results in textual form.
+
+It prints out the names of tests as they are run, errors as they
+occur, and a summary of the results at the end of the test run.
+
+This information is only printed by the root process.
+\end{DoxyVerb}
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner_aaa5ae490e988aa9462dd234d56266e5e}\label{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner_aaa5ae490e988aa9462dd234d56266e5e}}
+\index{pycal.tests.mpi.MPITestRunner@{pycal.tests.mpi.MPITestRunner}!\_\_init\_\_@{\_\_init\_\_}}
+\index{\_\_init\_\_@{\_\_init\_\_}!pycal.tests.mpi.MPITestRunner@{pycal.tests.mpi.MPITestRunner}}
+\doxysubsubsection{\texorpdfstring{\_\_init\_\_()}{\_\_init\_\_()}}
+{\footnotesize\ttfamily def pycal.\+tests.\+mpi.\+M\+P\+I\+Test\+Runner.\+\_\+\+\_\+init\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{comm, }\item[{}]{stream = {\ttfamily None}, }\item[{}]{descriptions = {\ttfamily True}, }\item[{}]{verbosity = {\ttfamily 2}, }\item[{}]{warnings = {\ttfamily None} }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Construct a MPITestRunner.
+
+Subclasses should accept **kwargs to ensure compatibility as the
+interface changes.
+\end{DoxyVerb}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/mpi.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner__coll__graph.md5
new file mode 100644
index 00000000..f1119b6d
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner__coll__graph.md5
@@ -0,0 +1 @@
+e74667b2c5f364f76dfc54daf03c865d
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner__coll__graph.pdf
new file mode 100644
index 00000000..a98dbcf2
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner__inherit__graph.md5
new file mode 100644
index 00000000..f1119b6d
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner__inherit__graph.md5
@@ -0,0 +1 @@
+e74667b2c5f364f76dfc54daf03c865d
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner__inherit__graph.pdf
new file mode 100644
index 00000000..a98dbcf2
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain.tex b/docs/latex/classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain.tex
new file mode 100644
index 00000000..24a6e0ac
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain.tex
@@ -0,0 +1,58 @@
+\hypertarget{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain}{}\doxysection{pycal.\+tests.\+ops\+\_\+applygain.\+Test\+Apply\+Gain Class Reference}
+\label{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain}\index{pycal.tests.ops\_applygain.TestApplyGain@{pycal.tests.ops\_applygain.TestApplyGain}}
+
+
+Inheritance diagram for pycal.\+tests.\+ops\+\_\+applygain.\+Test\+Apply\+Gain\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+ops\+\_\+applygain.\+Test\+Apply\+Gain\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain_a94c2e2f110b7586e473f2d0b84d47bb3}\label{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain_a94c2e2f110b7586e473f2d0b84d47bb3}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain_a7b5d547285956484b4b57e679ccd3a9f}\label{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain_a7b5d547285956484b4b57e679ccd3a9f}}
+def {\bfseries test\+\_\+write\+\_\+calibration\+\_\+file} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain_ad456b7139e1e231817f923ce032a161d}\label{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain_ad456b7139e1e231817f923ce032a161d}}
+def {\bfseries test\+\_\+op\+\_\+applygain} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain_a7942595698481f55b70ae241ec45dd32}\label{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain_a7942595698481f55b70ae241ec45dd32}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain_a42fed671a3fe48ae0b31ca2534ad91ce}\label{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain_a42fed671a3fe48ae0b31ca2534ad91ce}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain_a120ff8ea367ba01973a536294397b7c1}\label{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain_a120ff8ea367ba01973a536294397b7c1}}
+{\bfseries gain}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain_af0b6a7f83d51b4ee2b49fabfe6c6d7a1}\label{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain_af0b6a7f83d51b4ee2b49fabfe6c6d7a1}}
+{\bfseries ndet}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain_aed2acab686624c301b89ba4947e7bb89}\label{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain_aed2acab686624c301b89ba4947e7bb89}}
+{\bfseries dets}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain_a302b8423f2d5f627fc60ee6821d93b45}\label{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain_a302b8423f2d5f627fc60ee6821d93b45}}
+{\bfseries samples\+\_\+per\+\_\+obs}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/ops\+\_\+applygain.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain__coll__graph.md5
new file mode 100644
index 00000000..26d8d4ae
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain__coll__graph.md5
@@ -0,0 +1 @@
+4cac886898eb713939fed9a8626e45e8
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain__coll__graph.pdf
new file mode 100644
index 00000000..6f9db698
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain__inherit__graph.md5
new file mode 100644
index 00000000..26d8d4ae
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain__inherit__graph.md5
@@ -0,0 +1 @@
+4cac886898eb713939fed9a8626e45e8
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain__inherit__graph.pdf
new file mode 100644
index 00000000..6f9db698
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test.tex b/docs/latex/classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test.tex
new file mode 100644
index 00000000..0859a73b
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test.tex
@@ -0,0 +1,85 @@
+\hypertarget{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test}{}\doxysection{pycal.\+tests.\+ops\+\_\+dipole.\+Op\+Sim\+Dipole\+Test Class Reference}
+\label{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test}\index{pycal.tests.ops\_dipole.OpSimDipoleTest@{pycal.tests.ops\_dipole.OpSimDipoleTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+ops\+\_\+dipole.\+Op\+Sim\+Dipole\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+ops\+\_\+dipole.\+Op\+Sim\+Dipole\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a1300e031b50e60c3e520baa8018d01fb}\label{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a1300e031b50e60c3e520baa8018d01fb}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a278d3146bba029bdea72491b06d5093b}\label{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a278d3146bba029bdea72491b06d5093b}}
+def {\bfseries tear\+Down} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a857d8f9b704faffdbdb4b323a2b8fda4}\label{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a857d8f9b704faffdbdb4b323a2b8fda4}}
+def {\bfseries test\+\_\+dipole\+\_\+func} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a5eb44385583ae07693cb94c3f3c35355}\label{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a5eb44385583ae07693cb94c3f3c35355}}
+def {\bfseries test\+\_\+dipole\+\_\+func\+\_\+total} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a7e966563d9145ba16d88e59b610d79ef}\label{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a7e966563d9145ba16d88e59b610d79ef}}
+def {\bfseries test\+\_\+sim} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a2a8c5b7d2d521a192b82dfed39254458}\label{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a2a8c5b7d2d521a192b82dfed39254458}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a7f86157b3032288dfc5c57fc7456f61d}\label{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a7f86157b3032288dfc5c57fc7456f61d}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a7c1fe9bcda44ed95039592e4bd0b8d01}\label{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a7c1fe9bcda44ed95039592e4bd0b8d01}}
+{\bfseries ndet}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a4c29863a6a6b552b6db3d60341858f8b}\label{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a4c29863a6a6b552b6db3d60341858f8b}}
+{\bfseries rate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a447a7bfb1307156ca1ea8920f3f38af1}\label{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a447a7bfb1307156ca1ea8920f3f38af1}}
+{\bfseries nside}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_af0ebcdcf6e7b3819084019da3c3bff98}\label{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_af0ebcdcf6e7b3819084019da3c3bff98}}
+{\bfseries npix}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a5d887902f9c32b62167c4472a6974c97}\label{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a5d887902f9c32b62167c4472a6974c97}}
+{\bfseries totsamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_aa723e9b884170f314d43c8d34ee0503e}\label{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_aa723e9b884170f314d43c8d34ee0503e}}
+{\bfseries solar\+\_\+speed}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_ac0dd3f212476e0f71b4f941327679dc9}\label{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_ac0dd3f212476e0f71b4f941327679dc9}}
+{\bfseries solar\+\_\+vel}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a4f5af1c1b4dffb1ba604aee38f524bcd}\label{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a4f5af1c1b4dffb1ba604aee38f524bcd}}
+{\bfseries solar\+\_\+quat}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_ace38bb38a5cca62c1b5392c78537445f}\label{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_ace38bb38a5cca62c1b5392c78537445f}}
+{\bfseries dip\+\_\+check}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a12fc929f9596baec1522c6f775509e5f}\label{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_a12fc929f9596baec1522c6f775509e5f}}
+{\bfseries dip\+\_\+max\+\_\+pix}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_aede912414f3077d995f883f5096a646e}\label{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test_aede912414f3077d995f883f5096a646e}}
+{\bfseries dip\+\_\+min\+\_\+pix}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/ops\+\_\+dipole.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test__coll__graph.md5
new file mode 100644
index 00000000..5de3f58d
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test__coll__graph.md5
@@ -0,0 +1 @@
+4f2a33710b1f31adea0d217f121bdb88
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test__coll__graph.pdf
new file mode 100644
index 00000000..7d3ac8f3
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test__inherit__graph.md5
new file mode 100644
index 00000000..5de3f58d
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test__inherit__graph.md5
@@ -0,0 +1 @@
+4f2a33710b1f31adea0d217f121bdb88
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test__inherit__graph.pdf
new file mode 100644
index 00000000..7d3ac8f3
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test.tex b/docs/latex/classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test.tex
new file mode 100644
index 00000000..76479742
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test.tex
@@ -0,0 +1,52 @@
+\hypertarget{classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test}{}\doxysection{pycal.\+tests.\+ops\+\_\+gainscrambler.\+Op\+Gain\+Scrambler\+Test Class Reference}
+\label{classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test}\index{pycal.tests.ops\_gainscrambler.OpGainScramblerTest@{pycal.tests.ops\_gainscrambler.OpGainScramblerTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+ops\+\_\+gainscrambler.\+Op\+Gain\+Scrambler\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=248pt]{classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+ops\+\_\+gainscrambler.\+Op\+Gain\+Scrambler\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=248pt]{classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test_a079bf49aee80c229f9ba6298b7fd3eec}\label{classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test_a079bf49aee80c229f9ba6298b7fd3eec}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test_adb4f53a30717fccda99e68df592e3785}\label{classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test_adb4f53a30717fccda99e68df592e3785}}
+def {\bfseries test\+\_\+scrambler} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test_a6bdcc5c2400b2005e548d37380108c2a}\label{classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test_a6bdcc5c2400b2005e548d37380108c2a}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test_a96a18ff828b6aa4fc16f246fd1e5451c}\label{classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test_a96a18ff828b6aa4fc16f246fd1e5451c}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test_ad415c08eea98496a9addc77ee9fd1425}\label{classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test_ad415c08eea98496a9addc77ee9fd1425}}
+{\bfseries ndet}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test_af9001bd96dab1296274d1db3a16f2db2}\label{classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test_af9001bd96dab1296274d1db3a16f2db2}}
+{\bfseries rate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test_aa3f433dec69af77cad3e9a7773ae5e2b}\label{classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test_aa3f433dec69af77cad3e9a7773ae5e2b}}
+{\bfseries totsamp}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/ops\+\_\+gainscrambler.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test__coll__graph.md5
new file mode 100644
index 00000000..d924d817
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test__coll__graph.md5
@@ -0,0 +1 @@
+1fd0bb615121a1c35993283407d93828
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test__coll__graph.pdf
new file mode 100644
index 00000000..e1e8d16a
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test__inherit__graph.md5
new file mode 100644
index 00000000..d924d817
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test__inherit__graph.md5
@@ -0,0 +1 @@
+1fd0bb615121a1c35993283407d93828
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test__inherit__graph.pdf
new file mode 100644
index 00000000..e1e8d16a
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test.tex b/docs/latex/classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test.tex
new file mode 100644
index 00000000..9dea8098
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test.tex
@@ -0,0 +1,61 @@
+\hypertarget{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test}{}\doxysection{pycal.\+tests.\+ops\+\_\+groundfilter.\+Op\+Ground\+Filter\+Test Class Reference}
+\label{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test}\index{pycal.tests.ops\_groundfilter.OpGroundFilterTest@{pycal.tests.ops\_groundfilter.OpGroundFilterTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+ops\+\_\+groundfilter.\+Op\+Ground\+Filter\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+ops\+\_\+groundfilter.\+Op\+Ground\+Filter\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_aaa3f280cd626a19ca11d23a99c71b561}\label{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_aaa3f280cd626a19ca11d23a99c71b561}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_a4fa20cd97ee9e88c927fd05ff2139aa4}\label{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_a4fa20cd97ee9e88c927fd05ff2139aa4}}
+def {\bfseries test\+\_\+filter} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_a2cc7aec674bd4200f6fd52c51c4e8b72}\label{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_a2cc7aec674bd4200f6fd52c51c4e8b72}}
+def {\bfseries test\+\_\+filter\+\_\+split} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_a52b89248934f13903a6179ac0f43a66d}\label{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_a52b89248934f13903a6179ac0f43a66d}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_a7919ce4ba85363251209e796902ba674}\label{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_a7919ce4ba85363251209e796902ba674}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_a0aabaede47d4c69e3b2a0d16e8292dba}\label{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_a0aabaede47d4c69e3b2a0d16e8292dba}}
+{\bfseries ndet}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_a5448f21ce53aa07c491fbd1dda265979}\label{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_a5448f21ce53aa07c491fbd1dda265979}}
+{\bfseries N\+ET}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_ad76cd3378ace975f0663b67c6a924f36}\label{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_ad76cd3378ace975f0663b67c6a924f36}}
+{\bfseries rate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_a2613720ab87f6cf9a74a81cdba1dfd13}\label{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_a2613720ab87f6cf9a74a81cdba1dfd13}}
+{\bfseries totsamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_aa63b12a4c69dbb58811f22babcd15a7c}\label{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test_aa63b12a4c69dbb58811f22babcd15a7c}}
+{\bfseries order}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/ops\+\_\+groundfilter.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test__coll__graph.md5
new file mode 100644
index 00000000..533f6e49
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test__coll__graph.md5
@@ -0,0 +1 @@
+2b3688bf7d2203a860f3bc2194f12fe8
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test__coll__graph.pdf
new file mode 100644
index 00000000..f507136c
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test__inherit__graph.md5
new file mode 100644
index 00000000..533f6e49
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test__inherit__graph.md5
@@ -0,0 +1 @@
+2b3688bf7d2203a860f3bc2194f12fe8
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test__inherit__graph.pdf
new file mode 100644
index 00000000..f507136c
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test.tex b/docs/latex/classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test.tex
new file mode 100644
index 00000000..d1fe9792
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test.tex
@@ -0,0 +1,61 @@
+\hypertarget{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test}{}\doxysection{pycal.\+tests.\+ops\+\_\+madam.\+Op\+Madam\+Test Class Reference}
+\label{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test}\index{pycal.tests.ops\_madam.OpMadamTest@{pycal.tests.ops\_madam.OpMadamTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+ops\+\_\+madam.\+Op\+Madam\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+ops\+\_\+madam.\+Op\+Madam\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_a085ef4760dec237a5a319453ac9d157f}\label{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_a085ef4760dec237a5a319453ac9d157f}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_a71ad9207f1f3b4d17405f1218f2775bf}\label{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_a71ad9207f1f3b4d17405f1218f2775bf}}
+def {\bfseries test\+\_\+madam\+\_\+gradient} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_ac0c255728ae7205807aa82e3b74f558e}\label{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_ac0c255728ae7205807aa82e3b74f558e}}
+def {\bfseries test\+\_\+madam\+\_\+output} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_ab8cf145a9e21d6f7848f36d6f3de56af}\label{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_ab8cf145a9e21d6f7848f36d6f3de56af}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_aea247620f318eae3c7100c40b535373c}\label{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_aea247620f318eae3c7100c40b535373c}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_a87e62694fb1a8aca18c7d594074eb790}\label{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_a87e62694fb1a8aca18c7d594074eb790}}
+{\bfseries ndet}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_a99ae3db6f817a1da40bbedcaba20b005}\label{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_a99ae3db6f817a1da40bbedcaba20b005}}
+{\bfseries rate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_a896aa9bdd4895118cf7af7d57757e3b4}\label{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_a896aa9bdd4895118cf7af7d57757e3b4}}
+{\bfseries totsamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_a0b8af4b4cee987749c57a7bb96f8664a}\label{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_a0b8af4b4cee987749c57a7bb96f8664a}}
+{\bfseries sim\+\_\+nside}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_af8ed482998f900c6b286ed2c07d19ce7}\label{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test_af8ed482998f900c6b286ed2c07d19ce7}}
+{\bfseries map\+\_\+nside}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/ops\+\_\+madam.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test__coll__graph.md5
new file mode 100644
index 00000000..b69238e1
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test__coll__graph.md5
@@ -0,0 +1 @@
+0cb7f0ca2201b8214154dc70bd4ebec0
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test__coll__graph.pdf
new file mode 100644
index 00000000..45a65e52
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test__inherit__graph.md5
new file mode 100644
index 00000000..b69238e1
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test__inherit__graph.md5
@@ -0,0 +1 @@
+0cb7f0ca2201b8214154dc70bd4ebec0
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test__inherit__graph.pdf
new file mode 100644
index 00000000..45a65e52
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test.tex b/docs/latex/classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test.tex
new file mode 100644
index 00000000..721d3cb5
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test.tex
@@ -0,0 +1,112 @@
+\hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test}{}\doxysection{pycal.\+tests.\+ops\+\_\+mapmaker.\+Op\+Map\+Maker\+Test Class Reference}
+\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test}\index{pycal.tests.ops\_mapmaker.OpMapMakerTest@{pycal.tests.ops\_mapmaker.OpMapMakerTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+ops\+\_\+mapmaker.\+Op\+Map\+Maker\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=231pt]{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+ops\+\_\+mapmaker.\+Op\+Map\+Maker\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=231pt]{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a531bacce0803098cf1685b3d608f9e40}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a531bacce0803098cf1685b3d608f9e40}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a9c53794fbbbbd9f266de2a3af89dee71}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a9c53794fbbbbd9f266de2a3af89dee71}}
+def {\bfseries test\+\_\+mapmaker\+\_\+madam} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a5de428c3483ccc2eeee420f9fe9cce79}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a5de428c3483ccc2eeee420f9fe9cce79}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a2fe5ffa3f585cac08b64ba22b370d086}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a2fe5ffa3f585cac08b64ba22b370d086}}
+{\bfseries rank}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_ab4bf01e7d8d3059aa302827faf6eb71d}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_ab4bf01e7d8d3059aa302827faf6eb71d}}
+{\bfseries nobs}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a38a168d1954996b562b542ebdef6f592}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a38a168d1954996b562b542ebdef6f592}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_ac4b6413c0dfe3f805ad334ab3f25a47b}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_ac4b6413c0dfe3f805ad334ab3f25a47b}}
+{\bfseries ndet}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a943d0548bc85f2d39689a7a2893e8680}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a943d0548bc85f2d39689a7a2893e8680}}
+{\bfseries sigma}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_abae110448e96a5eda89214a2d63244ac}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_abae110448e96a5eda89214a2d63244ac}}
+{\bfseries rate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a817a8e7084e528358256d8ead7404514}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a817a8e7084e528358256d8ead7404514}}
+{\bfseries net}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a6be8dc7965218f0595e801befad54910}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a6be8dc7965218f0595e801befad54910}}
+{\bfseries alpha}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_af9474b38c45b477ac910bbe9c091af49}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_af9474b38c45b477ac910bbe9c091af49}}
+{\bfseries fknee}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a03e435be9fd51714dc9cc19243aea76a}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a03e435be9fd51714dc9cc19243aea76a}}
+{\bfseries sim\+\_\+nside}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_ab73b58981fd02b45b9ac439bbcc394e8}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_ab73b58981fd02b45b9ac439bbcc394e8}}
+{\bfseries map\+\_\+nside}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_ae9bfc5b06e69fcb540de02b0fb6953cc}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_ae9bfc5b06e69fcb540de02b0fb6953cc}}
+{\bfseries pointingmode}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_acc1e69986337134273d8a5ca8b7668bb}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_acc1e69986337134273d8a5ca8b7668bb}}
+{\bfseries nnz}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a53bfd09f877f1907858ddba80402c4f7}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a53bfd09f877f1907858ddba80402c4f7}}
+{\bfseries npix}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a0cd6b407003baeef832e2c1f671576bf}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a0cd6b407003baeef832e2c1f671576bf}}
+{\bfseries ninterval}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_aebec8ce39201d24f710e340a7e8d0be5}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_aebec8ce39201d24f710e340a7e8d0be5}}
+{\bfseries totsamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a3be83be3d9be7e43ba6f5f0166c363b1}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a3be83be3d9be7e43ba6f5f0166c363b1}}
+{\bfseries binary\+\_\+mask}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a7dc2541c533781dd644b6afa43d3cb0f}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a7dc2541c533781dd644b6afa43d3cb0f}}
+{\bfseries maskfile\+\_\+binary}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a744ada9828957300d781d2c9985ae849}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a744ada9828957300d781d2c9985ae849}}
+{\bfseries smooth\+\_\+mask}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a2aac739b87000d7940ae06d42f32c076}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a2aac739b87000d7940ae06d42f32c076}}
+{\bfseries maskfile\+\_\+smooth}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_aace2369a84592403f28b3087f6e3fde1}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_aace2369a84592403f28b3087f6e3fde1}}
+{\bfseries lmax}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_ae5d2740c24e98a3590f7f4da400f8b19}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_ae5d2740c24e98a3590f7f4da400f8b19}}
+{\bfseries cl}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a6dd24feb74e57c53f75c0210c1533bcb}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_a6dd24feb74e57c53f75c0210c1533bcb}}
+{\bfseries inmap}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_adb03920907af2fff61859f536418aac8}\label{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test_adb03920907af2fff61859f536418aac8}}
+{\bfseries inmapfile}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/ops\+\_\+mapmaker.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test__coll__graph.md5
new file mode 100644
index 00000000..c2ad037d
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test__coll__graph.md5
@@ -0,0 +1 @@
+f0909938f2d707f6f6722da19f7ad27e
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test__coll__graph.pdf
new file mode 100644
index 00000000..6686b14d
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test__inherit__graph.md5
new file mode 100644
index 00000000..c2ad037d
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test__inherit__graph.md5
@@ -0,0 +1 @@
+f0909938f2d707f6f6722da19f7ad27e
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test__inherit__graph.pdf
new file mode 100644
index 00000000..6686b14d
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test.tex b/docs/latex/classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test.tex
new file mode 100644
index 00000000..5949f63d
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test.tex
@@ -0,0 +1,55 @@
+\hypertarget{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test}{}\doxysection{pycal.\+tests.\+ops\+\_\+memorycounter.\+Op\+Memory\+Counter\+Test Class Reference}
+\label{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test}\index{pycal.tests.ops\_memorycounter.OpMemoryCounterTest@{pycal.tests.ops\_memorycounter.OpMemoryCounterTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+ops\+\_\+memorycounter.\+Op\+Memory\+Counter\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=256pt]{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+ops\+\_\+memorycounter.\+Op\+Memory\+Counter\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=256pt]{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test_a7b8400173a71a996de8b036b19cfba06}\label{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test_a7b8400173a71a996de8b036b19cfba06}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test_aa69c7cc1f000b5512dccb9b6fe19033c}\label{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test_aa69c7cc1f000b5512dccb9b6fe19033c}}
+def {\bfseries test\+\_\+counter} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test_ad48a82141a7dca00c05a6da00f6c3666}\label{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test_ad48a82141a7dca00c05a6da00f6c3666}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test_a9e099b463dbb29df8c071fa1688bdd2b}\label{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test_a9e099b463dbb29df8c071fa1688bdd2b}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test_ad6a3a05d7b2bc4fa6e9cc0658d053f12}\label{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test_ad6a3a05d7b2bc4fa6e9cc0658d053f12}}
+{\bfseries ndet}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test_a7066c900fb0b4e74addb845019e7256c}\label{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test_a7066c900fb0b4e74addb845019e7256c}}
+{\bfseries N\+ET}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test_ad559c1274a97f8733e00cf5c3cf0d371}\label{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test_ad559c1274a97f8733e00cf5c3cf0d371}}
+{\bfseries rate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test_a1f62a83ba15cc0e4862b0a22fcb28207}\label{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test_a1f62a83ba15cc0e4862b0a22fcb28207}}
+{\bfseries totsamp}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/ops\+\_\+memorycounter.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test__coll__graph.md5
new file mode 100644
index 00000000..75ab55f2
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test__coll__graph.md5
@@ -0,0 +1 @@
+dfe910d52f67b7c43854897e59c52906
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test__coll__graph.pdf
new file mode 100644
index 00000000..6122ef9e
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test__inherit__graph.md5
new file mode 100644
index 00000000..75ab55f2
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test__inherit__graph.md5
@@ -0,0 +1 @@
+dfe910d52f67b7c43854897e59c52906
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test__inherit__graph.pdf
new file mode 100644
index 00000000..6122ef9e
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test.tex b/docs/latex/classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test.tex
new file mode 100644
index 00000000..802de931
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test.tex
@@ -0,0 +1,64 @@
+\hypertarget{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test}{}\doxysection{pycal.\+tests.\+ops\+\_\+pmat.\+Op\+Pointing\+Hpix\+Test Class Reference}
+\label{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test}\index{pycal.tests.ops\_pmat.OpPointingHpixTest@{pycal.tests.ops\_pmat.OpPointingHpixTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+ops\+\_\+pmat.\+Op\+Pointing\+Hpix\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=257pt]{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+ops\+\_\+pmat.\+Op\+Pointing\+Hpix\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=257pt]{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_a11bd7028455215054dae18e52f1ea538}\label{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_a11bd7028455215054dae18e52f1ea538}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_ad35b58130e525e7fa8a957299e35fd97}\label{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_ad35b58130e525e7fa8a957299e35fd97}}
+def {\bfseries tear\+Down} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_a7f8da3ded1424313ee2e1d9c681326d8}\label{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_a7f8da3ded1424313ee2e1d9c681326d8}}
+def {\bfseries test\+\_\+pointing\+\_\+matrix\+\_\+healpix2} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_a465be9e3e034f1619f807d9f3b3cb6bb}\label{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_a465be9e3e034f1619f807d9f3b3cb6bb}}
+def {\bfseries test\+\_\+pointing\+\_\+matrix\+\_\+healpix} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_a949e2a028700cf8726549c323dc164bd}\label{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_a949e2a028700cf8726549c323dc164bd}}
+def {\bfseries test\+\_\+pointing\+\_\+matrix\+\_\+healpix\+\_\+hwp} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_a38113a79fd2ba603466da72d2245d6e4}\label{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_a38113a79fd2ba603466da72d2245d6e4}}
+def {\bfseries test\+\_\+hpix\+\_\+simple} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_a983eb5efaa8c6b9e13b066f5f0a6a668}\label{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_a983eb5efaa8c6b9e13b066f5f0a6a668}}
+def {\bfseries test\+\_\+hpix\+\_\+hwpnull} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_a8cd95c2267d5d256a3247883e48b2b4c}\label{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_a8cd95c2267d5d256a3247883e48b2b4c}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_a14d9d2ac9fcfc622708839d317d43365}\label{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_a14d9d2ac9fcfc622708839d317d43365}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_ab07e154b69420653a197e6bf6f4d1a58}\label{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_ab07e154b69420653a197e6bf6f4d1a58}}
+{\bfseries ndet}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_a4c4b2595d9cb16846312f3cf0c92a4db}\label{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test_a4c4b2595d9cb16846312f3cf0c92a4db}}
+{\bfseries totsamp}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/ops\+\_\+pmat.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test__coll__graph.md5
new file mode 100644
index 00000000..10ab886b
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test__coll__graph.md5
@@ -0,0 +1 @@
+25d2c2614b1d4c1493ed001b1a7779a8
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test__coll__graph.pdf
new file mode 100644
index 00000000..3784e3ac
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test__inherit__graph.md5
new file mode 100644
index 00000000..10ab886b
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test__inherit__graph.md5
@@ -0,0 +1 @@
+25d2c2614b1d4c1493ed001b1a7779a8
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test__inherit__graph.pdf
new file mode 100644
index 00000000..8e009b25
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test.tex b/docs/latex/classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test.tex
new file mode 100644
index 00000000..7d9b4816
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test.tex
@@ -0,0 +1,55 @@
+\hypertarget{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test}{}\doxysection{pycal.\+tests.\+ops\+\_\+polyfilter.\+Op\+Poly\+Filter\+Test Class Reference}
+\label{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test}\index{pycal.tests.ops\_polyfilter.OpPolyFilterTest@{pycal.tests.ops\_polyfilter.OpPolyFilterTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+ops\+\_\+polyfilter.\+Op\+Poly\+Filter\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+ops\+\_\+polyfilter.\+Op\+Poly\+Filter\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test_aca4820d3f1f0ca1ec63ca10e7d3577f0}\label{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test_aca4820d3f1f0ca1ec63ca10e7d3577f0}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test_aa64a764739f6f774f8c0c1d447ef50eb}\label{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test_aa64a764739f6f774f8c0c1d447ef50eb}}
+def {\bfseries test\+\_\+filter} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test_afd6c800ce1c9cd5f1c99a536ecab27be}\label{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test_afd6c800ce1c9cd5f1c99a536ecab27be}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test_aa824ed1fcf5bff479f8ab7cd54ea549d}\label{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test_aa824ed1fcf5bff479f8ab7cd54ea549d}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test_a28d3e9acf14ebb6c6096b9c8c7571fd0}\label{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test_a28d3e9acf14ebb6c6096b9c8c7571fd0}}
+{\bfseries ndet}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test_a3d606002f031c7223b001c1fb537b916}\label{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test_a3d606002f031c7223b001c1fb537b916}}
+{\bfseries rate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test_a416bb0054e475c4e7ce25f2b72955b87}\label{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test_a416bb0054e475c4e7ce25f2b72955b87}}
+{\bfseries order}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test_a5b1f4c7a4bd3df37989dfe1a8c56958a}\label{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test_a5b1f4c7a4bd3df37989dfe1a8c56958a}}
+{\bfseries totsamp}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/ops\+\_\+polyfilter.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test__coll__graph.md5
new file mode 100644
index 00000000..1cdda8b2
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test__coll__graph.md5
@@ -0,0 +1 @@
+132c567932fbf183d0393df86d61dc0e
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test__coll__graph.pdf
new file mode 100644
index 00000000..d90fd4dd
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test__inherit__graph.md5
new file mode 100644
index 00000000..1cdda8b2
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test__inherit__graph.md5
@@ -0,0 +1 @@
+132c567932fbf183d0393df86d61dc0e
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test__inherit__graph.pdf
new file mode 100644
index 00000000..d90fd4dd
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test.tex b/docs/latex/classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test.tex
new file mode 100644
index 00000000..385127e5
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test.tex
@@ -0,0 +1,109 @@
+\hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test}{}\doxysection{pycal.\+tests.\+ops\+\_\+sim\+\_\+atm.\+Ops\+Sim\+Atmosphere\+Test Class Reference}
+\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test}\index{pycal.tests.ops\_sim\_atm.OpsSimAtmosphereTest@{pycal.tests.ops\_sim\_atm.OpsSimAtmosphereTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+ops\+\_\+sim\+\_\+atm.\+Ops\+Sim\+Atmosphere\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=241pt]{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+ops\+\_\+sim\+\_\+atm.\+Ops\+Sim\+Atmosphere\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=241pt]{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a2d0cd60db6379ea94be871d85937ca5e}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a2d0cd60db6379ea94be871d85937ca5e}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_ac63ba1b7ad4126e4af4f6b996f717739}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_ac63ba1b7ad4126e4af4f6b996f717739}}
+def {\bfseries test\+\_\+atm} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a5559f4000ca795d606f6b4c3b96c66aa}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a5559f4000ca795d606f6b4c3b96c66aa}}
+def {\bfseries test\+\_\+atm\+\_\+caching} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_af9a32c7ec189cd1783a592941f10d9f9}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_af9a32c7ec189cd1783a592941f10d9f9}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a186f161cc9e3809f7bbc48435c7d6616}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a186f161cc9e3809f7bbc48435c7d6616}}
+{\bfseries atm\+\_\+cache}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_ad1a18ca9634daa6a3e4f500a338c9e48}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_ad1a18ca9634daa6a3e4f500a338c9e48}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a6695e3a93bdd25a8bda9fdd77ac5691c}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a6695e3a93bdd25a8bda9fdd77ac5691c}}
+{\bfseries data\+\_\+serial}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_ad782f786477de35db911dc424c47e1a8}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_ad782f786477de35db911dc424c47e1a8}}
+{\bfseries ndet}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_aeff02c2cea298f359cfed004e3f4ad61}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_aeff02c2cea298f359cfed004e3f4ad61}}
+{\bfseries rate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_ac67f632dfb5659a7101a9beefece080c}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_ac67f632dfb5659a7101a9beefece080c}}
+{\bfseries N\+ET}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a99883cc9f33ea699349077e7320d1fcc}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a99883cc9f33ea699349077e7320d1fcc}}
+{\bfseries totsamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a45c5c925b9dd097656458f7b8af63de8}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a45c5c925b9dd097656458f7b8af63de8}}
+{\bfseries sim\+\_\+nside}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_adbc4b6759b1e31560ab94ff37259f0cf}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_adbc4b6759b1e31560ab94ff37259f0cf}}
+{\bfseries map\+\_\+nside}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_ac8523805aea4312d026f9bf0aa33599c}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_ac8523805aea4312d026f9bf0aa33599c}}
+{\bfseries site\+\_\+lon}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a560a96fcfbd3243079d4af8159addf06}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a560a96fcfbd3243079d4af8159addf06}}
+{\bfseries site\+\_\+lat}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a393113005901ed985cccaa761638ff9c}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a393113005901ed985cccaa761638ff9c}}
+{\bfseries site\+\_\+alt}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_ad686737ed53a5d8781e5c98eb2a49372}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_ad686737ed53a5d8781e5c98eb2a49372}}
+{\bfseries coord}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a0e31e9f993c29d611b7ab782eda4e688}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a0e31e9f993c29d611b7ab782eda4e688}}
+{\bfseries azmin}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_aac05b05544507e71add642f645b3d1a1}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_aac05b05544507e71add642f645b3d1a1}}
+{\bfseries azmax}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a565baf40e757a98d4449e08a1cd6b75e}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a565baf40e757a98d4449e08a1cd6b75e}}
+{\bfseries el}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a59a7949f7e5f7e0b3e70f63d919cc171}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a59a7949f7e5f7e0b3e70f63d919cc171}}
+{\bfseries scanrate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_adb428009b0c917192a85893682cdaa14}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_adb428009b0c917192a85893682cdaa14}}
+{\bfseries scan\+\_\+accel}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a9d248b2f885a917c3e896c5ae9146be5}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a9d248b2f885a917c3e896c5ae9146be5}}
+{\bfseries C\+E\+S\+\_\+start}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_aaf39f3a47826bb074687b4d86dab36fd}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_aaf39f3a47826bb074687b4d86dab36fd}}
+{\bfseries common\+\_\+flag\+\_\+mask}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a3efff8cd85412d2b74ab6d911f7eb13d}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a3efff8cd85412d2b74ab6d911f7eb13d}}
+{\bfseries nflagged}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a5a5424b7cb12a385375af23030788784}\label{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test_a5a5424b7cb12a385375af23030788784}}
+{\bfseries common\+\_\+params}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/ops\+\_\+sim\+\_\+atm.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test__coll__graph.md5
new file mode 100644
index 00000000..1db42e58
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test__coll__graph.md5
@@ -0,0 +1 @@
+e076073bfca6aae631d1e9e39bdfa903
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test__coll__graph.pdf
new file mode 100644
index 00000000..a0b488c3
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test__inherit__graph.md5
new file mode 100644
index 00000000..1db42e58
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test__inherit__graph.md5
@@ -0,0 +1 @@
+e076073bfca6aae631d1e9e39bdfa903
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test__inherit__graph.pdf
new file mode 100644
index 00000000..a0b488c3
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test.tex b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test.tex
new file mode 100644
index 00000000..0a5774e4
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test.tex
@@ -0,0 +1,44 @@
+\hypertarget{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test}{}\doxysection{pycal.\+tests.\+ops\+\_\+sim\+\_\+pysm.\+Op\+Sim\+Py\+S\+M\+Test Class Reference}
+\label{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test}\index{pycal.tests.ops\_sim\_pysm.OpSimPySMTest@{pycal.tests.ops\_sim\_pysm.OpSimPySMTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+ops\+\_\+sim\+\_\+pysm.\+Op\+Sim\+Py\+S\+M\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+ops\+\_\+sim\+\_\+pysm.\+Op\+Sim\+Py\+S\+M\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_a36e25602d2db98b451ff30679c8c6393}\label{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_a36e25602d2db98b451ff30679c8c6393}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_aa38ffcd674ff9a98572c51159924378c}\label{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_aa38ffcd674ff9a98572c51159924378c}}
+def {\bfseries tear\+Down} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_a3a4a18e66a54a76db3818371759bb8dd}\label{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_a3a4a18e66a54a76db3818371759bb8dd}}
+def {\bfseries test\+\_\+pysm\+\_\+local\+\_\+pix} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_a5189473dece854f7774f5b295282397b}\label{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_a5189473dece854f7774f5b295282397b}}
+def {\bfseries test\+\_\+pysm\+\_\+ring\+\_\+distribution} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_a347d6902767f4e778f49a4afe2ecd872}\label{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_a347d6902767f4e778f49a4afe2ecd872}}
+def {\bfseries test\+\_\+op\+\_\+pysm\+\_\+nosmooth} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Additional Inherited Members}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/ops\+\_\+sim\+\_\+pysm.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test__coll__graph.md5
new file mode 100644
index 00000000..14e42162
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test__coll__graph.md5
@@ -0,0 +1 @@
+2e997b34a245293b78f89807b1bfabaa
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test__coll__graph.pdf
new file mode 100644
index 00000000..489ace30
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test__inherit__graph.md5
new file mode 100644
index 00000000..14e42162
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test__inherit__graph.md5
@@ -0,0 +1 @@
+2e997b34a245293b78f89807b1bfabaa
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test__inherit__graph.pdf
new file mode 100644
index 00000000..489ace30
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth.tex b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth.tex
new file mode 100644
index 00000000..ecdb141f
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth.tex
@@ -0,0 +1,35 @@
+\hypertarget{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth}{}\doxysection{pycal.\+tests.\+ops\+\_\+sim\+\_\+pysm.\+Op\+Sim\+Py\+S\+M\+Test\+Smooth Class Reference}
+\label{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth}\index{pycal.tests.ops\_sim\_pysm.OpSimPySMTestSmooth@{pycal.tests.ops\_sim\_pysm.OpSimPySMTestSmooth}}
+
+
+Inheritance diagram for pycal.\+tests.\+ops\+\_\+sim\+\_\+pysm.\+Op\+Sim\+Py\+S\+M\+Test\+Smooth\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=248pt]{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+ops\+\_\+sim\+\_\+pysm.\+Op\+Sim\+Py\+S\+M\+Test\+Smooth\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=248pt]{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth_a4b5f47856d475b74bb51333be4cfbe16}\label{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth_a4b5f47856d475b74bb51333be4cfbe16}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth_ab85a23b9a637988e7a06af5eeb5e4f4c}\label{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth_ab85a23b9a637988e7a06af5eeb5e4f4c}}
+def {\bfseries test\+\_\+op\+\_\+pysm\+\_\+smooth} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Additional Inherited Members}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/ops\+\_\+sim\+\_\+pysm.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth__coll__graph.md5
new file mode 100644
index 00000000..dc0219b2
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth__coll__graph.md5
@@ -0,0 +1 @@
+4f855a74577bac348a5b27ebc6509209
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth__coll__graph.pdf
new file mode 100644
index 00000000..f7d0087b
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth__inherit__graph.md5
new file mode 100644
index 00000000..dc0219b2
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth__inherit__graph.md5
@@ -0,0 +1 @@
+4f855a74577bac348a5b27ebc6509209
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth__inherit__graph.pdf
new file mode 100644
index 00000000..f7d0087b
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test.tex b/docs/latex/classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test.tex
new file mode 100644
index 00000000..fe63d1f3
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test.tex
@@ -0,0 +1,100 @@
+\hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test}{}\doxysection{pycal.\+tests.\+ops\+\_\+sim\+\_\+sss.\+Op\+Sim\+Scan\+Synchronous\+Signal\+Test Class Reference}
+\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test}\index{pycal.tests.ops\_sim\_sss.OpSimScanSynchronousSignalTest@{pycal.tests.ops\_sim\_sss.OpSimScanSynchronousSignalTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+ops\+\_\+sim\+\_\+sss.\+Op\+Sim\+Scan\+Synchronous\+Signal\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=288pt]{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+ops\+\_\+sim\+\_\+sss.\+Op\+Sim\+Scan\+Synchronous\+Signal\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=288pt]{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a1b5ae909facf3a5ee9d01a85f89715ca}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a1b5ae909facf3a5ee9d01a85f89715ca}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a0050a003d9222ea7cc6ef884820d8446}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a0050a003d9222ea7cc6ef884820d8446}}
+def {\bfseries test\+\_\+sss} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a9537f39059454cf05d878f64bee45949}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a9537f39059454cf05d878f64bee45949}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a010dc0d670a37160e521d62c194e1d32}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a010dc0d670a37160e521d62c194e1d32}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a8e7d278ef467c845e7bd05f3e9a8affb}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a8e7d278ef467c845e7bd05f3e9a8affb}}
+{\bfseries data\+\_\+serial}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_acc3211c6c43ef6b9879520581f6452d1}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_acc3211c6c43ef6b9879520581f6452d1}}
+{\bfseries ndet}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a499880f192d0b45da3099bdbfa7c0ec9}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a499880f192d0b45da3099bdbfa7c0ec9}}
+{\bfseries rate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a413e3e4af68dba545f33a83054b3b451}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a413e3e4af68dba545f33a83054b3b451}}
+{\bfseries N\+ET}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_aed13dab25d5680f03e33ff6b5b20aa51}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_aed13dab25d5680f03e33ff6b5b20aa51}}
+{\bfseries totsamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a9bcc3b20507b9d7486571874dc879196}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a9bcc3b20507b9d7486571874dc879196}}
+{\bfseries sim\+\_\+nside}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a9325e12ed4dcd3f59510b1f775fd8ade}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a9325e12ed4dcd3f59510b1f775fd8ade}}
+{\bfseries map\+\_\+nside}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_aa2f1d12129f83aab5fc65787e4f535ac}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_aa2f1d12129f83aab5fc65787e4f535ac}}
+{\bfseries site\+\_\+lon}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_aecce6bfc01810e0d9f090301720fa235}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_aecce6bfc01810e0d9f090301720fa235}}
+{\bfseries site\+\_\+lat}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_af238ba4231c12ccf1e6df21dd20c8288}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_af238ba4231c12ccf1e6df21dd20c8288}}
+{\bfseries site\+\_\+alt}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_ac30691a937186e1ea59ddb9ab36112f1}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_ac30691a937186e1ea59ddb9ab36112f1}}
+{\bfseries coord}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_aff344ade6c51dc3be73ba4fd8432e97d}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_aff344ade6c51dc3be73ba4fd8432e97d}}
+{\bfseries azmin}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_af25bf8c10651fee49d7ee8f042d1f188}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_af25bf8c10651fee49d7ee8f042d1f188}}
+{\bfseries azmax}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a0b01992ebfe4229048e883373fb81c6c}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a0b01992ebfe4229048e883373fb81c6c}}
+{\bfseries el}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_aa8374bf163f1dc7ca7ddd3944cd04ea3}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_aa8374bf163f1dc7ca7ddd3944cd04ea3}}
+{\bfseries scanrate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_af1a6af57682c64f3dcd9c57f541cc2d1}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_af1a6af57682c64f3dcd9c57f541cc2d1}}
+{\bfseries scan\+\_\+accel}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_ad58e6a99d2e8d3790511cff736e0ea4b}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_ad58e6a99d2e8d3790511cff736e0ea4b}}
+{\bfseries C\+E\+S\+\_\+start}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a732182b0121b5661bd6a62eaf0739040}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a732182b0121b5661bd6a62eaf0739040}}
+{\bfseries common\+\_\+flag\+\_\+mask}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a81991ace31701deb2f82d0caf03e78dd}\label{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test_a81991ace31701deb2f82d0caf03e78dd}}
+{\bfseries nflagged}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/ops\+\_\+sim\+\_\+sss.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test__coll__graph.md5
new file mode 100644
index 00000000..8fad53df
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test__coll__graph.md5
@@ -0,0 +1 @@
+766962af2a0a479bea541a365b3ea090
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test__coll__graph.pdf
new file mode 100644
index 00000000..3e4f7391
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test__inherit__graph.md5
new file mode 100644
index 00000000..8fad53df
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test__inherit__graph.md5
@@ -0,0 +1 @@
+766962af2a0a479bea541a365b3ea090
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test__inherit__graph.pdf
new file mode 100644
index 00000000..3e4f7391
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test.tex b/docs/latex/classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test.tex
new file mode 100644
index 00000000..1725a7eb
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test.tex
@@ -0,0 +1,67 @@
+\hypertarget{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test}{}\doxysection{pycal.\+tests.\+ops\+\_\+simnoise.\+Op\+Sim\+Noise\+Test Class Reference}
+\label{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test}\index{pycal.tests.ops\_simnoise.OpSimNoiseTest@{pycal.tests.ops\_simnoise.OpSimNoiseTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+ops\+\_\+simnoise.\+Op\+Sim\+Noise\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+ops\+\_\+simnoise.\+Op\+Sim\+Noise\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_a581d87d798bce181c1abbccdc911ca3e}\label{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_a581d87d798bce181c1abbccdc911ca3e}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_ad2e2a3ef24c4809b8a26453be5fb5fe7}\label{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_ad2e2a3ef24c4809b8a26453be5fb5fe7}}
+def {\bfseries test\+\_\+gauss} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_aee19b7955dc1cc4d032dc1b5a537a9ef}\label{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_aee19b7955dc1cc4d032dc1b5a537a9ef}}
+def {\bfseries test\+\_\+sim} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_a15fd032866d7ce1b3a1040f5c5a218b5}\label{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_a15fd032866d7ce1b3a1040f5c5a218b5}}
+def {\bfseries test\+\_\+sim\+\_\+correlated} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_a4e6ccebf1050cee36aba314bee92b720}\label{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_a4e6ccebf1050cee36aba314bee92b720}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_a2860c2cb8916c1542703f229e35ec737}\label{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_a2860c2cb8916c1542703f229e35ec737}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_af6ff75b437a3bae2fee718e34e475fe9}\label{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_af6ff75b437a3bae2fee718e34e475fe9}}
+{\bfseries data\+\_\+corr}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_ac93b63d1daedee4662f944f9469886d6}\label{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_ac93b63d1daedee4662f944f9469886d6}}
+{\bfseries ndet}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_a859f11001fbef8f9df1e4adab6b48a95}\label{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_a859f11001fbef8f9df1e4adab6b48a95}}
+{\bfseries rate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_a75dcb8a29fe98c4aae935ef5c38a684b}\label{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_a75dcb8a29fe98c4aae935ef5c38a684b}}
+{\bfseries totsamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_a15a035dad69457ffeb0154fc7fb9bc95}\label{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_a15a035dad69457ffeb0154fc7fb9bc95}}
+{\bfseries oversample}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_a93c27c702a48e6c83839005320380df5}\label{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test_a93c27c702a48e6c83839005320380df5}}
+{\bfseries nmc}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/ops\+\_\+simnoise.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test__coll__graph.md5
new file mode 100644
index 00000000..80c083f3
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test__coll__graph.md5
@@ -0,0 +1 @@
+e57691b01d90ec371e50267a54577524
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test__coll__graph.pdf
new file mode 100644
index 00000000..589988e7
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test__inherit__graph.md5
new file mode 100644
index 00000000..80c083f3
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test__inherit__graph.md5
@@ -0,0 +1 @@
+e57691b01d90ec371e50267a54577524
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test__inherit__graph.pdf
new file mode 100644
index 00000000..589988e7
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test.tex b/docs/latex/classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test.tex
new file mode 100644
index 00000000..335e5f1a
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test.tex
@@ -0,0 +1,55 @@
+\hypertarget{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test}{}\doxysection{pycal.\+tests.\+psd\+\_\+math.\+P\+S\+D\+Test Class Reference}
+\label{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test}\index{pycal.tests.psd\_math.PSDTest@{pycal.tests.psd\_math.PSDTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+psd\+\_\+math.\+P\+S\+D\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=243pt]{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+psd\+\_\+math.\+P\+S\+D\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=243pt]{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test_a524f97cdc1df1afba00aef160da229c2}\label{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test_a524f97cdc1df1afba00aef160da229c2}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test_a6fbbbb64992a4dd634a675f4f678ac1c}\label{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test_a6fbbbb64992a4dd634a675f4f678ac1c}}
+def {\bfseries tear\+Down} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test_afc902eb1547d36bf1cad76255962bd15}\label{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test_afc902eb1547d36bf1cad76255962bd15}}
+def {\bfseries test\+\_\+autocov\+\_\+psd} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test_a37180417863a28d2dc272ed3bb229fb7}\label{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test_a37180417863a28d2dc272ed3bb229fb7}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test_ad9646d00cf35c335380628d9a0d797e0}\label{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test_ad9646d00cf35c335380628d9a0d797e0}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test_ae92423cd30481fe2d2cd3b1cc7872c13}\label{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test_ae92423cd30481fe2d2cd3b1cc7872c13}}
+{\bfseries ndet}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test_a0b7260a8b9579fa9f8b9e431bf31fb2c}\label{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test_a0b7260a8b9579fa9f8b9e431bf31fb2c}}
+{\bfseries rate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test_a09cbcb7cf5dea6641a4bdad8a4f68ca3}\label{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test_a09cbcb7cf5dea6641a4bdad8a4f68ca3}}
+{\bfseries totsamp}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/psd\+\_\+math.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test__coll__graph.md5
new file mode 100644
index 00000000..776a00e4
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test__coll__graph.md5
@@ -0,0 +1 @@
+54eff4b175db8cac2b0ff2f77833a3fe
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test__coll__graph.pdf
new file mode 100644
index 00000000..dcb3c684
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test__inherit__graph.md5
new file mode 100644
index 00000000..776a00e4
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test__inherit__graph.md5
@@ -0,0 +1 @@
+54eff4b175db8cac2b0ff2f77833a3fe
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test__inherit__graph.pdf
new file mode 100644
index 00000000..dcb3c684
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1qarray_1_1_qarray_test.tex b/docs/latex/classpycal_1_1tests_1_1qarray_1_1_qarray_test.tex
new file mode 100644
index 00000000..ca058ae1
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1qarray_1_1_qarray_test.tex
@@ -0,0 +1,121 @@
+\hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test}{}\doxysection{pycal.\+tests.\+qarray.\+Qarray\+Test Class Reference}
+\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test}\index{pycal.tests.qarray.QarrayTest@{pycal.tests.qarray.QarrayTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+qarray.\+Qarray\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=238pt]{classpycal_1_1tests_1_1qarray_1_1_qarray_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+qarray.\+Qarray\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=238pt]{classpycal_1_1tests_1_1qarray_1_1_qarray_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a56c013343dd9fa872223664fe4f4b946}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a56c013343dd9fa872223664fe4f4b946}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a9182a332c019f337252789e28c833cf9}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a9182a332c019f337252789e28c833cf9}}
+def {\bfseries test\+\_\+inv} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a60c11a2d4530c9a583e9732685439cc7}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a60c11a2d4530c9a583e9732685439cc7}}
+def {\bfseries test\+\_\+norm} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a43803c879266205f3bb2ef0208c088a5}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a43803c879266205f3bb2ef0208c088a5}}
+def {\bfseries test\+\_\+mult\+\_\+onequaternion} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a9ca5a395083e98a63c5394740b215cea}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a9ca5a395083e98a63c5394740b215cea}}
+def {\bfseries test\+\_\+mult\+\_\+qarray} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a4b3e541504a80f6e97f298c5626b1a38}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a4b3e541504a80f6e97f298c5626b1a38}}
+def {\bfseries test\+\_\+rotate\+\_\+onequaternion} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a38f87f96b273935a9d5a1b1485c189ab}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a38f87f96b273935a9d5a1b1485c189ab}}
+def {\bfseries test\+\_\+rotate\+\_\+qarray} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_aab41b49f40ea6c9f715addac2b4dc319}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_aab41b49f40ea6c9f715addac2b4dc319}}
+def {\bfseries test\+\_\+slerp} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_ad26b2cd048ce6c9bb66f1dd4d0c67e9c}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_ad26b2cd048ce6c9bb66f1dd4d0c67e9c}}
+def {\bfseries test\+\_\+rotation} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a16d6c3cfa6d1fb267a343cf4f3ab2f69}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a16d6c3cfa6d1fb267a343cf4f3ab2f69}}
+def {\bfseries test\+\_\+toaxisangle} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a348a188cad62e804d9bca9b62d8cb2dd}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a348a188cad62e804d9bca9b62d8cb2dd}}
+def {\bfseries test\+\_\+exp} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a9850fefb31eefdf653551c0a25ceca6f}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a9850fefb31eefdf653551c0a25ceca6f}}
+def {\bfseries test\+\_\+ln} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a397cf109d7e5e7b0175239e21926afdf}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a397cf109d7e5e7b0175239e21926afdf}}
+def {\bfseries test\+\_\+pow} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a0cb3d9ccda800cf36a769eb6186b6b99}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a0cb3d9ccda800cf36a769eb6186b6b99}}
+def {\bfseries test\+\_\+torotmat} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a67e85bcdaf6892983e9dec6386fbe79a}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a67e85bcdaf6892983e9dec6386fbe79a}}
+def {\bfseries test\+\_\+fromrotmat} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_ab12f907c026a3b611fe7efee6cc850a7}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_ab12f907c026a3b611fe7efee6cc850a7}}
+def {\bfseries test\+\_\+fromvectors} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a08a0f24b85aa293f8c85bb151a2cab6a}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a08a0f24b85aa293f8c85bb151a2cab6a}}
+def {\bfseries test\+\_\+fp} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_ab8b2dc1e595c799756641ab168d26173}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_ab8b2dc1e595c799756641ab168d26173}}
+def {\bfseries test\+\_\+angles} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_acfcd65df1555bf1b53d9b1429df82346}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_acfcd65df1555bf1b53d9b1429df82346}}
+def {\bfseries test\+\_\+depths} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_aee0f0769e8bff1d1f37b1122f7deabf7}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_aee0f0769e8bff1d1f37b1122f7deabf7}}
+{\bfseries q1}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_ae1d41bd0cf3d65b33cbf88f5975e899c}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_ae1d41bd0cf3d65b33cbf88f5975e899c}}
+{\bfseries q1inv}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a0c75b7277cd45ced9f843caaf059c2cf}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a0c75b7277cd45ced9f843caaf059c2cf}}
+{\bfseries q2}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_ae511ba5f17c7d1d3c8ba06aea57aa88d}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_ae511ba5f17c7d1d3c8ba06aea57aa88d}}
+{\bfseries qtonormalize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a43113910d894bda706b21ac604ef9442}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a43113910d894bda706b21ac604ef9442}}
+{\bfseries qnormalized}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a48ca6eed2fafe33ef76d9fcf48e15142}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a48ca6eed2fafe33ef76d9fcf48e15142}}
+{\bfseries vec}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a885bc84507b719f3cc92a2b8ad49c76d}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a885bc84507b719f3cc92a2b8ad49c76d}}
+{\bfseries vec2}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a6ed7f4cdedd1f3eb1286e2e9a03a583d}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a6ed7f4cdedd1f3eb1286e2e9a03a583d}}
+{\bfseries qeasy}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a1e7576451d656ce994085a3e3c2baf66}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a1e7576451d656ce994085a3e3c2baf66}}
+{\bfseries mult\+\_\+result}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_ab7b859e0081bdde59089de91f3b47235}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_ab7b859e0081bdde59089de91f3b47235}}
+{\bfseries rot\+\_\+by\+\_\+q1}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a2dba5ba0e13dc0206aa66683b6514313}\label{classpycal_1_1tests_1_1qarray_1_1_qarray_test_a2dba5ba0e13dc0206aa66683b6514313}}
+{\bfseries rot\+\_\+by\+\_\+q2}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/qarray.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1qarray_1_1_qarray_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1qarray_1_1_qarray_test__coll__graph.md5
new file mode 100644
index 00000000..987d9671
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1qarray_1_1_qarray_test__coll__graph.md5
@@ -0,0 +1 @@
+c3ad952cc9cd5026eeb31ee659aad4fb
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1qarray_1_1_qarray_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1qarray_1_1_qarray_test__coll__graph.pdf
new file mode 100644
index 00000000..8dcb90a8
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1qarray_1_1_qarray_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1qarray_1_1_qarray_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1qarray_1_1_qarray_test__inherit__graph.md5
new file mode 100644
index 00000000..987d9671
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1qarray_1_1_qarray_test__inherit__graph.md5
@@ -0,0 +1 @@
+c3ad952cc9cd5026eeb31ee659aad4fb
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1qarray_1_1_qarray_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1qarray_1_1_qarray_test__inherit__graph.pdf
new file mode 100644
index 00000000..8dcb90a8
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1qarray_1_1_qarray_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1rng_1_1_r_n_g_test.tex b/docs/latex/classpycal_1_1tests_1_1rng_1_1_r_n_g_test.tex
new file mode 100644
index 00000000..99ac7248
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1rng_1_1_r_n_g_test.tex
@@ -0,0 +1,94 @@
+\hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test}{}\doxysection{pycal.\+tests.\+rng.\+R\+N\+G\+Test Class Reference}
+\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test}\index{pycal.tests.rng.RNGTest@{pycal.tests.rng.RNGTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+rng.\+R\+N\+G\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1rng_1_1_r_n_g_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+rng.\+R\+N\+G\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1rng_1_1_r_n_g_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a23fc178b49f873fdef1d332989105575}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a23fc178b49f873fdef1d332989105575}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a8eadf46c2858b435bfb672387aec3844}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a8eadf46c2858b435bfb672387aec3844}}
+def {\bfseries test\+\_\+rng\+\_\+gaussian} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a46faba9d487939debc9acc167f8666ec}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a46faba9d487939debc9acc167f8666ec}}
+def {\bfseries test\+\_\+rng\+\_\+m11} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a65b93935919acf780268578c3a9ee64d}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a65b93935919acf780268578c3a9ee64d}}
+def {\bfseries test\+\_\+rng\+\_\+01} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_add7b4d634a4799a67fc9aa0fbf1456a2}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_add7b4d634a4799a67fc9aa0fbf1456a2}}
+def {\bfseries test\+\_\+rng\+\_\+uint64} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a52be78fb2c988d4bf9e29949aecfabfa}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a52be78fb2c988d4bf9e29949aecfabfa}}
+def {\bfseries test\+\_\+rng\+\_\+gaussian\+\_\+multi} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a1fe5fd2a44bf5d7208cec3b05bebb642}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a1fe5fd2a44bf5d7208cec3b05bebb642}}
+def {\bfseries test\+\_\+rng\+\_\+m11\+\_\+multi} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_ae81c9fb12a58ce753d1c25c373bb68b4}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_ae81c9fb12a58ce753d1c25c373bb68b4}}
+def {\bfseries test\+\_\+rng\+\_\+01\+\_\+multi} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_af0a2e15ed3065158073aa0550560a96d}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_af0a2e15ed3065158073aa0550560a96d}}
+def {\bfseries test\+\_\+rng\+\_\+uint64\+\_\+multi} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_af2ed352b153d97df7328a75b1b6bff2b}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_af2ed352b153d97df7328a75b1b6bff2b}}
+{\bfseries size}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a530977297a773ea415fa8beb571b00cd}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a530977297a773ea415fa8beb571b00cd}}
+{\bfseries counter}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_af07b9559b803d7e8c682562e71988900}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_af07b9559b803d7e8c682562e71988900}}
+{\bfseries key}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a3a742c44b50aeb82c8b93aae6d07cbb1}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a3a742c44b50aeb82c8b93aae6d07cbb1}}
+{\bfseries counter00}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a3b9b5519abfcda2e7729532b42441b74}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a3b9b5519abfcda2e7729532b42441b74}}
+{\bfseries key00}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_aae80db6345e4079cd8d613c544b1f207}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_aae80db6345e4079cd8d613c544b1f207}}
+{\bfseries nstream}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a0a911778ea4368fadacc7febd1f45f2d}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a0a911778ea4368fadacc7febd1f45f2d}}
+{\bfseries array\+\_\+m11}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a886a03a6768b8043af9e34ef45626fc4}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a886a03a6768b8043af9e34ef45626fc4}}
+{\bfseries array\+\_\+01}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_ac4be3bda3f867ae36050f4e48672bc17}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_ac4be3bda3f867ae36050f4e48672bc17}}
+{\bfseries array\+\_\+uint64}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a4fa6f24884ec06c79bb0013a16e9227f}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_a4fa6f24884ec06c79bb0013a16e9227f}}
+{\bfseries array00\+\_\+m11}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_afc3632fae6cf4fd25264711e13b613ed}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_afc3632fae6cf4fd25264711e13b613ed}}
+{\bfseries array00\+\_\+01}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_aaaf44a17d9ca5ee69089b4ad1bb2385c}\label{classpycal_1_1tests_1_1rng_1_1_r_n_g_test_aaaf44a17d9ca5ee69089b4ad1bb2385c}}
+{\bfseries array00\+\_\+uint64}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/rng.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1rng_1_1_r_n_g_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1rng_1_1_r_n_g_test__coll__graph.md5
new file mode 100644
index 00000000..21fca857
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1rng_1_1_r_n_g_test__coll__graph.md5
@@ -0,0 +1 @@
+02897d30cd7e0682c32bb54d0080a138
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1rng_1_1_r_n_g_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1rng_1_1_r_n_g_test__coll__graph.pdf
new file mode 100644
index 00000000..99cbf964
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1rng_1_1_r_n_g_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1rng_1_1_r_n_g_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1rng_1_1_r_n_g_test__inherit__graph.md5
new file mode 100644
index 00000000..21fca857
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1rng_1_1_r_n_g_test__inherit__graph.md5
@@ -0,0 +1 @@
+02897d30cd7e0682c32bb54d0080a138
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1rng_1_1_r_n_g_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1rng_1_1_r_n_g_test__inherit__graph.pdf
new file mode 100644
index 00000000..99cbf964
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1rng_1_1_r_n_g_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test.tex b/docs/latex/classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test.tex
new file mode 100644
index 00000000..e039416f
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test.tex
@@ -0,0 +1,61 @@
+\hypertarget{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test}{}\doxysection{pycal.\+tests.\+sim\+\_\+focalplane.\+Sim\+Focalplane\+Test Class Reference}
+\label{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test}\index{pycal.tests.sim\_focalplane.SimFocalplaneTest@{pycal.tests.sim\_focalplane.SimFocalplaneTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+sim\+\_\+focalplane.\+Sim\+Focalplane\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+sim\+\_\+focalplane.\+Sim\+Focalplane\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_a9cc256eb071964644bcab06352758b22}\label{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_a9cc256eb071964644bcab06352758b22}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_a00418c5d3cb1af02ea9817bc6774630a}\label{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_a00418c5d3cb1af02ea9817bc6774630a}}
+def {\bfseries test\+\_\+cart\+\_\+quat} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_adbf4994e28040b4f75a47cbb8de31441}\label{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_adbf4994e28040b4f75a47cbb8de31441}}
+def {\bfseries test\+\_\+hex\+\_\+nring} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_a30405cd03ae249e220da321494b9938a}\label{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_a30405cd03ae249e220da321494b9938a}}
+def {\bfseries test\+\_\+vis\+\_\+hex\+\_\+small} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_ab63e14e134605a8e2484512add65a78f}\label{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_ab63e14e134605a8e2484512add65a78f}}
+def {\bfseries test\+\_\+vis\+\_\+hex\+\_\+small\+\_\+rad} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_a9517424e7f01eb480682f5bdce8d5663}\label{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_a9517424e7f01eb480682f5bdce8d5663}}
+def {\bfseries test\+\_\+vis\+\_\+hex\+\_\+medium} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_a02e439d5eb63c92b67d4bf68f08d8b46}\label{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_a02e439d5eb63c92b67d4bf68f08d8b46}}
+def {\bfseries test\+\_\+vis\+\_\+hex\+\_\+large} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_ad16ffb9d51f0f11e763414a0d6d6e681}\label{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_ad16ffb9d51f0f11e763414a0d6d6e681}}
+def {\bfseries test\+\_\+vis\+\_\+rhombus} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_a05536412d18f182d513b2e056612fa2b}\label{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_a05536412d18f182d513b2e056612fa2b}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_a6dc87bce8ee892f00e8993d62955a02e}\label{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test_a6dc87bce8ee892f00e8993d62955a02e}}
+{\bfseries rank}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/sim\+\_\+focalplane.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test__coll__graph.md5
new file mode 100644
index 00000000..9892a4f5
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test__coll__graph.md5
@@ -0,0 +1 @@
+217e367f612e41247a196506c786e111
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test__coll__graph.pdf
new file mode 100644
index 00000000..cd8c73fa
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test__inherit__graph.md5
new file mode 100644
index 00000000..9892a4f5
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test__inherit__graph.md5
@@ -0,0 +1 @@
+217e367f612e41247a196506c786e111
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test__inherit__graph.pdf
new file mode 100644
index 00000000..0e201d28
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1tidas_1_1_tidas_test.tex b/docs/latex/classpycal_1_1tests_1_1tidas_1_1_tidas_test.tex
new file mode 100644
index 00000000..f9de0634
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1tidas_1_1_tidas_test.tex
@@ -0,0 +1,166 @@
+\hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test}{}\doxysection{pycal.\+tests.\+tidas.\+Tidas\+Test Class Reference}
+\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test}\index{pycal.tests.tidas.TidasTest@{pycal.tests.tidas.TidasTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+tidas.\+Tidas\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1tidas_1_1_tidas_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+tidas.\+Tidas\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1tidas_1_1_tidas_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_ab8207800c245e700d42ef5926459f6be}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_ab8207800c245e700d42ef5926459f6be}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_afceb8919b89aef538df136399b82c73c}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_afceb8919b89aef538df136399b82c73c}}
+def {\bfseries tear\+Down} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a0d365246a97b8f03e5386792d238b20e}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a0d365246a97b8f03e5386792d238b20e}}
+def {\bfseries meta\+\_\+setup} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a7b387525f60e2109294179d673521dda}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a7b387525f60e2109294179d673521dda}}
+def {\bfseries meta\+\_\+verify} (self, dct)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a4cb4e31c4216bccc8da941a8a35ff8d7}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a4cb4e31c4216bccc8da941a8a35ff8d7}}
+def {\bfseries create\+\_\+intervals} (self, start, first)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a9f9ad4499eff17a0d0085ad1cf793024}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a9f9ad4499eff17a0d0085ad1cf793024}}
+def {\bfseries intervals\+\_\+init} (self, start, first)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a6dbcd5263c489d108e280ad11b7c4414}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a6dbcd5263c489d108e280ad11b7c4414}}
+def {\bfseries intervals\+\_\+verify} (self, ilist, start, first)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_ab92f0375547f03ef42310d59f2dd894f}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_ab92f0375547f03ef42310d59f2dd894f}}
+def {\bfseries create\+\_\+bore} (self, total, local)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a8ab4204bab0c6994e932d3b484e0140a}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a8ab4204bab0c6994e932d3b484e0140a}}
+def {\bfseries obs\+\_\+create} (self, vol, name, obsid, start, first)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_afbb142fe482872f322d99169756e2ba5}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_afbb142fe482872f322d99169756e2ba5}}
+def {\bfseries obs\+\_\+init} (self, obscomm, vol, name, start, first)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a0dffbf01e81a7c2c162255cea1d6ea5b}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a0dffbf01e81a7c2c162255cea1d6ea5b}}
+def {\bfseries obs\+\_\+verify} (self, vol, parent, name, tod, start, first, ignore\+\_\+last)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a6aac0ce17e3302e755e453c155ae7d2e}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a6aac0ce17e3302e755e453c155ae7d2e}}
+def {\bfseries volume\+\_\+init} (self, path)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a5cf44445c6daec777c8ad01d74856912}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a5cf44445c6daec777c8ad01d74856912}}
+def {\bfseries init\+\_\+ground} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_ac46f4e6ba43a18975ac454f1c2069767}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_ac46f4e6ba43a18975ac454f1c2069767}}
+def {\bfseries volume\+\_\+verify} (self, path, detgroup=\char`\"{}detectors\char`\"{}, ignore\+\_\+last=False)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_aa7bd22c29a87a3ced426a860939b7f4f}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_aa7bd22c29a87a3ced426a860939b7f4f}}
+def {\bfseries test\+\_\+io} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a0ed0fddacaa3a5c3ec8f955564efb676}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a0ed0fddacaa3a5c3ec8f955564efb676}}
+def {\bfseries test\+\_\+export} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a352402ad1ebc1cc4cb29d7c7eb3acd0b}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a352402ad1ebc1cc4cb29d7c7eb3acd0b}}
+def {\bfseries test\+\_\+ground} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_aff6e25430ed90ec37c82ba66a0cf40ed}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_aff6e25430ed90ec37c82ba66a0cf40ed}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a4d60728c5c6e147cf54d3010798f5e50}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a4d60728c5c6e147cf54d3010798f5e50}}
+{\bfseries outvol}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_aa9dc960bd5ac55a4f18144479146148e}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_aa9dc960bd5ac55a4f18144479146148e}}
+{\bfseries export}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a317b8d7885ac32d2d867011531fd147a}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a317b8d7885ac32d2d867011531fd147a}}
+{\bfseries groundexport}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_ac46f9d0300cac4cb28bb02d95b59b6df}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_ac46f9d0300cac4cb28bb02d95b59b6df}}
+{\bfseries nobs}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a7261415ff8f11e0f7cc79d85d9f7f1dd}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a7261415ff8f11e0f7cc79d85d9f7f1dd}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_aeb3cdb7e9041ca76335ab28173bd35bf}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_aeb3cdb7e9041ca76335ab28173bd35bf}}
+{\bfseries ndet}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a57641b3ba441acad69086700a8b8f665}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a57641b3ba441acad69086700a8b8f665}}
+{\bfseries rate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_aeedf52f14e7f91a17b75185d73b5a29e}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_aeedf52f14e7f91a17b75185d73b5a29e}}
+{\bfseries obslen}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a98113f138af4b225311eb0f4c2e682bd}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a98113f138af4b225311eb0f4c2e682bd}}
+{\bfseries obsgap}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a764cf8325a9b6e34461b0c3310dc3283}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a764cf8325a9b6e34461b0c3310dc3283}}
+{\bfseries obstotalsamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a4e344186e46a9414e0b0ecb34a4f07be}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a4e344186e46a9414e0b0ecb34a4f07be}}
+{\bfseries obssamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_aafc9032bd200fd4111fccae4c417b242}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_aafc9032bd200fd4111fccae4c417b242}}
+{\bfseries obsgapsamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_ac3b940f214057387e2ad39bf8a3eebc2}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_ac3b940f214057387e2ad39bf8a3eebc2}}
+{\bfseries obstotal}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a48cc5e3bd18205f74ca61ef03546f8ce}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a48cc5e3bd18205f74ca61ef03546f8ce}}
+{\bfseries nsub}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a581769741a8c05bc716d970649ae61cd}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a581769741a8c05bc716d970649ae61cd}}
+{\bfseries subtotsamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a02848d361d849c7ecb7a3f4bf17ed6b2}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a02848d361d849c7ecb7a3f4bf17ed6b2}}
+{\bfseries subgapsamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a9653d6825812fb0563d394b7f18f14a7}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a9653d6825812fb0563d394b7f18f14a7}}
+{\bfseries subsamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a6ceb731153c204dcd6dabe1dc57b1679}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a6ceb731153c204dcd6dabe1dc57b1679}}
+{\bfseries site\+\_\+lon}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a995b472c3fcb3bccd8dd549f5b73a613}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a995b472c3fcb3bccd8dd549f5b73a613}}
+{\bfseries site\+\_\+lat}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_aa3282f45fd7e48732ff111d3bd6374bc}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_aa3282f45fd7e48732ff111d3bd6374bc}}
+{\bfseries site\+\_\+alt}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a92f929e0e3eb379d6d2be4fb8b788728}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a92f929e0e3eb379d6d2be4fb8b788728}}
+{\bfseries coord}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_ae27575052fda56fbfba1ada96fabd5ff}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_ae27575052fda56fbfba1ada96fabd5ff}}
+{\bfseries azmin}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a27460c4fb3c79a0129928ca9bd405ecb}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a27460c4fb3c79a0129928ca9bd405ecb}}
+{\bfseries azmax}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a22594ea2885964686419efe4c35508e5}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a22594ea2885964686419efe4c35508e5}}
+{\bfseries el}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a863a0dcedbddcc227233105df37b5582}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a863a0dcedbddcc227233105df37b5582}}
+{\bfseries scanrate}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a9de49aaabb6474b5e37d8e459ed74c93}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a9de49aaabb6474b5e37d8e459ed74c93}}
+{\bfseries scan\+\_\+accel}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a1ff50f0b766f017f68ca1cee481ca2a6}\label{classpycal_1_1tests_1_1tidas_1_1_tidas_test_a1ff50f0b766f017f68ca1cee481ca2a6}}
+{\bfseries C\+E\+S\+\_\+start}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/tidas.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1tidas_1_1_tidas_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1tidas_1_1_tidas_test__coll__graph.md5
new file mode 100644
index 00000000..9d2c614a
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1tidas_1_1_tidas_test__coll__graph.md5
@@ -0,0 +1 @@
+0baaa7a45da930019c53bd2ec28991da
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1tidas_1_1_tidas_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1tidas_1_1_tidas_test__coll__graph.pdf
new file mode 100644
index 00000000..78fac577
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1tidas_1_1_tidas_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1tidas_1_1_tidas_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1tidas_1_1_tidas_test__inherit__graph.md5
new file mode 100644
index 00000000..9d2c614a
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1tidas_1_1_tidas_test__inherit__graph.md5
@@ -0,0 +1 @@
+0baaa7a45da930019c53bd2ec28991da
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1tidas_1_1_tidas_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1tidas_1_1_tidas_test__inherit__graph.pdf
new file mode 100644
index 00000000..78fac577
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1tidas_1_1_tidas_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1timing_1_1_timing_test.tex b/docs/latex/classpycal_1_1tests_1_1timing_1_1_timing_test.tex
new file mode 100644
index 00000000..bdad3a4b
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1timing_1_1_timing_test.tex
@@ -0,0 +1,46 @@
+\hypertarget{classpycal_1_1tests_1_1timing_1_1_timing_test}{}\doxysection{pycal.\+tests.\+timing.\+Timing\+Test Class Reference}
+\label{classpycal_1_1tests_1_1timing_1_1_timing_test}\index{pycal.tests.timing.TimingTest@{pycal.tests.timing.TimingTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+timing.\+Timing\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=240pt]{classpycal_1_1tests_1_1timing_1_1_timing_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+timing.\+Timing\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=240pt]{classpycal_1_1tests_1_1timing_1_1_timing_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1timing_1_1_timing_test_a6c797532e2a30d9b79d06acf17d5c9d1}\label{classpycal_1_1tests_1_1timing_1_1_timing_test_a6c797532e2a30d9b79d06acf17d5c9d1}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1timing_1_1_timing_test_abd5c4da4b5e4fe008213c0d5298c6c19}\label{classpycal_1_1tests_1_1timing_1_1_timing_test_abd5c4da4b5e4fe008213c0d5298c6c19}}
+def {\bfseries test\+\_\+single} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1timing_1_1_timing_test_ab9740b122fc15b6f1ba8cd9ffb34f9cf}\label{classpycal_1_1tests_1_1timing_1_1_timing_test_ab9740b122fc15b6f1ba8cd9ffb34f9cf}}
+def {\bfseries test\+\_\+global} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1timing_1_1_timing_test_a925f6900ff6c7807f322fdad6f178869}\label{classpycal_1_1tests_1_1timing_1_1_timing_test_a925f6900ff6c7807f322fdad6f178869}}
+def {\bfseries test\+\_\+comm} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1timing_1_1_timing_test_a3dd9a50cc0400f3a7063428691c94887}\label{classpycal_1_1tests_1_1timing_1_1_timing_test_a3dd9a50cc0400f3a7063428691c94887}}
+{\bfseries outdir}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/timing.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1timing_1_1_timing_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1timing_1_1_timing_test__coll__graph.md5
new file mode 100644
index 00000000..dbf11f28
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1timing_1_1_timing_test__coll__graph.md5
@@ -0,0 +1 @@
+349352ca7f9bdebf4516de78e3a70100
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1timing_1_1_timing_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1timing_1_1_timing_test__coll__graph.pdf
new file mode 100644
index 00000000..0b8ce9ec
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1timing_1_1_timing_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1timing_1_1_timing_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1timing_1_1_timing_test__inherit__graph.md5
new file mode 100644
index 00000000..dbf11f28
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1timing_1_1_timing_test__inherit__graph.md5
@@ -0,0 +1 @@
+349352ca7f9bdebf4516de78e3a70100
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1timing_1_1_timing_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1timing_1_1_timing_test__inherit__graph.pdf
new file mode 100644
index 00000000..0b8ce9ec
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1timing_1_1_timing_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1tod_1_1_t_o_d_test.tex b/docs/latex/classpycal_1_1tests_1_1tod_1_1_t_o_d_test.tex
new file mode 100644
index 00000000..c6e23736
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1tod_1_1_t_o_d_test.tex
@@ -0,0 +1,88 @@
+\hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test}{}\doxysection{pycal.\+tests.\+tod.\+T\+O\+D\+Test Class Reference}
+\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test}\index{pycal.tests.tod.TODTest@{pycal.tests.tod.TODTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+tod.\+T\+O\+D\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1tod_1_1_t_o_d_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+tod.\+T\+O\+D\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1tod_1_1_t_o_d_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a1a4f1f6d3ab680ad780f496c284cbcc6}\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a1a4f1f6d3ab680ad780f496c284cbcc6}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a56056ddf8729cb51f9195e67cc674c48}\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a56056ddf8729cb51f9195e67cc674c48}}
+def {\bfseries tear\+Down} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a44d9fd0e37ce8ea86770363129427e67}\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a44d9fd0e37ce8ea86770363129427e67}}
+def {\bfseries test\+\_\+props} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_aa8f4e89df3dbec77bbcf14b6a36929e2}\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_aa8f4e89df3dbec77bbcf14b6a36929e2}}
+def {\bfseries test\+\_\+read} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a4efa79cb9c4e1191f5265c41ff8f88ca}\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a4efa79cb9c4e1191f5265c41ff8f88ca}}
+def {\bfseries test\+\_\+cached\+\_\+read} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a87a5ff0f3feccd0c77a60fc05a845727}\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a87a5ff0f3feccd0c77a60fc05a845727}}
+def {\bfseries test\+\_\+read\+\_\+pntg} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a7d3ba07cfa90510e2ba6b9e375d26704}\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a7d3ba07cfa90510e2ba6b9e375d26704}}
+def {\bfseries test\+\_\+local\+\_\+intervals} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a8529c48e82af76069366f5276aa96269}\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a8529c48e82af76069366f5276aa96269}}
+def {\bfseries test\+\_\+local\+\_\+signal} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_ad991a4907c7e2647dd6675d473782ee6}\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_ad991a4907c7e2647dd6675d473782ee6}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_ae5cdb427a594656f898b622b3bcab834}\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_ae5cdb427a594656f898b622b3bcab834}}
+{\bfseries dets}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_ab2aa5305b3be2799e3c65d9d1563dcf5}\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_ab2aa5305b3be2799e3c65d9d1563dcf5}}
+{\bfseries mynsamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a7393bfaf48e7d42723b7c51249d696e7}\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a7393bfaf48e7d42723b7c51249d696e7}}
+{\bfseries myoff}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_ac376f07996503ca144ed2a5191499c16}\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_ac376f07996503ca144ed2a5191499c16}}
+{\bfseries totsamp}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a2cf8ea31d9b824922088608d691e28cc}\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a2cf8ea31d9b824922088608d691e28cc}}
+{\bfseries tod}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a0eae46c8c1b7787f229cd9db7a6dd073}\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a0eae46c8c1b7787f229cd9db7a6dd073}}
+{\bfseries rms}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a6cb6887a41b174c365929aff068c65b6}\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a6cb6887a41b174c365929aff068c65b6}}
+{\bfseries pntgvec}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a65e2f34bcfae4d7b0066e5f04ebfade1}\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a65e2f34bcfae4d7b0066e5f04ebfade1}}
+{\bfseries pflagvec}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a1ffcdc27c9340c20375ea70aa8325959}\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a1ffcdc27c9340c20375ea70aa8325959}}
+{\bfseries datavec}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a88b6b121bd806496718173f7a264f0bb}\label{classpycal_1_1tests_1_1tod_1_1_t_o_d_test_a88b6b121bd806496718173f7a264f0bb}}
+{\bfseries flagvec}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/tod.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1tod_1_1_t_o_d_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1tod_1_1_t_o_d_test__coll__graph.md5
new file mode 100644
index 00000000..3c87be10
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1tod_1_1_t_o_d_test__coll__graph.md5
@@ -0,0 +1 @@
+b518d7d3c3dd371b9501ad0079a97bc5
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1tod_1_1_t_o_d_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1tod_1_1_t_o_d_test__coll__graph.pdf
new file mode 100644
index 00000000..4613a372
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1tod_1_1_t_o_d_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1tod_1_1_t_o_d_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1tod_1_1_t_o_d_test__inherit__graph.md5
new file mode 100644
index 00000000..3c87be10
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1tod_1_1_t_o_d_test__inherit__graph.md5
@@ -0,0 +1 @@
+b518d7d3c3dd371b9501ad0079a97bc5
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1tod_1_1_t_o_d_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1tod_1_1_t_o_d_test__inherit__graph.pdf
new file mode 100644
index 00000000..4613a372
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1tod_1_1_t_o_d_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test.tex b/docs/latex/classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test.tex
new file mode 100644
index 00000000..d880f9e4
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test.tex
@@ -0,0 +1,61 @@
+\hypertarget{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test}{}\doxysection{pycal.\+tests.\+tod\+\_\+satellite.\+T\+O\+D\+Satellite\+Test Class Reference}
+\label{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test}\index{pycal.tests.tod\_satellite.TODSatelliteTest@{pycal.tests.tod\_satellite.TODSatelliteTest}}
+
+
+Inheritance diagram for pycal.\+tests.\+tod\+\_\+satellite.\+T\+O\+D\+Satellite\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+tests.\+tod\+\_\+satellite.\+T\+O\+D\+Satellite\+Test\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=236pt]{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_a76bf6b6be083850442e60c83853d20ce}\label{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_a76bf6b6be083850442e60c83853d20ce}}
+def {\bfseries set\+Up} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_a1ee37270137eaf119e9c8e17a9e50953}\label{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_a1ee37270137eaf119e9c8e17a9e50953}}
+def {\bfseries tear\+Down} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_a669b0ab0edf7a17eb3fe593fad7ef91a}\label{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_a669b0ab0edf7a17eb3fe593fad7ef91a}}
+def {\bfseries test\+\_\+precession} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_a59594eb034d3cb0d4d8bd81d2311d77b}\label{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_a59594eb034d3cb0d4d8bd81d2311d77b}}
+def {\bfseries test\+\_\+phase} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_a9b8ececef46641754440c7a34aba5997}\label{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_a9b8ececef46641754440c7a34aba5997}}
+def {\bfseries test\+\_\+todclass} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_aa80772007a937156bed5c8a50f42979e}\label{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_aa80772007a937156bed5c8a50f42979e}}
+{\bfseries outdir}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_a46129d15e0291098785318c72c0bcacd}\label{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_a46129d15e0291098785318c72c0bcacd}}
+{\bfseries nobs}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_ad38eb1a720d0fdb2f83fcadb1f3f288a}\label{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_ad38eb1a720d0fdb2f83fcadb1f3f288a}}
+{\bfseries data}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_a6830a53b423f547420136c4db068c828}\label{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_a6830a53b423f547420136c4db068c828}}
+{\bfseries ndet}
+\item
+\mbox{\Hypertarget{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_abc07dda0b98f5f81a2aea1f916a4aaae}\label{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test_abc07dda0b98f5f81a2aea1f916a4aaae}}
+{\bfseries rate}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/tests/tod\+\_\+satellite.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test__coll__graph.md5 b/docs/latex/classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test__coll__graph.md5
new file mode 100644
index 00000000..cefbe90d
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test__coll__graph.md5
@@ -0,0 +1 @@
+cb34cde783877ada182a836f5c3bbcaa
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test__coll__graph.pdf b/docs/latex/classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test__coll__graph.pdf
new file mode 100644
index 00000000..362fbefc
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test__inherit__graph.md5 b/docs/latex/classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test__inherit__graph.md5
new file mode 100644
index 00000000..cefbe90d
--- /dev/null
+++ b/docs/latex/classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test__inherit__graph.md5
@@ -0,0 +1 @@
+cb34cde783877ada182a836f5c3bbcaa
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test__inherit__graph.pdf b/docs/latex/classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test__inherit__graph.pdf
new file mode 100644
index 00000000..362fbefc
Binary files /dev/null and b/docs/latex/classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere.tex b/docs/latex/classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere.tex
new file mode 100644
index 00000000..67eb0b7b
--- /dev/null
+++ b/docs/latex/classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere.tex
@@ -0,0 +1,263 @@
+\hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere}{}\doxysection{pycal.\+todmap.\+sim\+\_\+det\+\_\+atm.\+Op\+Sim\+Atmosphere Class Reference}
+\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere}\index{pycal.todmap.sim\_det\_atm.OpSimAtmosphere@{pycal.todmap.sim\_det\_atm.OpSimAtmosphere}}
+
+
+Inheritance diagram for pycal.\+todmap.\+sim\+\_\+det\+\_\+atm.\+Op\+Sim\+Atmosphere\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=216pt]{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+todmap.\+sim\+\_\+det\+\_\+atm.\+Op\+Sim\+Atmosphere\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=216pt]{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a1ebcd144ea4f85bd254e8893aa68aeff}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a1ebcd144ea4f85bd254e8893aa68aeff}}
+def {\bfseries \+\_\+\+\_\+init\+\_\+\+\_\+} (self, out=\char`\"{}atm\char`\"{}, realization=0, component=123456, lmin\+\_\+center=0.\+01, lmin\+\_\+sigma=0.\+001, lmax\+\_\+center=10, lmax\+\_\+sigma=10, zatm=40000.\+0, zmax=2000.\+0, xstep=100.\+0, ystep=100.\+0, zstep=100.\+0, nelem\+\_\+sim\+\_\+max=10000, verbosity=0, gain=1, z0\+\_\+center=2000, z0\+\_\+sigma=0, apply\+\_\+flags=False, common\+\_\+flag\+\_\+name=None, common\+\_\+flag\+\_\+mask=255, flag\+\_\+name=None, flag\+\_\+mask=255, report\+\_\+timing=True, wind\+\_\+dist=10000, cachedir=\char`\"{}.\char`\"{}, flush=False, freq=None)
+\item
+def \mbox{\hyperlink{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_ab9550ae5cb9f0781ad6725ea2edae9e1}{exec}} (self, data)
+\end{DoxyCompactItemize}
+\doxysubsection*{Private Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a26dfd39e6d7f5d043476b0b137106da4}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a26dfd39e6d7f5d043476b0b137106da4}}
+def {\bfseries \+\_\+save\+\_\+tod} (self, obsname, tod, times, istart, nind, ind, comm, common\+\_\+ref)
+\item
+def \mbox{\hyperlink{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_ab5b63b6c0214451081035031d5bcb5ef}{\+\_\+plot\+\_\+snapshots}} (self, sim, prefix, obsname, scan\+\_\+range, tmin, tmax, comm, rmin, rmax)
+\item
+def \mbox{\hyperlink{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a4274842ca74bd599eaa5027d06f6152a}{\+\_\+get\+\_\+from\+\_\+obs}} (self, name, obs)
+\item
+def \mbox{\hyperlink{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_aeb0ef04c1ae4a87d10d906ea572a4f9a}{\+\_\+get\+\_\+rng\+\_\+keys}} (self, obs)
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a1d2810dbf67bd2edf6c68681ed875af7}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a1d2810dbf67bd2edf6c68681ed875af7}}
+def {\bfseries \+\_\+get\+\_\+absorption\+\_\+and\+\_\+loading} (self, obs)
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a306264e596b4a67cdd7942c6e412619d}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a306264e596b4a67cdd7942c6e412619d}}
+def {\bfseries \+\_\+get\+\_\+cache\+\_\+dir} (self, obs, comm)
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a81cb44150501c90cf6f39e37e2cf2cf1}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a81cb44150501c90cf6f39e37e2cf2cf1}}
+def {\bfseries \+\_\+get\+\_\+scan\+\_\+range} (self, obs, comm, prefix)
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a695a97610de372aa863e033da4a81424}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a695a97610de372aa863e033da4a81424}}
+def {\bfseries \+\_\+get\+\_\+time\+\_\+range} (self, tmin, istart, times, tmax\+\_\+tot, common\+\_\+ref, tod, weather)
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a5fe60c9208d40a42cc9d5c0c49d59a5e}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a5fe60c9208d40a42cc9d5c0c49d59a5e}}
+def {\bfseries \+\_\+simulate\+\_\+atmosphere} (self, weather, scan\+\_\+range, tmin, tmax, comm, key1, key2, counter1, counter2, cachedir, prefix, tmin\+\_\+tot, tmax\+\_\+tot, rmin, rmax)
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_aae939b81894c7b7597642368437b5dc8}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_aae939b81894c7b7597642368437b5dc8}}
+def {\bfseries \+\_\+observe\+\_\+atmosphere} (self, sim, tod, comm, prefix, common\+\_\+ref, istart, nind, ind, scan\+\_\+range, times, absorption)
+\end{DoxyCompactItemize}
+\doxysubsection*{Private Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a4fae59723eab0c745ef8e12a1f75e236}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a4fae59723eab0c745ef8e12a1f75e236}}
+{\bfseries \+\_\+out}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a170eadfd3e60cabfc3596e6aac1f2e1d}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a170eadfd3e60cabfc3596e6aac1f2e1d}}
+{\bfseries \+\_\+realization}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_aa333035c11a27fbd907693e4e3c5e991}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_aa333035c11a27fbd907693e4e3c5e991}}
+{\bfseries \+\_\+component}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_aded609d15586267d7b344c3ae0c76674}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_aded609d15586267d7b344c3ae0c76674}}
+{\bfseries \+\_\+lmin\+\_\+center}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a0790047c4037c96766260608ccb4118a}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a0790047c4037c96766260608ccb4118a}}
+{\bfseries \+\_\+lmin\+\_\+sigma}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_af51a50f95aa5bd4ae4e0b66793634da4}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_af51a50f95aa5bd4ae4e0b66793634da4}}
+{\bfseries \+\_\+lmax\+\_\+center}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_ace1a3cde3e3a6ac9c8bb58ab06a45b17}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_ace1a3cde3e3a6ac9c8bb58ab06a45b17}}
+{\bfseries \+\_\+lmax\+\_\+sigma}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_abc3a8e4f550bef536abbc371edcd7a2c}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_abc3a8e4f550bef536abbc371edcd7a2c}}
+{\bfseries \+\_\+gain}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a00541e476fb3535b3bec2b41fc1c6259}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a00541e476fb3535b3bec2b41fc1c6259}}
+{\bfseries \+\_\+zatm}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a5d6c2c90fb8fe536d0be206dc39a57da}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a5d6c2c90fb8fe536d0be206dc39a57da}}
+{\bfseries \+\_\+zmax}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_afa9d550b68952368d9f9269fc249a652}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_afa9d550b68952368d9f9269fc249a652}}
+{\bfseries \+\_\+xstep}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_ab3d7140d585083f55e40be151bca461b}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_ab3d7140d585083f55e40be151bca461b}}
+{\bfseries \+\_\+ystep}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a200ef6cdfc3f1a9171c187aa01126da7}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a200ef6cdfc3f1a9171c187aa01126da7}}
+{\bfseries \+\_\+zstep}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a5f1f82f926abd4cdda8deee7e57e9594}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a5f1f82f926abd4cdda8deee7e57e9594}}
+{\bfseries \+\_\+nelem\+\_\+sim\+\_\+max}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_aec6a0b6578fdda7e7764720d1fbf9468}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_aec6a0b6578fdda7e7764720d1fbf9468}}
+{\bfseries \+\_\+verbosity}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_abcc361996e0e86f70052803ad954ded7}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_abcc361996e0e86f70052803ad954ded7}}
+{\bfseries \+\_\+cachedir}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a93c4713ab956f59d8bba0c1eceb83da3}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a93c4713ab956f59d8bba0c1eceb83da3}}
+{\bfseries \+\_\+flush}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a68ca3e026588862de6a8fa87d16f81c2}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a68ca3e026588862de6a8fa87d16f81c2}}
+{\bfseries \+\_\+freq}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_af3b738e7fe62ca2ffbcd85dbd9a2bf9d}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_af3b738e7fe62ca2ffbcd85dbd9a2bf9d}}
+{\bfseries \+\_\+z0\+\_\+center}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a5fce0c8ba874ac36a0c51df28ee3a696}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a5fce0c8ba874ac36a0c51df28ee3a696}}
+{\bfseries \+\_\+z0\+\_\+sigma}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a771f4d356eda57412d042cd15f0d0b91}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a771f4d356eda57412d042cd15f0d0b91}}
+{\bfseries \+\_\+apply\+\_\+flags}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_addf4aa24c41f10139603b90d730e9a35}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_addf4aa24c41f10139603b90d730e9a35}}
+{\bfseries \+\_\+common\+\_\+flag\+\_\+name}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_af7b432af05c199d70a149ff2c6e31814}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_af7b432af05c199d70a149ff2c6e31814}}
+{\bfseries \+\_\+common\+\_\+flag\+\_\+mask}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a81d03d64c3106c2943a111308a135ed8}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a81d03d64c3106c2943a111308a135ed8}}
+{\bfseries \+\_\+flag\+\_\+name}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_adceb1b3d89bd97cb00b6ab028eba2c10}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_adceb1b3d89bd97cb00b6ab028eba2c10}}
+{\bfseries \+\_\+flag\+\_\+mask}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a8dde152eb6f528d59624d5f728f051ab}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a8dde152eb6f528d59624d5f728f051ab}}
+{\bfseries \+\_\+report\+\_\+timing}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_aa60322a7a88e6c1457b82f2a7b94393d}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_aa60322a7a88e6c1457b82f2a7b94393d}}
+{\bfseries \+\_\+wind\+\_\+dist}
+\item
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a9386e27bdf9e3d4878dae66e084c83d3}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a9386e27bdf9e3d4878dae66e084c83d3}}
+{\bfseries \+\_\+wind\+\_\+time}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+\begin{DoxyVerb}Operator which generates atmosphere timestreams.
+
+All processes collectively generate the atmospheric realization.
+Then each process passes through its local data and observes the
+atmosphere.
+
+This operator is only compatible with TOD objects that can return
+AZ/EL pointing.
+
+Args:
+ out (str): accumulate data to the cache with name
+ _. If the named cache objects do not exist,
+ then they are created.
+ realization (int): if simulating multiple realizations, the
+ realization index.
+ component (int): the component index to use for this noise
+ simulation.
+ lmin_center (float): Kolmogorov turbulence dissipation scale
+ center.
+ lmin_sigma (float): Kolmogorov turbulence dissipation scale
+ sigma.
+ lmax_center (float): Kolmogorov turbulence injection scale
+ center.
+ lmax_sigma (float): Kolmogorov turbulence injection scale sigma.
+ gain (float): Scaling applied to the simulated TOD.
+ zatm (float): atmosphere extent for temperature profile.
+ zmax (float): atmosphere extent for water vapor integration.
+ xstep (float): size of volume elements in X direction.
+ ystep (float): size of volume elements in Y direction.
+ zstep (float): size of volume elements in Z direction.
+ nelem_sim_max (int): controls the size of the simulation slices.
+ verbosity (int): more information is printed for values > 0.
+ z0_center (float): central value of the water vapor
+ distribution.
+ z0_sigma (float): sigma of the water vapor distribution.
+ common_flag_name (str): Cache name of the output common flags.
+ If it already exists, it is used. Otherwise flags
+ are read from the tod object and stored in the cache under
+ common_flag_name.
+ common_flag_mask (byte): Bitmask to use when flagging data
+ based on the common flags.
+ flag_name (str): Cache name of the output detector flags will
+ be _. If the object exists, it is
+ used. Otherwise flags are read from the tod object.
+ flag_mask (byte): Bitmask to use when flagging data
+ based on the detector flags.
+ apply_flags (bool): When True, flagged samples are not
+ simulated.
+ report_timing (bool): Print out time taken to initialize,
+ simulate and observe
+ wind_dist (float): Maximum wind drift before discarding the
+ volume and creating a new one [meters].
+ cachedir (str): Directory to use for loading and saving
+ atmosphere realizations. Set to None to disable caching.
+ flush (bool): Flush all print statements
+ freq (float): Observing frequency in GHz.
+\end{DoxyVerb}
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a4274842ca74bd599eaa5027d06f6152a}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_a4274842ca74bd599eaa5027d06f6152a}}
+\index{pycal.todmap.sim\_det\_atm.OpSimAtmosphere@{pycal.todmap.sim\_det\_atm.OpSimAtmosphere}!\_get\_from\_obs@{\_get\_from\_obs}}
+\index{\_get\_from\_obs@{\_get\_from\_obs}!pycal.todmap.sim\_det\_atm.OpSimAtmosphere@{pycal.todmap.sim\_det\_atm.OpSimAtmosphere}}
+\doxysubsubsection{\texorpdfstring{\_get\_from\_obs()}{\_get\_from\_obs()}}
+{\footnotesize\ttfamily def pycal.\+todmap.\+sim\+\_\+det\+\_\+atm.\+Op\+Sim\+Atmosphere.\+\_\+get\+\_\+from\+\_\+obs (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{name, }\item[{}]{obs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
+
+\begin{DoxyVerb}Extract value for name from observation.
+
+If name is not defined in observation, raise an exception.\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_aeb0ef04c1ae4a87d10d906ea572a4f9a}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_aeb0ef04c1ae4a87d10d906ea572a4f9a}}
+\index{pycal.todmap.sim\_det\_atm.OpSimAtmosphere@{pycal.todmap.sim\_det\_atm.OpSimAtmosphere}!\_get\_rng\_keys@{\_get\_rng\_keys}}
+\index{\_get\_rng\_keys@{\_get\_rng\_keys}!pycal.todmap.sim\_det\_atm.OpSimAtmosphere@{pycal.todmap.sim\_det\_atm.OpSimAtmosphere}}
+\doxysubsubsection{\texorpdfstring{\_get\_rng\_keys()}{\_get\_rng\_keys()}}
+{\footnotesize\ttfamily def pycal.\+todmap.\+sim\+\_\+det\+\_\+atm.\+Op\+Sim\+Atmosphere.\+\_\+get\+\_\+rng\+\_\+keys (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{obs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
+
+\begin{DoxyVerb}The random number generator accepts a key and a counter,
+each made of two 64bit integers.
+Following tod_math.py we set
+key1 = realization * 2^32 + telescope * 2^16 + component
+key2 = obsindx * 2^32
+counter1 = hierarchical cone counter
+counter2 = sample in stream (incremented internally in the atm code)
+\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_ab5b63b6c0214451081035031d5bcb5ef}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_ab5b63b6c0214451081035031d5bcb5ef}}
+\index{pycal.todmap.sim\_det\_atm.OpSimAtmosphere@{pycal.todmap.sim\_det\_atm.OpSimAtmosphere}!\_plot\_snapshots@{\_plot\_snapshots}}
+\index{\_plot\_snapshots@{\_plot\_snapshots}!pycal.todmap.sim\_det\_atm.OpSimAtmosphere@{pycal.todmap.sim\_det\_atm.OpSimAtmosphere}}
+\doxysubsubsection{\texorpdfstring{\_plot\_snapshots()}{\_plot\_snapshots()}}
+{\footnotesize\ttfamily def pycal.\+todmap.\+sim\+\_\+det\+\_\+atm.\+Op\+Sim\+Atmosphere.\+\_\+plot\+\_\+snapshots (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{sim, }\item[{}]{prefix, }\item[{}]{obsname, }\item[{}]{scan\+\_\+range, }\item[{}]{tmin, }\item[{}]{tmax, }\item[{}]{comm, }\item[{}]{rmin, }\item[{}]{rmax }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
+
+\begin{DoxyVerb}Create snapshots of the atmosphere\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_ab9550ae5cb9f0781ad6725ea2edae9e1}\label{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere_ab9550ae5cb9f0781ad6725ea2edae9e1}}
+\index{pycal.todmap.sim\_det\_atm.OpSimAtmosphere@{pycal.todmap.sim\_det\_atm.OpSimAtmosphere}!exec@{exec}}
+\index{exec@{exec}!pycal.todmap.sim\_det\_atm.OpSimAtmosphere@{pycal.todmap.sim\_det\_atm.OpSimAtmosphere}}
+\doxysubsubsection{\texorpdfstring{exec()}{exec()}}
+{\footnotesize\ttfamily def pycal.\+todmap.\+sim\+\_\+det\+\_\+atm.\+Op\+Sim\+Atmosphere.\+exec (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{data }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Generate atmosphere timestreams.
+
+This iterates over all observations and detectors and generates
+the atmosphere timestreams.
+
+Args:
+ data (cal.Data): The distributed data.
+
+Returns:
+ None\end{DoxyVerb}
+
+
+Reimplemented from \mbox{\hyperlink{classpycal_1_1op_1_1_operator_af40922bdae44d1b640f4271c03926302}{pycal.\+op.\+Operator}}.
+
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/todmap/sim\+\_\+det\+\_\+atm.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere__coll__graph.md5 b/docs/latex/classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere__coll__graph.md5
new file mode 100644
index 00000000..a4b52b36
--- /dev/null
+++ b/docs/latex/classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere__coll__graph.md5
@@ -0,0 +1 @@
+39e7365b6daa91b7736d2f0ab8420ab6
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere__coll__graph.pdf b/docs/latex/classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere__coll__graph.pdf
new file mode 100644
index 00000000..120f6eed
Binary files /dev/null and b/docs/latex/classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere__inherit__graph.md5 b/docs/latex/classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere__inherit__graph.md5
new file mode 100644
index 00000000..a4b52b36
--- /dev/null
+++ b/docs/latex/classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere__inherit__graph.md5
@@ -0,0 +1 @@
+39e7365b6daa91b7736d2f0ab8420ab6
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere__inherit__graph.pdf b/docs/latex/classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere__inherit__graph.pdf
new file mode 100644
index 00000000..120f6eed
Binary files /dev/null and b/docs/latex/classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere__inherit__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1weather_1_1_weather.tex b/docs/latex/classpycal_1_1weather_1_1_weather.tex
new file mode 100644
index 00000000..08fc6157
--- /dev/null
+++ b/docs/latex/classpycal_1_1weather_1_1_weather.tex
@@ -0,0 +1,290 @@
+\hypertarget{classpycal_1_1weather_1_1_weather}{}\doxysection{pycal.\+weather.\+Weather Class Reference}
+\label{classpycal_1_1weather_1_1_weather}\index{pycal.weather.Weather@{pycal.weather.Weather}}
+
+
+Inheritance diagram for pycal.\+weather.\+Weather\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=210pt]{classpycal_1_1weather_1_1_weather__inherit__graph}
+\end{center}
+\end{figure}
+
+
+Collaboration diagram for pycal.\+weather.\+Weather\+:\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=210pt]{classpycal_1_1weather_1_1_weather__coll__graph}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+def \mbox{\hyperlink{classpycal_1_1weather_1_1_weather_a7895bce849df2a795875c9b057e00a49}{\+\_\+\+\_\+init\+\_\+\+\_\+}} (self, fname, site=0, realization=0, time=None)
+\item
+def \mbox{\hyperlink{classpycal_1_1weather_1_1_weather_a084a5df60b2fefa88a6c18054ec1c608}{set}} (self, site, realization, time=None)
+\item
+def \mbox{\hyperlink{classpycal_1_1weather_1_1_weather_a73c2646f0cd70d3e86b53230f6ce2a98}{set\+\_\+time}} (self, time)
+\item
+def \mbox{\hyperlink{classpycal_1_1weather_1_1_weather_a8c5b5235f20a4ca3fcc9410afc593d7c}{ice\+\_\+water}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1weather_1_1_weather_a4f7cd1e5cc63a4cfd656544bc483e3b8}{liquid\+\_\+water}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1weather_1_1_weather_abf24a8753fd235088ef982b267c3694c}{pwv}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1weather_1_1_weather_aa5565bc93c191b5887648a4fce1c441f}{humidity}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1weather_1_1_weather_a33e017ee83182fba4edb1a0951ffbb1d}{surface\+\_\+pressure}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1weather_1_1_weather_a2d01fd5b72748a31949192251738f598}{surface\+\_\+temperature}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1weather_1_1_weather_a0ddd034fc52aec7bfe65ca605211a872}{air\+\_\+temperature}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1weather_1_1_weather_a3755f1d43ede2c2346a459d7f037d55b}{west\+\_\+wind}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1weather_1_1_weather_ad4789f779a2d74d6c7d38c19e7fd45f1}{south\+\_\+wind}} (self)
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_aaca684432f6e7909fef30155d237e126}\label{classpycal_1_1weather_1_1_weather_aaca684432f6e7909fef30155d237e126}}
+def {\bfseries \+\_\+\+\_\+repr\+\_\+\+\_\+} (self)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a88ac86598123b9af14082c6c93cb6ea9}\label{classpycal_1_1weather_1_1_weather_a88ac86598123b9af14082c6c93cb6ea9}}
+{\bfseries site}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a746fcccff286cbf19c618596e6e56829}\label{classpycal_1_1weather_1_1_weather_a746fcccff286cbf19c618596e6e56829}}
+{\bfseries realization}
+\end{DoxyCompactItemize}
+\doxysubsection*{Private Member Functions}
+\begin{DoxyCompactItemize}
+\item
+def \mbox{\hyperlink{classpycal_1_1weather_1_1_weather_a6ba79778e3cb9197d681a99bb6688518}{\+\_\+reset\+\_\+vars}} (self)
+\item
+def \mbox{\hyperlink{classpycal_1_1weather_1_1_weather_a5a2d79862104478ec114c79a5de00d7f}{\+\_\+draw}} (self, name)
+\end{DoxyCompactItemize}
+\doxysubsection*{Private Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a5f478cf3d678696cfc8453bf8589d7db}\label{classpycal_1_1weather_1_1_weather_a5f478cf3d678696cfc8453bf8589d7db}}
+{\bfseries \+\_\+fname}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a01038ac4d372342d27d1eec47844869f}\label{classpycal_1_1weather_1_1_weather_a01038ac4d372342d27d1eec47844869f}}
+{\bfseries \+\_\+time}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_ae5dabde6b81f28b0db89424bf9cbd67a}\label{classpycal_1_1weather_1_1_weather_ae5dabde6b81f28b0db89424bf9cbd67a}}
+{\bfseries \+\_\+year}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a6bd17853969761dbfe04f1771685fe1a}\label{classpycal_1_1weather_1_1_weather_a6bd17853969761dbfe04f1771685fe1a}}
+{\bfseries \+\_\+month}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a876c342f1b703e49e9cf5836f370e16f}\label{classpycal_1_1weather_1_1_weather_a876c342f1b703e49e9cf5836f370e16f}}
+{\bfseries \+\_\+hour}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a7ddb05fc5c6fc3b7f14e730fe53db695}\label{classpycal_1_1weather_1_1_weather_a7ddb05fc5c6fc3b7f14e730fe53db695}}
+{\bfseries \+\_\+varindex}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_ae1fbfad3acff77c5c91b974b8cf4bfae}\label{classpycal_1_1weather_1_1_weather_ae1fbfad3acff77c5c91b974b8cf4bfae}}
+{\bfseries \+\_\+prob}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_afae02412c139e1f658c6e837c8410cb6}\label{classpycal_1_1weather_1_1_weather_afae02412c139e1f658c6e837c8410cb6}}
+{\bfseries \+\_\+monthly\+\_\+cdf}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a49123a9c1e7b54760a5869b1748b1292}\label{classpycal_1_1weather_1_1_weather_a49123a9c1e7b54760a5869b1748b1292}}
+{\bfseries \+\_\+ice\+\_\+water}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a252a9ab3a03a10cfcd9dec089ebe0e9f}\label{classpycal_1_1weather_1_1_weather_a252a9ab3a03a10cfcd9dec089ebe0e9f}}
+{\bfseries \+\_\+liquid\+\_\+water}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a0d8d9bceda2563620ec56a4e519e19ac}\label{classpycal_1_1weather_1_1_weather_a0d8d9bceda2563620ec56a4e519e19ac}}
+{\bfseries \+\_\+pwv}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_adb19ffe549f0446453c55ea0a60ab15a}\label{classpycal_1_1weather_1_1_weather_adb19ffe549f0446453c55ea0a60ab15a}}
+{\bfseries \+\_\+humidity}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a63141c0138375d00318f3a1b8c5e535b}\label{classpycal_1_1weather_1_1_weather_a63141c0138375d00318f3a1b8c5e535b}}
+{\bfseries \+\_\+surface\+\_\+pressure}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a93e423f8265a327fc71f82c8f9712af7}\label{classpycal_1_1weather_1_1_weather_a93e423f8265a327fc71f82c8f9712af7}}
+{\bfseries \+\_\+surface\+\_\+temperature}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a03ed062f37d767e1eec9d5575809f379}\label{classpycal_1_1weather_1_1_weather_a03ed062f37d767e1eec9d5575809f379}}
+{\bfseries \+\_\+air\+\_\+temperature}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a7e24af5e9c14787de543569377501d67}\label{classpycal_1_1weather_1_1_weather_a7e24af5e9c14787de543569377501d67}}
+{\bfseries \+\_\+west\+\_\+wind}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a858b4f4a3ff3333309d278248c551153}\label{classpycal_1_1weather_1_1_weather_a858b4f4a3ff3333309d278248c551153}}
+{\bfseries \+\_\+south\+\_\+wind}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a6872744ffedccd712a135a23c147a787}\label{classpycal_1_1weather_1_1_weather_a6872744ffedccd712a135a23c147a787}}
+{\bfseries \+\_\+date}
+\item
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_aed536a3b28cfc18726fe8f87a221e2d6}\label{classpycal_1_1weather_1_1_weather_aed536a3b28cfc18726fe8f87a221e2d6}}
+{\bfseries \+\_\+doy}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+\begin{DoxyVerb}cal Weather objects allow sampling weather parameters.
+
+The weather parameter distributions are read from site-specific
+cal weather files. The files contain parameter distributions
+for every UTC hour of the day, averaged over months.\end{DoxyVerb}
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a7895bce849df2a795875c9b057e00a49}\label{classpycal_1_1weather_1_1_weather_a7895bce849df2a795875c9b057e00a49}}
+\index{pycal.weather.Weather@{pycal.weather.Weather}!\_\_init\_\_@{\_\_init\_\_}}
+\index{\_\_init\_\_@{\_\_init\_\_}!pycal.weather.Weather@{pycal.weather.Weather}}
+\doxysubsubsection{\texorpdfstring{\_\_init\_\_()}{\_\_init\_\_()}}
+{\footnotesize\ttfamily def pycal.\+weather.\+Weather.\+\_\+\+\_\+init\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{fname, }\item[{}]{site = {\ttfamily 0}, }\item[{}]{realization = {\ttfamily 0}, }\item[{}]{time = {\ttfamily None} }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Initialize a weather object
+
+Args:
+ fname(str) : FITS file containing the parameter
+distributions.
+ site(int) : Site index for the random number generator.
+ realization(int) : Initial realization index, may be
+changed later.\end{DoxyVerb}
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a5a2d79862104478ec114c79a5de00d7f}\label{classpycal_1_1weather_1_1_weather_a5a2d79862104478ec114c79a5de00d7f}}
+\index{pycal.weather.Weather@{pycal.weather.Weather}!\_draw@{\_draw}}
+\index{\_draw@{\_draw}!pycal.weather.Weather@{pycal.weather.Weather}}
+\doxysubsubsection{\texorpdfstring{\_draw()}{\_draw()}}
+{\footnotesize\ttfamily def pycal.\+weather.\+Weather.\+\_\+draw (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
+
+\begin{DoxyVerb}Return a random parameter value.
+
+Return a random value for preset variable and time.
+
+Args:
+ name(str): MERRA-2 name for the variable.\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a6ba79778e3cb9197d681a99bb6688518}\label{classpycal_1_1weather_1_1_weather_a6ba79778e3cb9197d681a99bb6688518}}
+\index{pycal.weather.Weather@{pycal.weather.Weather}!\_reset\_vars@{\_reset\_vars}}
+\index{\_reset\_vars@{\_reset\_vars}!pycal.weather.Weather@{pycal.weather.Weather}}
+\doxysubsubsection{\texorpdfstring{\_reset\_vars()}{\_reset\_vars()}}
+{\footnotesize\ttfamily def pycal.\+weather.\+Weather.\+\_\+reset\+\_\+vars (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
+
+\begin{DoxyVerb}Reset the cached random variables.\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a0ddd034fc52aec7bfe65ca605211a872}\label{classpycal_1_1weather_1_1_weather_a0ddd034fc52aec7bfe65ca605211a872}}
+\index{pycal.weather.Weather@{pycal.weather.Weather}!air\_temperature@{air\_temperature}}
+\index{air\_temperature@{air\_temperature}!pycal.weather.Weather@{pycal.weather.Weather}}
+\doxysubsubsection{\texorpdfstring{air\_temperature()}{air\_temperature()}}
+{\footnotesize\ttfamily def pycal.\+weather.\+Weather.\+air\+\_\+temperature (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}10-meter air temperature [K].
+
+Air temperature at the observing site 10 meters above ground
+at the preset time and for the preset realization.\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_aa5565bc93c191b5887648a4fce1c441f}\label{classpycal_1_1weather_1_1_weather_aa5565bc93c191b5887648a4fce1c441f}}
+\index{pycal.weather.Weather@{pycal.weather.Weather}!humidity@{humidity}}
+\index{humidity@{humidity}!pycal.weather.Weather@{pycal.weather.Weather}}
+\doxysubsubsection{\texorpdfstring{humidity()}{humidity()}}
+{\footnotesize\ttfamily def pycal.\+weather.\+Weather.\+humidity (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}10-meter specific humidity [kg/kg]
+
+Water vapor concentration at the observing site 10 meters above
+ground at the preset time and for the preset realization.\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a8c5b5235f20a4ca3fcc9410afc593d7c}\label{classpycal_1_1weather_1_1_weather_a8c5b5235f20a4ca3fcc9410afc593d7c}}
+\index{pycal.weather.Weather@{pycal.weather.Weather}!ice\_water@{ice\_water}}
+\index{ice\_water@{ice\_water}!pycal.weather.Weather@{pycal.weather.Weather}}
+\doxysubsubsection{\texorpdfstring{ice\_water()}{ice\_water()}}
+{\footnotesize\ttfamily def pycal.\+weather.\+Weather.\+ice\+\_\+water (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Total precipitable ice water [kg/m^2] (also [mm]).
+
+Ice water column at the observing site at the preset time and
+for the preset realization.\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a4f7cd1e5cc63a4cfd656544bc483e3b8}\label{classpycal_1_1weather_1_1_weather_a4f7cd1e5cc63a4cfd656544bc483e3b8}}
+\index{pycal.weather.Weather@{pycal.weather.Weather}!liquid\_water@{liquid\_water}}
+\index{liquid\_water@{liquid\_water}!pycal.weather.Weather@{pycal.weather.Weather}}
+\doxysubsubsection{\texorpdfstring{liquid\_water()}{liquid\_water()}}
+{\footnotesize\ttfamily def pycal.\+weather.\+Weather.\+liquid\+\_\+water (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Total precipitable liquid water [kg/m^2] (also [mm]).
+
+Liquid water column at the observing site at the preset time and
+for the preset realization.\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_abf24a8753fd235088ef982b267c3694c}\label{classpycal_1_1weather_1_1_weather_abf24a8753fd235088ef982b267c3694c}}
+\index{pycal.weather.Weather@{pycal.weather.Weather}!pwv@{pwv}}
+\index{pwv@{pwv}!pycal.weather.Weather@{pycal.weather.Weather}}
+\doxysubsubsection{\texorpdfstring{pwv()}{pwv()}}
+{\footnotesize\ttfamily def pycal.\+weather.\+Weather.\+pwv (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Total precipitable water vapor [kg/m^2] (also [mm]).
+
+Water vapor column at the observing site at the preset time and
+for the preset realization.\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a084a5df60b2fefa88a6c18054ec1c608}\label{classpycal_1_1weather_1_1_weather_a084a5df60b2fefa88a6c18054ec1c608}}
+\index{pycal.weather.Weather@{pycal.weather.Weather}!set@{set}}
+\index{set@{set}!pycal.weather.Weather@{pycal.weather.Weather}}
+\doxysubsubsection{\texorpdfstring{set()}{set()}}
+{\footnotesize\ttfamily def pycal.\+weather.\+Weather.\+set (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{site, }\item[{}]{realization, }\item[{}]{time = {\ttfamily None} }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Set the weather object state.
+
+Args:
+ site(int) : Site index.
+ realization(int) : Realization index.
+ time : POSIX timestamp.\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a73c2646f0cd70d3e86b53230f6ce2a98}\label{classpycal_1_1weather_1_1_weather_a73c2646f0cd70d3e86b53230f6ce2a98}}
+\index{pycal.weather.Weather@{pycal.weather.Weather}!set\_time@{set\_time}}
+\index{set\_time@{set\_time}!pycal.weather.Weather@{pycal.weather.Weather}}
+\doxysubsubsection{\texorpdfstring{set\_time()}{set\_time()}}
+{\footnotesize\ttfamily def pycal.\+weather.\+Weather.\+set\+\_\+time (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{time }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Set the observing time.
+
+Args:
+ time : POSIX timestamp.\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_ad4789f779a2d74d6c7d38c19e7fd45f1}\label{classpycal_1_1weather_1_1_weather_ad4789f779a2d74d6c7d38c19e7fd45f1}}
+\index{pycal.weather.Weather@{pycal.weather.Weather}!south\_wind@{south\_wind}}
+\index{south\_wind@{south\_wind}!pycal.weather.Weather@{pycal.weather.Weather}}
+\doxysubsubsection{\texorpdfstring{south\_wind()}{south\_wind()}}
+{\footnotesize\ttfamily def pycal.\+weather.\+Weather.\+south\+\_\+wind (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}10-meter northward wind [m/s].
+
+Northward wind at the observing site 10 meters above ground
+at the preset time and for the preset realization.\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a33e017ee83182fba4edb1a0951ffbb1d}\label{classpycal_1_1weather_1_1_weather_a33e017ee83182fba4edb1a0951ffbb1d}}
+\index{pycal.weather.Weather@{pycal.weather.Weather}!surface\_pressure@{surface\_pressure}}
+\index{surface\_pressure@{surface\_pressure}!pycal.weather.Weather@{pycal.weather.Weather}}
+\doxysubsubsection{\texorpdfstring{surface\_pressure()}{surface\_pressure()}}
+{\footnotesize\ttfamily def pycal.\+weather.\+Weather.\+surface\+\_\+pressure (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Surface pressure [Pa].
+
+Surface at the observing site at the preset time and for the
+preset realization.\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a2d01fd5b72748a31949192251738f598}\label{classpycal_1_1weather_1_1_weather_a2d01fd5b72748a31949192251738f598}}
+\index{pycal.weather.Weather@{pycal.weather.Weather}!surface\_temperature@{surface\_temperature}}
+\index{surface\_temperature@{surface\_temperature}!pycal.weather.Weather@{pycal.weather.Weather}}
+\doxysubsubsection{\texorpdfstring{surface\_temperature()}{surface\_temperature()}}
+{\footnotesize\ttfamily def pycal.\+weather.\+Weather.\+surface\+\_\+temperature (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}Surface skin temperature [K].
+
+Surface temperature at the observing site at the preset time and
+for the preset realization.\end{DoxyVerb}
+ \mbox{\Hypertarget{classpycal_1_1weather_1_1_weather_a3755f1d43ede2c2346a459d7f037d55b}\label{classpycal_1_1weather_1_1_weather_a3755f1d43ede2c2346a459d7f037d55b}}
+\index{pycal.weather.Weather@{pycal.weather.Weather}!west\_wind@{west\_wind}}
+\index{west\_wind@{west\_wind}!pycal.weather.Weather@{pycal.weather.Weather}}
+\doxysubsubsection{\texorpdfstring{west\_wind()}{west\_wind()}}
+{\footnotesize\ttfamily def pycal.\+weather.\+Weather.\+west\+\_\+wind (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}
+
+\begin{DoxyVerb}10-meter eastward wind [m/s].
+
+Eastward wind at the observing site 10 meters above ground
+at the preset time and for the preset realization.\end{DoxyVerb}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/home/algebrato/\+Progetti/\+C\+M\+B4\+G/libcal/src/pycal/weather.\+py\end{DoxyCompactItemize}
diff --git a/docs/latex/classpycal_1_1weather_1_1_weather__coll__graph.md5 b/docs/latex/classpycal_1_1weather_1_1_weather__coll__graph.md5
new file mode 100644
index 00000000..4c31a36d
--- /dev/null
+++ b/docs/latex/classpycal_1_1weather_1_1_weather__coll__graph.md5
@@ -0,0 +1 @@
+0275a6f5b2d85f4bdf7f4a37e4daeea5
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1weather_1_1_weather__coll__graph.pdf b/docs/latex/classpycal_1_1weather_1_1_weather__coll__graph.pdf
new file mode 100644
index 00000000..13be7d30
Binary files /dev/null and b/docs/latex/classpycal_1_1weather_1_1_weather__coll__graph.pdf differ
diff --git a/docs/latex/classpycal_1_1weather_1_1_weather__inherit__graph.md5 b/docs/latex/classpycal_1_1weather_1_1_weather__inherit__graph.md5
new file mode 100644
index 00000000..4c31a36d
--- /dev/null
+++ b/docs/latex/classpycal_1_1weather_1_1_weather__inherit__graph.md5
@@ -0,0 +1 @@
+0275a6f5b2d85f4bdf7f4a37e4daeea5
\ No newline at end of file
diff --git a/docs/latex/classpycal_1_1weather_1_1_weather__inherit__graph.pdf b/docs/latex/classpycal_1_1weather_1_1_weather__inherit__graph.pdf
new file mode 100644
index 00000000..13be7d30
Binary files /dev/null and b/docs/latex/classpycal_1_1weather_1_1_weather__inherit__graph.pdf differ
diff --git a/doc/latex/classr123_1_1_micro_u_r_n_g.tex b/docs/latex/classr123_1_1_micro_u_r_n_g.tex
similarity index 100%
rename from doc/latex/classr123_1_1_micro_u_r_n_g.tex
rename to docs/latex/classr123_1_1_micro_u_r_n_g.tex
diff --git a/doc/latex/doxygen.sty b/docs/latex/doxygen.sty
similarity index 100%
rename from doc/latex/doxygen.sty
rename to docs/latex/doxygen.sty
diff --git a/docs/latex/hierarchy.tex b/docs/latex/hierarchy.tex
new file mode 100644
index 00000000..794a03b7
--- /dev/null
+++ b/docs/latex/hierarchy.tex
@@ -0,0 +1,73 @@
+\doxysection{Class Hierarchy}
+This inheritance list is sorted roughly, but not completely, alphabetically\+:\begin{DoxyCompactList}
+\item \contentsline{section}{cal\+::Aligned\+Allocator$<$ T $>$}{\pageref{classcal_1_1_aligned_allocator}}{}
+\item \contentsline{section}{cal\+::atm\+\_\+sim}{\pageref{classcal_1_1atm__sim}}{}
+\item \contentsline{section}{r123\+::Engine$<$ C\+B\+R\+NG $>$}{\pageref{structr123_1_1_engine}}{}
+\item \contentsline{section}{cal\+::Environment}{\pageref{classcal_1_1_environment}}{}
+\item \contentsline{section}{cal\+::Global\+Timers}{\pageref{classcal_1_1_global_timers}}{}
+\item \contentsline{section}{cal\+::Logger}{\pageref{classcal_1_1_logger}}{}
+\item \contentsline{section}{r123\+::make\+\_\+signed$<$ T $>$}{\pageref{structr123_1_1make__signed}}{}
+\item \contentsline{section}{r123\+::make\+\_\+unsigned$<$ T $>$}{\pageref{structr123_1_1make__unsigned}}{}
+\item \contentsline{section}{r123\+::Micro\+U\+R\+NG$<$ C\+B\+R\+NG $>$}{\pageref{classr123_1_1_micro_u_r_n_g}}{}
+\item \contentsline{section}{cal\+::mpi\+\_\+atm\+\_\+sim}{\pageref{classcal_1_1mpi__atm__sim}}{}
+\item \contentsline{section}{cal\+::mpi\+\_\+shmem$<$ T $>$}{\pageref{classcal_1_1mpi__shmem}}{}
+\item object\begin{DoxyCompactList}
+\item \contentsline{section}{pycal.\+cache.\+Cache}{\pageref{classpycal_1_1cache_1_1_cache}}{}
+\item \contentsline{section}{pycal.\+dist.\+Data}{\pageref{classpycal_1_1dist_1_1_data}}{}
+\item \contentsline{section}{pycal.\+mpi.\+Comm}{\pageref{classpycal_1_1mpi_1_1_comm}}{}
+\item \contentsline{section}{pycal.\+mpi.\+M\+P\+I\+Lock}{\pageref{classpycal_1_1mpi_1_1_m_p_i_lock}}{}
+\item \contentsline{section}{pycal.\+mpi.\+M\+P\+I\+Shared}{\pageref{classpycal_1_1mpi_1_1_m_p_i_shared}}{}
+\item \contentsline{section}{pycal.\+op.\+Operator}{\pageref{classpycal_1_1op_1_1_operator}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{pycal.\+todmap.\+sim\+\_\+det\+\_\+atm.\+Op\+Sim\+Atmosphere}{\pageref{classpycal_1_1todmap_1_1sim__det__atm_1_1_op_sim_atmosphere}}{}
+\end{DoxyCompactList}
+\item \contentsline{section}{pycal.\+tests.\+mpi.\+\_\+\+Writeln\+Decorator}{\pageref{classpycal_1_1tests_1_1mpi_1_1___writeln_decorator}}{}
+\item \contentsline{section}{pycal.\+tests.\+mpi.\+M\+P\+I\+Test\+Runner}{\pageref{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_runner}}{}
+\item \contentsline{section}{pycal.\+weather.\+Weather}{\pageref{classpycal_1_1weather_1_1_weather}}{}
+\end{DoxyCompactList}
+\item \contentsline{section}{cal\+::Aligned\+Allocator$<$ T $>$\+::rebind$<$ U $>$}{\pageref{structcal_1_1_aligned_allocator_1_1rebind}}{}
+\item \contentsline{section}{r123\+::Reinterpret\+Ctr$<$ To\+Type, C\+B\+R\+NG $>$}{\pageref{structr123_1_1_reinterpret_ctr}}{}
+\item \contentsline{section}{cal\+::Timer}{\pageref{classcal_1_1_timer}}{}
+\item M\+P\+I\+Test\+Case\begin{DoxyCompactList}
+\item \contentsline{section}{pycal.\+tests.\+ops\+\_\+mapmaker.\+Op\+Map\+Maker\+Test}{\pageref{classpycal_1_1tests_1_1ops__mapmaker_1_1_op_map_maker_test}}{}
+\end{DoxyCompactList}
+\item Test\+Case\begin{DoxyCompactList}
+\item \contentsline{section}{pycal.\+tests.\+mpi.\+M\+P\+I\+Test\+Case}{\pageref{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_case}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{pycal.\+tests.\+binned.\+Binned\+Test}{\pageref{classpycal_1_1tests_1_1binned_1_1_binned_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+cache.\+Cache\+Test}{\pageref{classpycal_1_1tests_1_1cache_1_1_cache_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+cov.\+Covariance\+Test}{\pageref{classpycal_1_1tests_1_1cov_1_1_covariance_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+dist.\+Data\+Test}{\pageref{classpycal_1_1tests_1_1dist_1_1_data_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+env.\+Env\+Test}{\pageref{classpycal_1_1tests_1_1env_1_1_env_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+fft.\+F\+F\+T\+Test}{\pageref{classpycal_1_1tests_1_1fft_1_1_f_f_t_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+healpix.\+Healpix\+Test}{\pageref{classpycal_1_1tests_1_1healpix_1_1_healpix_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+intervals.\+Interval\+Test}{\pageref{classpycal_1_1tests_1_1intervals_1_1_interval_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+map\+\_\+ground.\+Map\+Ground\+Test}{\pageref{classpycal_1_1tests_1_1map__ground_1_1_map_ground_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+map\+\_\+satellite.\+Map\+Satellite\+Test}{\pageref{classpycal_1_1tests_1_1map__satellite_1_1_map_satellite_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+ops\+\_\+applygain.\+Test\+Apply\+Gain}{\pageref{classpycal_1_1tests_1_1ops__applygain_1_1_test_apply_gain}}{}
+\item \contentsline{section}{pycal.\+tests.\+ops\+\_\+dipole.\+Op\+Sim\+Dipole\+Test}{\pageref{classpycal_1_1tests_1_1ops__dipole_1_1_op_sim_dipole_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+ops\+\_\+gainscrambler.\+Op\+Gain\+Scrambler\+Test}{\pageref{classpycal_1_1tests_1_1ops__gainscrambler_1_1_op_gain_scrambler_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+ops\+\_\+groundfilter.\+Op\+Ground\+Filter\+Test}{\pageref{classpycal_1_1tests_1_1ops__groundfilter_1_1_op_ground_filter_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+ops\+\_\+madam.\+Op\+Madam\+Test}{\pageref{classpycal_1_1tests_1_1ops__madam_1_1_op_madam_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+ops\+\_\+memorycounter.\+Op\+Memory\+Counter\+Test}{\pageref{classpycal_1_1tests_1_1ops__memorycounter_1_1_op_memory_counter_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+ops\+\_\+pmat.\+Op\+Pointing\+Hpix\+Test}{\pageref{classpycal_1_1tests_1_1ops__pmat_1_1_op_pointing_hpix_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+ops\+\_\+polyfilter.\+Op\+Poly\+Filter\+Test}{\pageref{classpycal_1_1tests_1_1ops__polyfilter_1_1_op_poly_filter_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+ops\+\_\+sim\+\_\+atm.\+Ops\+Sim\+Atmosphere\+Test}{\pageref{classpycal_1_1tests_1_1ops__sim__atm_1_1_ops_sim_atmosphere_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+ops\+\_\+sim\+\_\+pysm.\+Op\+Sim\+Py\+S\+M\+Test}{\pageref{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+ops\+\_\+sim\+\_\+pysm.\+Op\+Sim\+Py\+S\+M\+Test\+Smooth}{\pageref{classpycal_1_1tests_1_1ops__sim__pysm_1_1_op_sim_py_s_m_test_smooth}}{}
+\item \contentsline{section}{pycal.\+tests.\+ops\+\_\+sim\+\_\+sss.\+Op\+Sim\+Scan\+Synchronous\+Signal\+Test}{\pageref{classpycal_1_1tests_1_1ops__sim__sss_1_1_op_sim_scan_synchronous_signal_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+ops\+\_\+simnoise.\+Op\+Sim\+Noise\+Test}{\pageref{classpycal_1_1tests_1_1ops__simnoise_1_1_op_sim_noise_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+psd\+\_\+math.\+P\+S\+D\+Test}{\pageref{classpycal_1_1tests_1_1psd__math_1_1_p_s_d_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+qarray.\+Qarray\+Test}{\pageref{classpycal_1_1tests_1_1qarray_1_1_qarray_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+rng.\+R\+N\+G\+Test}{\pageref{classpycal_1_1tests_1_1rng_1_1_r_n_g_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+sim\+\_\+focalplane.\+Sim\+Focalplane\+Test}{\pageref{classpycal_1_1tests_1_1sim__focalplane_1_1_sim_focalplane_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+tidas.\+Tidas\+Test}{\pageref{classpycal_1_1tests_1_1tidas_1_1_tidas_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+timing.\+Timing\+Test}{\pageref{classpycal_1_1tests_1_1timing_1_1_timing_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+tod.\+T\+O\+D\+Test}{\pageref{classpycal_1_1tests_1_1tod_1_1_t_o_d_test}}{}
+\item \contentsline{section}{pycal.\+tests.\+tod\+\_\+satellite.\+T\+O\+D\+Satellite\+Test}{\pageref{classpycal_1_1tests_1_1tod__satellite_1_1_t_o_d_satellite_test}}{}
+\end{DoxyCompactList}
+\end{DoxyCompactList}
+\item Test\+Result\begin{DoxyCompactList}
+\item \contentsline{section}{pycal.\+tests.\+mpi.\+M\+P\+I\+Test\+Result}{\pageref{classpycal_1_1tests_1_1mpi_1_1_m_p_i_test_result}}{}
+\end{DoxyCompactList}
+\end{DoxyCompactList}
diff --git a/doc/latex/index.tex b/docs/latex/index.tex
similarity index 100%
rename from doc/latex/index.tex
rename to docs/latex/index.tex
diff --git a/doc/latex/inle.png b/docs/latex/inle.png
similarity index 100%
rename from doc/latex/inle.png
rename to docs/latex/inle.png
diff --git a/doc/latex/longtable_doxygen.sty b/docs/latex/longtable_doxygen.sty
similarity index 100%
rename from doc/latex/longtable_doxygen.sty
rename to docs/latex/longtable_doxygen.sty
diff --git a/docs/latex/md__home_algebrato__progetti__c_m_b4_g_libcal_src_pycal_tests__r_e_a_d_m_e.tex b/docs/latex/md__home_algebrato__progetti__c_m_b4_g_libcal_src_pycal_tests__r_e_a_d_m_e.tex
new file mode 100644
index 00000000..26bf0b2d
--- /dev/null
+++ b/docs/latex/md__home_algebrato__progetti__c_m_b4_g_libcal_src_pycal_tests__r_e_a_d_m_e.tex
@@ -0,0 +1,7 @@
+\hypertarget{md__home_algebrato__progetti__c_m_b4_g_libcal_src_pycal_tests__r_e_a_d_m_e_autotoc_md1}{}\doxysection{How to add a new test}\label{md__home_algebrato__progetti__c_m_b4_g_libcal_src_pycal_tests__r_e_a_d_m_e_autotoc_md1}
+
+\begin{DoxyItemize}
+\item Create a new file in this folder
+\item Add the file to {\ttfamily Makefile.\+am} in this folder
+\item Import the package at the top of {\ttfamily runner.\+py} and load it below
+\end{DoxyItemize}
\ No newline at end of file
diff --git a/doc/latex/namespaceatm.tex b/docs/latex/namespaceatm.tex
similarity index 100%
rename from doc/latex/namespaceatm.tex
rename to docs/latex/namespaceatm.tex
diff --git a/doc/latex/namespacecal.tex b/docs/latex/namespacecal.tex
similarity index 100%
rename from doc/latex/namespacecal.tex
rename to docs/latex/namespacecal.tex
diff --git a/doc/latex/namespacer123.tex b/docs/latex/namespacer123.tex
similarity index 100%
rename from doc/latex/namespacer123.tex
rename to docs/latex/namespacer123.tex
diff --git a/doc/latex/namespaces.tex b/docs/latex/namespaces.tex
similarity index 100%
rename from doc/latex/namespaces.tex
rename to docs/latex/namespaces.tex
diff --git a/doc/latex/porting.tex b/docs/latex/porting.tex
similarity index 100%
rename from doc/latex/porting.tex
rename to docs/latex/porting.tex
diff --git a/doc/latex/refman.tex b/docs/latex/refman.tex
similarity index 100%
rename from doc/latex/refman.tex
rename to docs/latex/refman.tex
diff --git a/doc/latex/structcal_1_1_aligned_allocator_1_1rebind.tex b/docs/latex/structcal_1_1_aligned_allocator_1_1rebind.tex
similarity index 100%
rename from doc/latex/structcal_1_1_aligned_allocator_1_1rebind.tex
rename to docs/latex/structcal_1_1_aligned_allocator_1_1rebind.tex
diff --git a/doc/latex/structr123_1_1_engine.tex b/docs/latex/structr123_1_1_engine.tex
similarity index 100%
rename from doc/latex/structr123_1_1_engine.tex
rename to docs/latex/structr123_1_1_engine.tex
diff --git a/doc/latex/structr123_1_1_reinterpret_ctr.tex b/docs/latex/structr123_1_1_reinterpret_ctr.tex
similarity index 100%
rename from doc/latex/structr123_1_1_reinterpret_ctr.tex
rename to docs/latex/structr123_1_1_reinterpret_ctr.tex
diff --git a/doc/latex/structr123_1_1make__signed.tex b/docs/latex/structr123_1_1make__signed.tex
similarity index 100%
rename from doc/latex/structr123_1_1make__signed.tex
rename to docs/latex/structr123_1_1make__signed.tex
diff --git a/doc/latex/structr123_1_1make__unsigned.tex b/docs/latex/structr123_1_1make__unsigned.tex
similarity index 100%
rename from doc/latex/structr123_1_1make__unsigned.tex
rename to docs/latex/structr123_1_1make__unsigned.tex
diff --git a/doc/latex/tabu_doxygen.sty b/docs/latex/tabu_doxygen.sty
similarity index 100%
rename from doc/latex/tabu_doxygen.sty
rename to docs/latex/tabu_doxygen.sty
diff --git a/docs/presentation/ASI.png b/docs/presentation/ASI.png
new file mode 100755
index 00000000..9bd12f8a
Binary files /dev/null and b/docs/presentation/ASI.png differ
diff --git a/docs/presentation/Abs_Coef.jpg b/docs/presentation/Abs_Coef.jpg
new file mode 100755
index 00000000..4c5e0579
Binary files /dev/null and b/docs/presentation/Abs_Coef.jpg differ
diff --git a/docs/presentation/Atmosphere.png b/docs/presentation/Atmosphere.png
new file mode 100755
index 00000000..fdbd1ae2
Binary files /dev/null and b/docs/presentation/Atmosphere.png differ
diff --git a/docs/presentation/Atmospheric_effects.aux b/docs/presentation/Atmospheric_effects.aux
new file mode 100644
index 00000000..b6fcccb8
--- /dev/null
+++ b/docs/presentation/Atmospheric_effects.aux
@@ -0,0 +1,69 @@
+\relax
+\providecommand\hyper@newdestlabel[2]{}
+\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
+\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
+\global\let\oldcontentsline\contentsline
+\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global\let\oldnewlabel\newlabel
+\gdef\newlabel#1#2{\newlabelxx{#1}#2}
+\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\ifx\hyper@anchor\@undefined
+\let\contentsline\oldcontentsline
+\let\newlabel\oldnewlabel
+\fi}
+\fi}
+\global\let\hyper@last\relax
+\gdef\HyperFirstAtBeginDocument#1{#1}
+\providecommand\HyField@AuxAddToFields[1]{}
+\providecommand\HyField@AuxAddToCoFields[2]{}
+\@writefile{nav}{\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {1}{1}}}
+\@writefile{nav}{\headcommand {\slideentry {0}{0}{2}{2/2}{}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {2}{2}}}
+\@writefile{toc}{\beamer@sectionintoc {1}{Introduction}{3}{0}{1}}
+\@writefile{nav}{\headcommand {\beamer@sectionpages {1}{2}}}
+\@writefile{nav}{\headcommand {\beamer@subsectionpages {1}{2}}}
+\@writefile{nav}{\headcommand {\sectionentry {1}{Introduction}{3}{Introduction}{0}}}
+\@writefile{nav}{\headcommand {\slideentry {1}{0}{1}{3/10}{}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {3}{10}}}
+\@writefile{toc}{\beamer@sectionintoc {2}{The Model}{11}{0}{2}}
+\@writefile{nav}{\headcommand {\beamer@sectionpages {3}{10}}}
+\@writefile{nav}{\headcommand {\beamer@subsectionpages {3}{10}}}
+\@writefile{nav}{\headcommand {\sectionentry {2}{The Model}{11}{The Model}{0}}}
+\@writefile{nav}{\headcommand {\slideentry {2}{0}{1}{11/15}{}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {11}{15}}}
+\@writefile{nav}{\headcommand {\slideentry {2}{0}{2}{16/17}{}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {16}{17}}}
+\@writefile{nav}{\headcommand {\slideentry {2}{0}{3}{18/21}{}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {18}{21}}}
+\@writefile{nav}{\headcommand {\slideentry {2}{0}{4}{22/31}{}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {22}{31}}}
+\@writefile{nav}{\headcommand {\slideentry {2}{0}{5}{32/37}{}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {32}{37}}}
+\@writefile{nav}{\headcommand {\slideentry {2}{0}{6}{38/39}{}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {38}{39}}}
+\@writefile{nav}{\headcommand {\slideentry {2}{0}{7}{40/45}{}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {40}{45}}}
+\@writefile{nav}{\headcommand {\slideentry {2}{0}{8}{46/46}{}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {46}{46}}}
+\@writefile{nav}{\headcommand {\slideentry {2}{0}{9}{47/47}{}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {47}{47}}}
+\@writefile{nav}{\headcommand {\slideentry {2}{0}{10}{48/48}{}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {48}{48}}}
+\@writefile{toc}{\beamer@sectionintoc {3}{Implementation}{49}{0}{3}}
+\@writefile{nav}{\headcommand {\beamer@sectionpages {11}{48}}}
+\@writefile{nav}{\headcommand {\beamer@subsectionpages {11}{48}}}
+\@writefile{nav}{\headcommand {\sectionentry {3}{Implementation}{49}{Implementation}{0}}}
+\@writefile{nav}{\headcommand {\slideentry {3}{0}{1}{49/49}{}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {49}{49}}}
+\@writefile{toc}{\beamer@sectionintoc {4}{Parameters}{50}{0}{4}}
+\@writefile{nav}{\headcommand {\beamer@sectionpages {49}{49}}}
+\@writefile{nav}{\headcommand {\beamer@subsectionpages {49}{49}}}
+\@writefile{nav}{\headcommand {\sectionentry {4}{Parameters}{50}{Parameters}{0}}}
+\@writefile{nav}{\headcommand {\slideentry {4}{0}{1}{50/50}{}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {50}{50}}}
+\@writefile{nav}{\headcommand {\beamer@partpages {1}{50}}}
+\@writefile{nav}{\headcommand {\beamer@subsectionpages {50}{50}}}
+\@writefile{nav}{\headcommand {\beamer@sectionpages {50}{50}}}
+\@writefile{nav}{\headcommand {\beamer@documentpages {50}}}
+\@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {15}}}
diff --git a/docs/presentation/Atmospheric_effects.bbl b/docs/presentation/Atmospheric_effects.bbl
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/presentation/Atmospheric_effects.blg b/docs/presentation/Atmospheric_effects.blg
new file mode 100644
index 00000000..e1af80c8
--- /dev/null
+++ b/docs/presentation/Atmospheric_effects.blg
@@ -0,0 +1,48 @@
+This is BibTeX, Version 0.99d (TeX Live 2020/Debian)
+Capacity: max_strings=200000, hash_size=200000, hash_prime=170003
+The top-level auxiliary file: Atmospheric_effects.aux
+I found no \citation commands---while reading file Atmospheric_effects.aux
+I found no \bibdata command---while reading file Atmospheric_effects.aux
+I found no \bibstyle command---while reading file Atmospheric_effects.aux
+You've used 0 entries,
+ 0 wiz_defined-function locations,
+ 83 strings with 512 characters,
+and the built_in function-call counts, 0 in all, are:
+= -- 0
+> -- 0
+< -- 0
++ -- 0
+- -- 0
+* -- 0
+:= -- 0
+add.period$ -- 0
+call.type$ -- 0
+change.case$ -- 0
+chr.to.int$ -- 0
+cite$ -- 0
+duplicate$ -- 0
+empty$ -- 0
+format.name$ -- 0
+if$ -- 0
+int.to.chr$ -- 0
+int.to.str$ -- 0
+missing$ -- 0
+newline$ -- 0
+num.names$ -- 0
+pop$ -- 0
+preamble$ -- 0
+purify$ -- 0
+quote$ -- 0
+skip$ -- 0
+stack$ -- 0
+substring$ -- 0
+swap$ -- 0
+text.length$ -- 0
+text.prefix$ -- 0
+top$ -- 0
+type$ -- 0
+warning$ -- 0
+while$ -- 0
+width$ -- 0
+write$ -- 0
+(There were 3 error messages)
diff --git a/docs/presentation/Atmospheric_effects.log b/docs/presentation/Atmospheric_effects.log
new file mode 100644
index 00000000..3400cb82
--- /dev/null
+++ b/docs/presentation/Atmospheric_effects.log
@@ -0,0 +1,1505 @@
+This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian) (preloaded format=pdflatex 2020.6.10) 24 JUN 2020 13:24
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**Atmospheric_effects.tex
+(./Atmospheric_effects.tex
+LaTeX2e <2020-02-02> patch level 5
+L3 programming layer <2020-05-15>
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamer.cls
+Document Class: beamer 2020/05/06 v3.58 A class for typesetting presentations
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasemodes.sty
+(/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty
+Package: etoolbox 2019/09/21 v2.5h e-TeX tools for LaTeX (JAW)
+\etb@tempcnta=\count167
+)
+\beamer@tempbox=\box45
+\beamer@tempcount=\count168
+\c@beamerpauses=\count169
+
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasedecode.sty
+\beamer@slideinframe=\count170
+\beamer@minimum=\count171
+\beamer@decode@box=\box46
+)
+\beamer@commentbox=\box47
+\beamer@modecount=\count172
+)
+(/usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty
+Package: ifpdf 2019/10/25 v3.4 ifpdf legacy package. Use iftex instead.
+
+(/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
+Package: iftex 2020/03/06 v1.0d TeX engine tests
+))
+\headdp=\dimen134
+\footheight=\dimen135
+\sidebarheight=\dimen136
+\beamer@tempdim=\dimen137
+\beamer@finalheight=\dimen138
+\beamer@animht=\dimen139
+\beamer@animdp=\dimen140
+\beamer@animwd=\dimen141
+\beamer@leftmargin=\dimen142
+\beamer@rightmargin=\dimen143
+\beamer@leftsidebar=\dimen144
+\beamer@rightsidebar=\dimen145
+\beamer@boxsize=\dimen146
+\beamer@vboxoffset=\dimen147
+\beamer@descdefault=\dimen148
+\beamer@descriptionwidth=\dimen149
+\beamer@lastskip=\skip47
+\beamer@areabox=\box48
+\beamer@animcurrent=\box49
+\beamer@animshowbox=\box50
+\beamer@sectionbox=\box51
+\beamer@logobox=\box52
+\beamer@linebox=\box53
+\beamer@sectioncount=\count173
+\beamer@subsubsectionmax=\count174
+\beamer@subsectionmax=\count175
+\beamer@sectionmax=\count176
+\beamer@totalheads=\count177
+\beamer@headcounter=\count178
+\beamer@partstartpage=\count179
+\beamer@sectionstartpage=\count180
+\beamer@subsectionstartpage=\count181
+\beamer@animationtempa=\count182
+\beamer@animationtempb=\count183
+\beamer@xpos=\count184
+\beamer@ypos=\count185
+\beamer@ypos@offset=\count186
+\beamer@showpartnumber=\count187
+\beamer@currentsubsection=\count188
+\beamer@coveringdepth=\count189
+\beamer@sectionadjust=\count190
+\beamer@tocsectionnumber=\count191
+
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseoptions.sty
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks15
+))
+\beamer@paperwidth=\skip48
+\beamer@paperheight=\skip49
+
+(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
+Package: geometry 2020/01/02 v5.9 Page Geometry
+
+(/usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty
+Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead.
+)
+\Gm@cnth=\count192
+\Gm@cntv=\count193
+\c@Gm@tempcnt=\count194
+\Gm@bindingoffset=\dimen150
+\Gm@wd@mp=\dimen151
+\Gm@odd@mp=\dimen152
+\Gm@even@mp=\dimen153
+\Gm@layoutwidth=\dimen154
+\Gm@layoutheight=\dimen155
+\Gm@layouthoffset=\dimen156
+\Gm@layoutvoffset=\dimen157
+\Gm@dimlist=\toks16
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo
+File: size11.clo 2019/12/20 v1.4l Standard LaTeX file (size option)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
+Package: graphicx 2019/11/30 v1.2a Enhanced LaTeX Graphics (DPC,SPQR)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
+Package: graphics 2019/11/30 v1.4a Standard LaTeX Graphics (DPC,SPQR)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
+Package: trig 2016/01/03 v1.10 sin cos tan (DPC)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
+File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
+)
+Package graphics Info: Driver file: pdftex.def on input line 105.
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
+File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex
+))
+\Gin@req@height=\dimen158
+\Gin@req@width=\dimen159
+)
+(/usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
+(/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex
+\pgfutil@everybye=\toks17
+\pgfutil@tempdima=\dimen160
+\pgfutil@tempdimb=\dimen161
+
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.t
+ex)) (/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def
+\pgfutil@abb=\box54
+(/usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty
+Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS)
+))
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex)
+Package: pgfrcs 2020/01/08 v3.1.5b (3.1.5b)
+))
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
+Package: pgfsys 2020/01/08 v3.1.5b (3.1.5b)
+
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
+\pgfkeys@pathtoks=\toks18
+\pgfkeys@temptoks=\toks19
+
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.t
+ex
+\pgfkeys@tmptoks=\toks20
+))
+\pgf@x=\dimen162
+\pgf@y=\dimen163
+\pgf@xa=\dimen164
+\pgf@ya=\dimen165
+\pgf@xb=\dimen166
+\pgf@yb=\dimen167
+\pgf@xc=\dimen168
+\pgf@yc=\dimen169
+\pgf@xd=\dimen170
+\pgf@yd=\dimen171
+\w@pgf@writea=\write3
+\r@pgf@reada=\read2
+\c@pgf@counta=\count195
+\c@pgf@countb=\count196
+\c@pgf@countc=\count197
+\c@pgf@countd=\count198
+\t@pgf@toka=\toks21
+\t@pgf@tokb=\toks22
+\t@pgf@tokc=\toks23
+\pgf@sys@id@count=\count199
+ (/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg
+File: pgf.cfg 2020/01/08 v3.1.5b (3.1.5b)
+)
+Driver file for pgf: pgfsys-pdftex.def
+
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def
+File: pgfsys-pdftex.def 2020/01/08 v3.1.5b (3.1.5b)
+
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.de
+f
+File: pgfsys-common-pdf.def 2020/01/08 v3.1.5b (3.1.5b)
+)))
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.
+tex
+File: pgfsyssoftpath.code.tex 2020/01/08 v3.1.5b (3.1.5b)
+\pgfsyssoftpath@smallbuffer@items=\count266
+\pgfsyssoftpath@bigbuffer@items=\count267
+)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.
+tex
+File: pgfsysprotocol.code.tex 2020/01/08 v3.1.5b (3.1.5b)
+)) (/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
+File: color.cfg 2016/01/02 v1.6 sample color configuration
+)
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352.
+Package xcolor Info: Model `RGB' extended on input line 1364.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex
+Package: pgfcore 2020/01/08 v3.1.5b (3.1.5b)
+
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex
+\pgfmath@dimen=\dimen172
+\pgfmath@count=\count268
+\pgfmath@box=\box55
+\pgfmath@toks=\toks24
+\pgfmath@stack@operand=\toks25
+\pgfmath@stack@operation=\toks26
+)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code
+.tex)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonomet
+ric.code.tex)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.cod
+e.tex)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison
+.code.tex)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.
+tex)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code
+.tex)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.
+tex)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerari
+thmetics.code.tex)))
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex
+\c@pgfmathroundto@lastzeros=\count269
+))
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfint.code.tex)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.te
+x
+File: pgfcorepoints.code.tex 2020/01/08 v3.1.5b (3.1.5b)
+\pgf@picminx=\dimen173
+\pgf@picmaxx=\dimen174
+\pgf@picminy=\dimen175
+\pgf@picmaxy=\dimen176
+\pgf@pathminx=\dimen177
+\pgf@pathmaxx=\dimen178
+\pgf@pathminy=\dimen179
+\pgf@pathmaxy=\dimen180
+\pgf@xx=\dimen181
+\pgf@xy=\dimen182
+\pgf@yx=\dimen183
+\pgf@yy=\dimen184
+\pgf@zx=\dimen185
+\pgf@zy=\dimen186
+)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.
+code.tex
+File: pgfcorepathconstruct.code.tex 2020/01/08 v3.1.5b (3.1.5b)
+\pgf@path@lastx=\dimen187
+\pgf@path@lasty=\dimen188
+)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code
+.tex
+File: pgfcorepathusage.code.tex 2020/01/08 v3.1.5b (3.1.5b)
+\pgf@shorten@end@additional=\dimen189
+\pgf@shorten@start@additional=\dimen190
+)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.te
+x
+File: pgfcorescopes.code.tex 2020/01/08 v3.1.5b (3.1.5b)
+\pgfpic=\box56
+\pgf@hbox=\box57
+\pgf@layerbox@main=\box58
+\pgf@picture@serial@count=\count270
+)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.c
+ode.tex
+File: pgfcoregraphicstate.code.tex 2020/01/08 v3.1.5b (3.1.5b)
+\pgflinewidth=\dimen191
+)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformation
+s.code.tex
+File: pgfcoretransformations.code.tex 2020/01/08 v3.1.5b (3.1.5b)
+\pgf@pt@x=\dimen192
+\pgf@pt@y=\dimen193
+\pgf@pt@temp=\dimen194
+)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex
+File: pgfcorequick.code.tex 2020/01/08 v3.1.5b (3.1.5b)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.t
+ex
+File: pgfcoreobjects.code.tex 2020/01/08 v3.1.5b (3.1.5b)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing
+.code.tex
+File: pgfcorepathprocessing.code.tex 2020/01/08 v3.1.5b (3.1.5b)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.te
+x
+File: pgfcorearrows.code.tex 2020/01/08 v3.1.5b (3.1.5b)
+\pgfarrowsep=\dimen195
+)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex
+File: pgfcoreshade.code.tex 2020/01/08 v3.1.5b (3.1.5b)
+\pgf@max=\dimen196
+\pgf@sys@shading@range@num=\count271
+\pgf@shadingcount=\count272
+)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex
+File: pgfcoreimage.code.tex 2020/01/08 v3.1.5b (3.1.5b)
+
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.
+tex
+File: pgfcoreexternal.code.tex 2020/01/08 v3.1.5b (3.1.5b)
+\pgfexternal@startupbox=\box59
+))
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.te
+x
+File: pgfcorelayers.code.tex 2020/01/08 v3.1.5b (3.1.5b)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.c
+ode.tex
+File: pgfcoretransparency.code.tex 2020/01/08 v3.1.5b (3.1.5b)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.
+tex
+File: pgfcorepatterns.code.tex 2020/01/08 v3.1.5b (3.1.5b)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex
+File: pgfcorerdf.code.tex 2020/01/08 v3.1.5b (3.1.5b)
+))) (/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/xxcolor.sty
+Package: xxcolor 2003/10/24 ver 0.1
+\XC@nummixins=\count273
+\XC@countmixins=\count274
+)
+(/usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
+Package: atbegshi 2019/12/05 v1.19 At begin shipout hook (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
+Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
+Package: ltxcmds 2019/12/15 v1.24 LaTeX kernel commands for general use (HO)
+))
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2020-05-15 v7.00e Hypertext links for LaTeX
+
+(/usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty
+Package: pdftexcmds 2019/11/24 v0.31 Utility functions of pdfTeX for LuaTeX (HO
+)
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty
+Package: kvsetkeys 2019/12/15 v1.18 Key value parser (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
+Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
+Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
+Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
+Package: letltxmacro 2019/12/03 v1.6 Let assignment for LaTeX macros (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
+Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
+Package: kvoptions 2019/11/29 v3.13 Key value format for package options (HO)
+)
+\@linkdim=\dimen197
+\Hy@linkcounter=\count275
+\Hy@pagecounter=\count276
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2020-05-15 v7.00e Hyperref: PDFDocEncoding definition (HO)
+Now handling font encoding PD1 ...
+... no UTF-8 mapping file for font encoding PD1
+)
+(/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
+Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
+Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO)
+)
+\Hy@SavedSpaceFactor=\count277
+Package hyperref Info: Option `bookmarks' set `true' on input line 4338.
+Package hyperref Info: Option `bookmarksopen' set `true' on input line 4338.
+Package hyperref Info: Option `implicit' set `false' on input line 4338.
+Package hyperref Info: Hyper figures OFF on input line 4464.
+Package hyperref Info: Link nesting OFF on input line 4469.
+Package hyperref Info: Hyper index ON on input line 4472.
+Package hyperref Info: Plain pages OFF on input line 4479.
+Package hyperref Info: Backreferencing OFF on input line 4484.
+Package hyperref Info: Implicit mode OFF; no redefinition of LaTeX internals.
+Package hyperref Info: Bookmarks ON on input line 4717.
+\c@Hy@tempcnt=\count278
+
+(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip16
+Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
+)
+LaTeX Info: Redefining \url on input line 5076.
+\XeTeXLinkMargin=\dimen198
+
+(/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
+Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
+Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO
+)
+))
+\Fld@menulength=\count279
+\Field@Width=\dimen199
+\Fld@charsize=\dimen256
+Package hyperref Info: Hyper figures OFF on input line 6347.
+Package hyperref Info: Link nesting OFF on input line 6352.
+Package hyperref Info: Hyper index ON on input line 6355.
+Package hyperref Info: backreferencing OFF on input line 6362.
+Package hyperref Info: Link coloring OFF on input line 6367.
+Package hyperref Info: Link coloring with OCG OFF on input line 6372.
+Package hyperref Info: PDF/A mode OFF on input line 6377.
+LaTeX Info: Redefining \ref on input line 6417.
+LaTeX Info: Redefining \pageref on input line 6421.
+\Hy@abspage=\count280
+
+
+Package hyperref Message: Stopped early.
+
+)
+Package hyperref Info: Driver (autodetected): hpdftex.
+ (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2020-05-15 v7.00e Hyperref driver for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
+Package: atveryend 2019-12-11 v1.11 Hooks at the very end of document (HO)
+)
+\Fld@listcount=\count281
+\c@bookmark@seq@number=\count282
+
+(/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
+Package: rerunfilecheck 2019/12/05 v1.9 Rerun checks for auxiliary files (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
+Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO)
+)
+Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
+86.
+))
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaserequires.sty
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasecompatibility.sty)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasefont.sty
+(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty
+Package: amssymb 2013/01/14 v3.01 AMS font symbols
+
+(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty
+Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
+\@emptytoks=\toks27
+\symAMSa=\mathgroup4
+\symAMSb=\mathgroup5
+LaTeX Font Info: Redeclaring math symbol \hbar on input line 98.
+LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
+(Font) U/euf/m/n --> U/euf/b/n on input line 106.
+))
+(/usr/share/texlive/texmf-dist/tex/latex/sansmathaccent/sansmathaccent.sty
+Package: sansmathaccent 2020/01/31
+
+(/usr/share/texlive/texmf-dist/tex/latex/koma-script/scrlfile.sty
+Package: scrlfile 2020/04/19 v3.30 KOMA-Script package (loading files)
+)))
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasetranslator.sty
+(/usr/share/texlive/texmf-dist/tex/latex/translator/translator.sty
+Package: translator 2019-05-31 v1.12a Easy translation of strings in LaTeX
+))
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasemisc.sty)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasetwoscreens.sty)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseoverlay.sty
+\beamer@argscount=\count283
+\beamer@lastskipcover=\skip50
+\beamer@trivlistdepth=\count284
+)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasetitle.sty)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasesection.sty
+\c@lecture=\count285
+\c@part=\count286
+\c@section=\count287
+\c@subsection=\count288
+\c@subsubsection=\count289
+)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseframe.sty
+\beamer@framebox=\box60
+\beamer@frametitlebox=\box61
+\beamer@zoombox=\box62
+\beamer@zoomcount=\count290
+\beamer@zoomframecount=\count291
+\beamer@frametextheight=\dimen257
+\c@subsectionslide=\count292
+\beamer@frametopskip=\skip51
+\beamer@framebottomskip=\skip52
+\beamer@frametopskipautobreak=\skip53
+\beamer@framebottomskipautobreak=\skip54
+\beamer@envbody=\toks28
+\framewidth=\dimen258
+\c@framenumber=\count293
+)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseverbatim.sty
+\beamer@verbatimfileout=\write4
+)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseframesize.sty
+\beamer@splitbox=\box63
+\beamer@autobreakcount=\count294
+\beamer@autobreaklastheight=\dimen259
+\beamer@frametitletoks=\toks29
+\beamer@framesubtitletoks=\toks30
+)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseframecomponents.sty
+\beamer@footins=\box64
+)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasecolor.sty)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasenotes.sty
+\beamer@frameboxcopy=\box65
+)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasetoc.sty)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasetemplates.sty
+\beamer@sbttoks=\toks31
+
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseauxtemplates.sty
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaseboxes.sty
+\bmb@box=\box66
+\bmb@colorbox=\box67
+\bmb@boxshadow=\box68
+\bmb@boxshadowball=\box69
+\bmb@boxshadowballlarge=\box70
+\bmb@temp=\dimen260
+\bmb@dima=\dimen261
+\bmb@dimb=\dimen262
+\bmb@prevheight=\dimen263
+)
+\beamer@blockheadheight=\dimen264
+))
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbaselocalstructure.sty
+(/usr/share/texlive/texmf-dist/tex/latex/tools/enumerate.sty
+Package: enumerate 2015/07/23 v3.00 enumerate extensions (DPC)
+\@enLab=\toks32
+)
+\c@figure=\count295
+\c@table=\count296
+\abovecaptionskip=\skip55
+\belowcaptionskip=\skip56
+)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasenavigation.sty
+\beamer@section@min@dim=\dimen265
+)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasetheorems.sty
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty
+Package: amsmath 2020/01/20 v2.17e AMS math features
+\@mathmargin=\skip57
+
+For additional information on amsmath, use the `?' option.
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty
+Package: amstext 2000/06/29 v2.01 AMS text
+
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty
+File: amsgen.sty 1999/11/30 v2.0 generic functions
+\@emptytoks=\toks33
+\ex@=\dimen266
+))
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty
+Package: amsbsy 1999/11/29 v1.2d Bold Symbols
+\pmbraise@=\dimen267
+)
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty
+Package: amsopn 2016/03/08 v2.02 operator names
+)
+\inf@bad=\count297
+LaTeX Info: Redefining \frac on input line 227.
+\uproot@=\count298
+\leftroot@=\count299
+LaTeX Info: Redefining \overline on input line 389.
+\classnum@=\count300
+\DOTSCASE@=\count301
+LaTeX Info: Redefining \ldots on input line 486.
+LaTeX Info: Redefining \dots on input line 489.
+LaTeX Info: Redefining \cdots on input line 610.
+\Mathstrutbox@=\box71
+\strutbox@=\box72
+\big@size=\dimen268
+LaTeX Font Info: Redeclaring font encoding OML on input line 733.
+LaTeX Font Info: Redeclaring font encoding OMS on input line 734.
+\macc@depth=\count302
+\c@MaxMatrixCols=\count303
+\dotsspace@=\muskip17
+\c@parentequation=\count304
+\dspbrk@lvl=\count305
+\tag@help=\toks34
+\row@=\count306
+\column@=\count307
+\maxfields@=\count308
+\andhelp@=\toks35
+\eqnshift@=\dimen269
+\alignsep@=\dimen270
+\tagshift@=\dimen271
+\tagwidth@=\dimen272
+\totwidth@=\dimen273
+\lineht@=\dimen274
+\@envbody=\toks36
+\multlinegap=\skip58
+\multlinetaggap=\skip59
+\mathdisplay@stack=\toks37
+LaTeX Info: Redefining \[ on input line 2859.
+LaTeX Info: Redefining \] on input line 2860.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty
+Package: amsthm 2017/10/31 v2.20.4
+\thm@style=\toks38
+\thm@bodyfont=\toks39
+\thm@headfont=\toks40
+\thm@notefont=\toks41
+\thm@headpunct=\toks42
+\thm@preskip=\skip60
+\thm@postskip=\skip61
+\thm@headsep=\skip62
+\dth@everypar=\toks43
+)
+\c@theorem=\count309
+)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerbasethemes.sty))
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerthemedefault.sty
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerfontthemedefault.sty)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamercolorthemedefault.sty)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerinnerthemedefault.sty
+\beamer@dima=\dimen275
+\beamer@dimb=\dimen276
+)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerouterthemedefault.sty)))
+(/usr/share/texlive/texmf-dist/tex/latex/cancel/cancel.sty
+Package: cancel 2013/04/12 v2.2 Cancel math terms
+)
+(/usr/share/texlive/texmf-dist/tex/generic/systeme/systeme.sty
+(/usr/share/texlive/texmf-dist/tex/generic/xstring/xstring.sty
+(/usr/share/texlive/texmf-dist/tex/generic/xstring/xstring.tex
+\integerpart=\count310
+\decimalpart=\count311
+)
+Package: xstring 2019/02/06 v1.83 String manipulations (CT)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/systeme/systeme.tex
+\SYS_systemecode=\toks44
+\SYS_systempreamble=\toks45
+\SYSeqnum=\count312
+)
+Package: systeme 2020/05/03 v0.34 Mise en forme de systemes d'equations (CT)
+)
+
+Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
+(hyperref) removing `\\' on input line 7.
+
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerthemeMadrid.sty
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamercolorthemewhale.sty)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamercolorthemeorchid.sty)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerinnerthemerounded.sty)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerouterthemeinfolines.sty))
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamerouterthemesidebar.sty
+\beamer@sidebarwidth=\dimen277
+\beamer@headheight=\dimen278
+)
+(/usr/share/texlive/texmf-dist/tex/latex/beamer/beamercolorthemebeetle.sty)
+(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def
+File: l3backend-pdfmode.def 2020-05-05 L3 backend support: PDF mode
+\l__kernel_color_stack_int=\count313
+\l__pdf_internal_box=\box73
+)
+(./Atmospheric_effects.aux)
+\openout1 = `Atmospheric_effects.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 42.
+LaTeX Font Info: ... okay on input line 42.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 42.
+LaTeX Font Info: ... okay on input line 42.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 42.
+LaTeX Font Info: ... okay on input line 42.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 42.
+LaTeX Font Info: ... okay on input line 42.
+LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 42.
+LaTeX Font Info: ... okay on input line 42.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 42.
+LaTeX Font Info: ... okay on input line 42.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 42.
+LaTeX Font Info: ... okay on input line 42.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 42.
+LaTeX Font Info: ... okay on input line 42.
+
+*geometry* driver: auto-detecting
+*geometry* detected driver: pdftex
+*geometry* verbose mode - [ preamble ] result:
+* driver: pdftex
+* paper: custom
+* layout:
+* layoutoffset:(h,v)=(0.0pt,0.0pt)
+* modes: includehead includefoot
+* h-part:(L,W,R)=(59.22636pt, 381.79135pt, 14.22636pt)
+* v-part:(T,H,B)=(0.0pt, 256.0748pt, 0.0pt)
+* \paperwidth=455.24408pt
+* \paperheight=256.0748pt
+* \textwidth=381.79135pt
+* \textheight=227.62207pt
+* \oddsidemargin=-13.04362pt
+* \evensidemargin=-13.04362pt
+* \topmargin=-72.26999pt
+* \headheight=14.22636pt
+* \headsep=0.0pt
+* \topskip=11.0pt
+* \footskip=14.22636pt
+* \marginparwidth=4.0pt
+* \marginparsep=10.0pt
+* \columnsep=10.0pt
+* \skip\footins=10.0pt plus 4.0pt minus 2.0pt
+* \hoffset=0.0pt
+* \voffset=0.0pt
+* \mag=1000
+* \@twocolumnfalse
+* \@twosidefalse
+* \@mparswitchfalse
+* \@reversemarginfalse
+* (1in=72.27pt=25.4mm, 1cm=28.453pt)
+
+(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count314
+\scratchdimen=\dimen279
+\scratchbox=\box74
+\nofMPsegments=\count315
+\nofMParguments=\count316
+\everyMPshowfont=\toks46
+\MPscratchCnt=\count317
+\MPscratchDim=\dimen280
+\MPnumerator=\count318
+\makeMPintoPDFobject=\count319
+\everyMPtoPDFconversion=\toks47
+) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
+Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
+Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
+85.
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
+File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
+e
+))
+ABD: EveryShipout initializing macros
+\AtBeginShipoutBox=\box75
+Package hyperref Info: Link coloring OFF on input line 42.
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
+Package: nameref 2019/09/16 v2.46 Cross-referencing by name of section
+
+(/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
+Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
+Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO)
+)
+\c@section@level=\count320
+)
+LaTeX Info: Redefining \ref on input line 42.
+LaTeX Info: Redefining \pageref on input line 42.
+LaTeX Info: Redefining \nameref on input line 42.
+
+(./Atmospheric_effects.out) (./Atmospheric_effects.out)
+\@outlinefile=\write5
+\openout5 = `Atmospheric_effects.out'.
+
+LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
+(Font) OT1/cmr/m/n --> OT1/cmss/m/n on input line 42.
+LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/cmss/b/n on input line 42.
+\symnumbers=\mathgroup6
+\sympureletters=\mathgroup7
+LaTeX Font Info: Overwriting math alphabet `\mathrm' in version `normal'
+(Font) OT1/cmss/m/n --> OT1/cmr/m/n on input line 42.
+LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 42.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal'
+(Font) OT1/cmr/bx/n --> OT1/cmss/b/n on input line 42.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/cmss/b/n on input line 42.
+LaTeX Font Info: Redeclaring math alphabet \mathsf on input line 42.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal'
+(Font) OT1/cmss/m/n --> OT1/cmss/m/n on input line 42.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold'
+(Font) OT1/cmss/bx/n --> OT1/cmss/m/n on input line 42.
+LaTeX Font Info: Redeclaring math alphabet \mathit on input line 42.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal'
+(Font) OT1/cmr/m/it --> OT1/cmss/m/it on input line 42.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
+(Font) OT1/cmr/bx/it --> OT1/cmss/m/it on input line 42.
+LaTeX Font Info: Redeclaring math alphabet \mathtt on input line 42.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal'
+(Font) OT1/cmtt/m/n --> OT1/cmtt/m/n on input line 42.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold'
+(Font) OT1/cmtt/m/n --> OT1/cmtt/m/n on input line 42.
+LaTeX Font Info: Overwriting symbol font `numbers' in version `bold'
+(Font) OT1/cmss/m/n --> OT1/cmss/b/n on input line 42.
+LaTeX Font Info: Overwriting symbol font `pureletters' in version `bold'
+(Font) OT1/cmss/m/it --> OT1/cmss/b/it on input line 42.
+LaTeX Font Info: Overwriting math alphabet `\mathrm' in version `bold'
+(Font) OT1/cmss/b/n --> OT1/cmr/b/n on input line 42.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold'
+(Font) OT1/cmss/b/n --> OT1/cmss/b/n on input line 42.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold'
+(Font) OT1/cmss/m/n --> OT1/cmss/b/n on input line 42.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
+(Font) OT1/cmss/m/it --> OT1/cmss/b/it on input line 42.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold'
+(Font) OT1/cmtt/m/n --> OT1/cmtt/b/n on input line 42.
+LaTeX Font Info: Redeclaring symbol font `pureletters' on input line 42.
+LaTeX Font Info: Overwriting symbol font `pureletters' in version `normal'
+(Font) OT1/cmss/m/it --> OT1/mathkerncmss/m/sl on input line 4
+2.
+LaTeX Font Info: Overwriting symbol font `pureletters' in version `bold'
+(Font) OT1/cmss/b/it --> OT1/mathkerncmss/m/sl on input line 4
+2.
+LaTeX Font Info: Overwriting symbol font `pureletters' in version `bold'
+(Font) OT1/mathkerncmss/m/sl --> OT1/mathkerncmss/bx/sl on inp
+ut line 42.
+
+(/usr/share/texlive/texmf-dist/tex/latex/translator/translator-basic-dictionary
+-English.dict
+Dictionary: translator-basic-dictionary, Language: English
+)
+(/usr/share/texlive/texmf-dist/tex/latex/translator/translator-bibliography-dic
+tionary-English.dict
+Dictionary: translator-bibliography-dictionary, Language: English
+)
+(/usr/share/texlive/texmf-dist/tex/latex/translator/translator-environment-dict
+ionary-English.dict
+Dictionary: translator-environment-dictionary, Language: English
+)
+(/usr/share/texlive/texmf-dist/tex/latex/translator/translator-months-dictionar
+y-English.dict
+Dictionary: translator-months-dictionary, Language: English
+)
+(/usr/share/texlive/texmf-dist/tex/latex/translator/translator-numbers-dictiona
+ry-English.dict
+Dictionary: translator-numbers-dictionary, Language: English
+)
+(/usr/share/texlive/texmf-dist/tex/latex/translator/translator-theorem-dictiona
+ry-English.dict
+Dictionary: translator-theorem-dictionary, Language: English
+) (./Atmospheric_effects.nav)
+
+File: ASI.png Graphic file (type png)
+