Commit 063d82ef authored by gsell's avatar gsell
Browse files

repo reorganization

parents

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.
This diff is collapsed.
cmake_minimum_required(VERSION 2.6)
set (CMAKE_CXX_FLAGS_RELEASE "-g -O2")
set (CMAKE_CXX_FLAGS_DEBUG "-g -O2")
#find_package (MPI REQUIRED)
set (CMAKE_CXX_COMPILER ${MPI_COMPILER})
project(IPPL CXX Fortran)
set (IPPL_VERSION_MAJOR 1)
set (IPPL_VERSION_MINOR 0)
option (LINUXGCC "Use Linux GCC flags" ON)
option (XT3GCC "Use XT3 GCC flags" OFF)
option (LINUXPGI "Use Linux PGI flags" OFF)
ENABLE_LANGUAGE(Fortran)
#set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeModules")
#find_package (HDF5 REQUIRED)
set (PACKAGE \"ippl\")
set (PACKAGE_BUGREPORT \"andreas.adelmann@psi.ch\")
set (PACKAGE_NAME \"IPPL\")
set (PACKAGE_STRING \"IPPL\ 1.0\")
set (PACKAGE_TARNAME \"ippl\")
set (PACKAGE_VERSION \"1.0\")
set (VERSION \"1.0\")
set (IPPLCOMMON
"-DIPPL_MPI -DMPICH_SKIP_MPICXX -DIPPL_GCC -DIPPL_DONT_POOL -DIPPL_USE_XDIV_RNG -DIPPL_NO_STRINGSTREAM -DPETE_BITWISE_COPY -DIPPL_HAS_TEMPLATED_COMPLEX -DIPPL_USE_STANDARD_HEADERS -DIPPL_USE_PARTIAL_SPECIALIZATION -DIPPL_STDSTL -DIPPL_LONGLONG -DWITH_BRICK -DnoCOMP_GNUOLD -Drestrict=__restrict__ -DNOCTAssert"
)
set (IPPLLINUXGCC
"-DIPPL_DEBUG -DIPPL_LINUX -DIPPL_STRINGSTREAM"
)
set (IPPLLINUXGCCF
"-w -DIPPL_DEBUG -DIPPL_LINUX -DIPPL_STRINGSTREAM"
)
set (IPPLXT3GCC
"-DIPPL_XT3 -DIPPL_DEBUG -DIPPL_LINUX -DIPPL_STRINGSTREAM"
)
set (IPPLXT3PGI
"-O3 -w -DIPPLProf -DIPPL_GPLUSPLUS -DIPPL_XT3 -DMPICH_IGNORE_CXX_SEEK"
)
set (IPPLLINUXPGI
"-DIPPLProf -DIPPL_GPLUSPLUS -DMPICH_IGNORE_CXX_SEEK -DIPPL_LINUX "
)
IF (LINUXGCC)
MESSAGE("Linux GCC flags set")
set (IPPL_CMAKE_CXX_FLAGS
"${IPPLLINUXGCC} ${IPPLCOMMON}"
)
set (OTHER_CMAKE_CXX_FLAGS
"-Wall -ftemplate-depth-80 -funroll-loops -fstrict-aliasing "
)
set (IPPL_VERSION_NAME \"V1.0 01-2007 Linux GNU\")
# compiler dependent flags
STRING(REGEX REPLACE ".*/([A-Za-z]*)$" "\\1" COMPILER_NAME ${CMAKE_CXX_COMPILER})
MESSAGE("Your compiler is: ${COMPILER_NAME}")
IF ("${COMPILER_NAME}" STREQUAL "mpicxx")
SET(MPI_UNDERLYING_COMPILER
"")
EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} -show
OUTPUT_VARIABLE MPI_COMPILER_OUTPUT
ERROR_VARIABLE MPI_COMPILER_ERROR)
IF("${MPI_COMPILER_ERROR}" STREQUAL "")
STRING(REGEX REPLACE "([A-Za-z]*) .*$" "\\1" MPI_UNDERLYING_COMPILER ${MPI_COMPILER_OUTPUT})
ENDIF("${MPI_COMPILER_ERROR}" STREQUAL "")
IF("${MPI_UNDERLYING_COMPILER}" STREQUAL "icpc")
# using intel compiler
MESSAGE("The underlying compiler of ${COMPILER_NAME} is: icpc")
SET (OTHER_CMAKE_CXX_FLAGS
"-diag-disable 383 -diag-disable 981 ${OTHER_CMAKE_CXX_FLAGS}")
ELSEIF("${MPI_UNDERLYING_COMPILER}" STREQUAL "clang++")
# using clang compiler
MESSAGE("The underlying compiler of ${COMPILER_NAME} is: clang++")
SET (OTHER_CMAKE_CXX_FLAGS
"-Wsign-compare -Wunused-variable -Warray-bounds -DIPPL_RESTRICT_BUG ${OTHER_CMAKE_CXX_FLAGS}")
ELSEIF("${MPI_UNDERLYING_COMPILER}" STREQUAL "g++")
# using gnu compiler
MESSAGE("The underlying compiler of ${COMPILER_NAME} is: g++")
ELSE("${MPI_UNDERLYING_COMPILER}" STREQUAL "icpc")
# using unknown compiler
MESSAGE("${COMPILER_NAME} is using a compiler (${MPI_UNDERLYING_COMPILER}) we were not thinking of!
Please use the gnu compiler or the intel compiler if you are having problems.")
ENDIF("${MPI_UNDERLYING_COMPILER}" STREQUAL "icpc")
ELSE ("${COMPILER_NAME}" STREQUAL "mpicxx")
# using unknown mpi implementation
MESSAGE("You are using an unsupported MPI compiler: ${COMPILER_NAME}!
Please use the OpenMPI or MPICH if you are having problems.")
ENDIF ("${COMPILER_NAME}" STREQUAL "mpicxx")
ENDIF (LINUXGCC)
IF (XT3GCC)
MESSAGE("XT3 GCC flags set")
set (IPPL_CMAKE_CXX_FLAGS
"${IPPLXT3GCC} ${IPPLCOMMON}"
)
set (OTHER_CMAKE_CXX_FLAGS
"-Wall -Wno-deprecated -ftemplate-depth-80 -funroll-loops -fstrict-aliasing -g -O3 "
)
set (IPPL_VERSION_NAME \"V1.0 01-2007 XT3 GNU\")
ENDIF (XT3GCC)
IF (LINUXPGI)
MESSAGE("Linux PGI flags set")
set (IPPL_CMAKE_CXX_FLAGS
"${IPPLLINUXPGI} ${IPPLCOMMON}"
)
set (OTHER_CMAKE_CXX_FLAGS
"-O3 -w "
)
set (IPPL_VERSION_NAME \"V1.0 01-2007 Linux PGI\")
ENDIF (LINUXPGI)
set (CMAKE_CXX_FLAGS
"${OTHER_CMAKE_CXX_FLAGS} ${IPPL_CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS}"
)
add_subdirectory (src)
add_subdirectory (test)
CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config_install.cmake )
INSTALL(
FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config_install.cmake
DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/${PROJECT_NAME}"
RENAME ${PROJECT_NAME}Config.cmake
)
# Doxyfile 1.3.8
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = IPPL
PROJECT_NUMBER = V1.0
OUTPUT_DIRECTORY = ./doc
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
USE_WINDOWS_ENCODING = NO
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class" \
"The $name widget" \
"The $name file" \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH = /dshome/adelmann/svnwork/ippl/
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = NO
INHERIT_DOCS = YES
DISTRIBUTE_GROUP_DOC = NO
TAB_SIZE = 8
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
SUBGROUPING = YES
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = NO
EXTRACT_STATIC = NO
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = NO
HIDE_UNDOC_MEMBERS = YES
HIDE_UNDOC_CLASSES = YES
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = /dshome/adelmann/svnwork/ippl/src
FILE_PATTERNS = *.c \
*.cc \
*.cxx \
*.cpp \
*.c++ \
*.h \
*.hh \
*.C \
*.CC \
*.C++ \
*.H \
*.HH
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES = YES
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = YES
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
UML_LOOK = NO
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = YES
GRAPHICAL_HIERARCHY = YES
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024
MAX_DOT_GRAPH_HEIGHT = 1024
MAX_DOT_GRAPH_DEPTH = 1000
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO
# HDF5 ---------------------------------------------------------------------
export H5HOME=~/svnwork/hdf5inst
# end HDF5 -----------------------------------------------------------------
# IPL ----------------------------------------------------------------------
export IPL_ARCH=LINUX
export IPL_ROOT=~/svnwork/ipl
# EXPDE end ----------------------------------------------------------------
# GenTrackE start ----------------------------------------------------------
export GTHOME=~/svnwork/gte
export GTCLASSIC=~/svnwork/classic/3.3/src
# GenTrackE end ------------------------------------------------------------
# CMEE start ---------------------------------------------------------------
export CMEEHOME=~/svnwork/cmee-1.1
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CMEEHOME/src/.libs
# CMEE end -----------------------------------------------------------------
export CXX=$HOME/mpich/bin/mpicxx
export CC=$HOME/mpich/bin/mpicc
export F77=$HOME/mpich/bin/mpif77
export MYMPIRUN=$HOME/mpich/bin/mpirun
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/dshome/adelmann/svnwork/hdf5inst/lib
# HDF5 ---------------------------------------------------------------------
export H5HOME=/usr/common/usg/hdf5/1.6.3/parallel
# end HDF5 -----------------------------------------------------------------
# IPL ----------------------------------------------------------------------
export IPL_ARCH=LINUX
export IPL_ROOT=~/svnwork/ipl
# EXPDE end ----------------------------------------------------------------
# GenTrackE start ----------------------------------------------------------
export GTHOME=~/svnwork/gte
export GTCLASSIC=~/svnwork/classic/3.3/src
# GenTrackE end ------------------------------------------------------------
export CXX=mpicxx
export CC=mpicc
export F77=mpif77
export MYMPIRUN=mpiexec
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/common/homes/a/adelmann/svnwork/gsl/lib
# IPPL ----------------------------------------------------------------------
export IPPL_ARCH=LINUX
export IPPL_ROOT=/home/adelmann/svnwork/ippl
# EXPDE end ----------------------------------------------------------------
export CXX=mpic++
export CC=mpicc
export F77=mpif77
export MYMPIRUN=mpirun
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$H5HOME/install/lib
source /home/adelmann/svnwork/femaXX/install_3pl/config_maxwell
export FEMAXX_PREFIX=/home/adelmann/svnwork/femaXX
# IPPL ----------------------------------------------------------------------
export IPPL_ARCH=LINUX-SER
export IPPL_ROOT=~/svnwork/ippl
# EXPDE end ----------------------------------------------------------------
export CXX=g++ #$HOME/install/mpich/bin/mpicxx
export CC=gcc #$HOME/install/mpich/bin/mpicc
export F77=g77 #$HOME/install/mpich/bin/mpif77
#export CXX=$HOME/install/mpich/bin/mpicxx
#export CC=$HOME/install/mpich/bin/mpicc
#export F77=$HOME/install/mpich/bin/mpif77
export MYMPIRUN=mpirun
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$H5HOME/install/lib
# IPPL ----------------------------------------------------------------------
export IPPL_ARCH=XT3
export IPPL_ROOT=~/svnwork/ippl
# EXPDE end ----------------------------------------------------------------
module load craypat
module load gcc-catamount
module load pgi/6.0.5
module load xt-lustre-ss
export MPICH_CXX=~roberto/CSCS/MAD9P_GNU/qk-g++
export CXX=CC
export CPP=cc
export F77=ftn
export MYMPIRUN=yod
#export IOBUF_PARAMS='%stdout,dataH5.dat'
#export IOBUF_PARAMS='*:verbose'
#export IOBUF_VERBOSE=1
# IPPL ----------------------------------------------------------------------
export IPPL_ARCH=LINUX
export IPPL_ROOT=~adelmann/svnwork/ippl
# EXPDE end ----------------------------------------------------------------
export CXX=mpicxx
export CC=mpicc
export F77=mpif77
export MYMPIRUN=mpirun
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$H5HOME/install/lib
###########################################################################
#
# The IPPL Framework
#
# Visit http://amas.web.psi.ch for more details.
#
###########################################################################
<install instructions>
0) NEED H5Part installed, check http://amas.web.psi.ch/
1) Check if in ./ENV a setup script for your architecture/machine exists
1.1) if YES execoute the script
source ENV/merlin3-Linux.bash
1.2) if NO set the following environment variables:
# IPPL ----------------------------------------------------------------------
export IPPL_ARCH=LINUX
export IPPL_ROOT=~/svnwork/ippl
# IPPL end ----------------------------------------------------------------
export CXX=mpicxx
export CC=mpicc
export F77=mpif77
export MYMPIRUN=mpirun
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$H5HOME/install/lib
2) Generate configure and finally make ippl
Change --libdir accordingly
cd src
mkdir -p con
aclocal
autoconf
automake -a -c
make clean
./configure --with-ippl-linuxgcc --libdir=/home2/adelmann/svnwork/ippl/lib/LINUX CC=mpicc CXX=mpicxx F77=mpif77 --no-create --no-recursion
/***************************************************************************
* $RCSfile: INSTALL,v $ $Author: adelmann $
* $Revision: 1.1.1.1 $ $Date: 2003/01/23 07:40:17 $
* IPPL_VERSION_ID: $Id: INSTALL,v 1.1.1.1 2003/01/23 07:40:17 adelmann Exp $
***************************************************************************/
###########################################################################
#
# The IPPL Framework
#
#
# Visit http://amas.web.psi.ch for more details
#
###########################################################################
<License info here>
/***************************************************************************
* $RCSfile: LICENSE,v $ $Author: adelmann $
* $Revision: 1.1.1.1 $ $Date: 2003/01/23 07:40:17 $
* IPPL_VERSION_ID: $Id: LICENSE,v 1.1.1.1 2003/01/23 07:40:17 adelmann Exp $
***************************************************************************/
###########################################################################
#
# The IPPL Framework
#
# Visit http://people.web.psi.ch/adelmann/ for more details
#
###########################################################################
This is the main directory for version 1.0 of the IPPL FrameWork.
The FrameWork makes heavy use of template, so, although it is
necessary to first form libippl.a with the Makefile produced by the
configuration script, template instantiations are made mostly during
the building of your actual application. We are currently working on
mechanisms to automate this process or "pre-instantiate" your needed
template code. Examples will be provided in forthcomming versions.
The IPPL library is compiled by generating a master Makefile using
the configure script. To execute this script, type "conf" in the
ippl directory followed by the architecture you wish to compile on
and any options you prefer. The options include the communications
library (if any) you wish to use, optimization level, utilization of
netCDF, and inclusion of a graphics library. Typing "conf" with no
options will print out a listing of the available options. This
script uses perl, and has been developed mostly on SGI platform
utilizing the KCC compiler from Kuck and Associates. The FrameWork now
runs with other compilers and a full list of compatible compilers and
platforms will be available shortly.
In order to compile the FrameWork, you need to set two environment
variables: IPPL_ROOT and IPPL_ARCH. IPPL_ROOT should be the full
path name of where the ippl directory resides, such as
setenv IPPL_ROOT /users/smith/develop/ippl
likewise, the IPPL_ARCH variable should be set to the architecture
for which you are compiling the FrameWork, such as
setenv IPPL_ARCH SGI64 ( IRIX 6.2 systems)
the architecture names are provided by running conf with no variables.
The configure script will execute "makedepend", which determines the
include file dependencies of all the source files and writes them into
the Makefile. The Makefile is created in a subdirectory inside the
/lib directory that is named after the architecture you have chosen to
compile for (e.g., /lib/SGI64). If the Makefile produced by conf fails,
you may have to edit the settings of the macros in conf, such as the
library paths, to suite your specific site.
Once conf is finished, go down to the subdirectory named after your
architecture (such as /lib/SGI64) and type make, the Makefile there
will compile the IPPL library and produces a libippl.a to be linked
in with all your applications. An example Makefile.app is also placed
in the directory in which you wish to build ippl applications - it is
meant as a guide to show how all the necessary libraries are included.
Remember to define the IPPL_ARCH and IPPL_ROOT variables when you
use these Makefiles, they depend upon these environment variable being
set each time you log on.
Changes (Andrea Adelmann, Julian Cummings Oct/Sept. 2002):
New conf switch GCC (for gcc v3.2 and up). Note the GPLUSPLUS is for compiler
gcc version smaller 3.0 like the stable 2.95.3.
New version string: v0-35-2002
Source code changes:
- SubParticleAssign.cpp
typedef typename RHS::Wrapped Wrapped;
// Get the object wrapped in the PETE expression object
// RHS::Wrapped& bb = b.PETE_unwrap();
Wrapped& bb = b.PETE_unwrap();