From 90cff236be35628f447ded4d98a046d5c4e3b316 Mon Sep 17 00:00:00 2001 From: Kris Thielemans Date: Tue, 14 May 2024 22:13:56 +0100 Subject: [PATCH] update to 6.1 and minor doc improvements --- CMakeLists.txt | 4 ++-- VERSION.txt | 2 +- documentation/STIR-UsersGuide.tex | 5 +++-- documentation/STIR-developers-overview.tex | 20 +++++++++++++------- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ba37282df..2511aa596 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,9 +54,9 @@ endif() ####### Set Version number etc set(VERSION_MAJOR 6) -set(VERSION_MINOR 0) +set(VERSION_MINOR 1) set(VERSION_PATCH 0) -set(VERSION 060000) # only used in STIRConfig.h.in and swig/CMakeLists.txt +set(VERSION 060100) # only used in STIRConfig.h.in and swig/CMakeLists.txt set(STIR_VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}) diff --git a/VERSION.txt b/VERSION.txt index 09b254e90..dfda3e0b4 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -6.0.0 +6.1.0 diff --git a/documentation/STIR-UsersGuide.tex b/documentation/STIR-UsersGuide.tex index fd404074a..975d03d00 100644 --- a/documentation/STIR-UsersGuide.tex +++ b/documentation/STIR-UsersGuide.tex @@ -44,7 +44,7 @@ \\[3cm] \textbf{{\huge User's Guide\\ - Version 6.0}} + Version 6.1}} \end{center} \end{spacing} @@ -444,7 +444,8 @@ \subsubsection{ { \subsubsubsection{Cygwin on Windows} } -\textit{Cygwin support has not been tested since about 2018 but likely still works. Instructions below might be out-of-date though.} +\textit{Cygwin support has not been tested since about 2018 but likely still works. Instructions below are likely out-of-date though. +We highly recommend to use WSL instead.} If you are using Windows but would like to have nearly everything that Linux/Unix has to offer, Cygwin could help. Check out http://cygwin.com. diff --git a/documentation/STIR-developers-overview.tex b/documentation/STIR-developers-overview.tex index 85e07a3ce..9297a938a 100644 --- a/documentation/STIR-developers-overview.tex +++ b/documentation/STIR-developers-overview.tex @@ -60,8 +60,8 @@ \section{ doxygen on the source files that come in the STIR distribution). \subsection{Language support} -STIR is written in C++ and currently requires C++-11, but it is compatible with newer versions of the C++ standard. -We will enforce C++-14 from STIR 6.0. +STIR is written in C++ and currently requires C++-14, but it is compatible with newer versions of the C++ standard. +We will enforce C++-16 from STIR 6.2. Python and MATLAB support is provided via \R2Lurl{http://www.swig.org/}{SWIG}. This means that Python/MATLAB interfaces follow the C++ classes closely, although some differences are required as these languages do not support templates for instance. @@ -170,8 +170,8 @@ \subsection{ view. \end{itemize} -Note that in STIR version 6.0, Time-of-Flight (TOF) will be supported. This introduces another -index. However, \texttt{Sinogram} and \texttt{Viewgram} will remain 2D objects, and \texttt{Segment*} 3D. +Note that since STIR version 6.0, Time-of-Flight (TOF) is supported. This introduces another +index. However, \texttt{Sinogram} and \texttt{Viewgram} remain 2D objects, and \texttt{Segment*} 3D. This will also be the case once we have layers and energy windows. In STIR 5.2, we have therefore introduced new classes \texttt{SinogramIndices}, \texttt{ViewgramIndices}\footnote{Replacing \texttt{ViewSegmentNumbers} in previous versions of STIR.} @@ -897,7 +897,7 @@ \subsubsection{ \end{itemize} -At the moment, we have three derived classes: +At the moment, we have the following derived classes: \begin{itemize} \item \texttt{ProjMatrixByBinUsingRayTracing} uses essentially the same @@ -916,6 +916,10 @@ \subsubsection{ part of the projection matrix needs to be stored. Our current implementation does not yet provide a very compact format for storing the elements (although they are of course stored sparsely). +\item +\texttt{ProjMatrixByBinSPECTUB} is for parallel hole SPECT +\item +\texttt{ProjMatrixByBinPinholeSPECTUB} is for multi-pinhole SPECT \end{itemize} \begin{figure}[htbp] @@ -956,8 +960,10 @@ \subsection{Objective functions} that is computed is generally not the gradient of the log-likelihood that corresponds to the forward projector. However, one hopes that it still points towards the optimum. -The corresponding objective function is implemented in the class\\ -\texttt{PoissonLogLikelihoodWithLinearModelForMeanAndProjData}. +The corresponding objective function is implemented in the classes\\ +\texttt{PoissonLogLikelihoodWithLinearModelForMeanAndProjData} for +projection data and \texttt{PoissonLogLikelihoodWithLinearModelForMeanAndListModeDataWithProjMatrixByBin} +for list-mode data. There are classes for dynamic and gated data as well. There can be different objective function that use common operations. For instance, the objective function could implement a least squares