From 23b508cda327a5d7c8d9aace9a50682754905b67 Mon Sep 17 00:00:00 2001 From: Emmanuel Bertin Date: Wed, 21 Sep 2022 00:55:47 -1000 Subject: [PATCH 1/3] Added support for the icx Intel compiler. --- INSTALL | 20 +++++++-------- configure.ac | 56 ++++++++++++++++++++++++----------------- debian/rules | 2 +- doc/src/conf.py | 6 ++--- m4/acx_mkl.m4 | 10 ++++---- m4/acx_prog_cc_optim.m4 | 8 +++--- 6 files changed, 56 insertions(+), 46 deletions(-) diff --git a/INSTALL b/INSTALL index a325e22..484d480 100644 --- a/INSTALL +++ b/INSTALL @@ -83,18 +83,19 @@ locations: $ ./configure Compared to "gcc" and the librairies above, the combination of the -Intel compiler ("icc") and the MKL (Math Kernel Library) libraries -can give the PSFEx executable a strong boost in performance, -thanks to better vectorized code. If "icc" and the MKL (Math Kernel -Library) are installed on your system [4] , you can take advantage of -those using instead +Intel compiler ("icc" or "icx") and the MKL (Math Kernel Library) +libraries can give the PSFEx executable a significant boost in +performance, thanks to better vectorized code, and reduced memory +usage. If "icc" (or "icx") and the MKL (Math Kernel Library) are +installed on your system [4], you can take advantage of those using +instead $ ./configure --enable-mkl Additionally, if the PSFEx binary is to be run on a different -machine that does not have "icc" and the MKL (Math Kernel Library) -installed (e.g., a cluster computing node), you must configure a -partially statically linked executable using +machine that does not have "icc" (or "icx") and the MKL installed +(e.g., a cluster computing node), you must configure a partially +statically linked executable using $ ./configure --enable-mkl --enable-auto-flags --enable-best-link @@ -126,6 +127,5 @@ path). options "--enable-threads --enable-float". [4] The Linux versions of the Intel compiler and MKL (Math - Kernel Library) are available for free to academic researchers, - students, educators and open source contributors. + Kernel Library) are now available for free on Intel's website. diff --git a/configure.ac b/configure.ac index e06fca2..6706f04 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ # You should have received a copy of the GNU General Public License # along with PSFEx. If not, see . # -# Last modified: 12/01/2022 +# Last modified: 20/09/2022 # #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -31,7 +31,7 @@ define([AC_CACHE_LOAD],) define([AC_CACHE_SAVE],) # This is your standard AstrOmatic source code... -AC_INIT(PSFEx, 3.23.0, [astromatic@astromatic.net], +AC_INIT(PSFEx, 3.24.0, [astromatic@astromatic.net], psfex, [http://astromatic.net/software/psfex]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR(autoconf) @@ -80,24 +80,38 @@ AC_ARG_ENABLE(auto-flags, AC_MSG_RESULT([yes]), AC_MSG_RESULT([no])) -# Provide special option for the Linux Intel C compiler -AC_MSG_CHECKING([whether the INTEL compiler is enabled]) +# Provide special option for the Linux Intel C "classic" compiler +AC_MSG_CHECKING([whether the classic INTEL compiler is enabled]) AC_ARG_ENABLE(icc, [AS_HELP_STRING([--enable-icc], [Use the Intel compiler (default = no)])], CC="icc" + enable_iccx="yes" + AC_MSG_RESULT([yes]), + AC_MSG_RESULT([no])) + +# Provide special option for the Linux Intel OneAPI C compiler +AC_MSG_CHECKING([whether the INTEL compiler is enabled]) +AC_ARG_ENABLE(icx, + [AS_HELP_STRING([--enable-icx], + [Use the Intel compiler (default = no)])], + CC="icx" + enable_iccx="yes" AC_MSG_RESULT([yes]), AC_MSG_RESULT([no])) # Provide special options for INTEL MKL -# We force the use of icc +# We use icc if available, if not Intel OneAPI's icx +# (we don't use AC_PROG_CC as it does not play nice +# in a conditional block) AC_MSG_CHECKING([whether INTEL's MKL is enabled]) AC_ARG_ENABLE(mkl, [AS_HELP_STRING([--enable-mkl], [Use INTEL's MKL for solvers and FFTs (default = no)])], - enable_icc="yes" - CC="icc" - AC_MSG_RESULT([yes]), + AC_MSG_RESULT([yes]) + CC="" + [AC_CHECK_PROGS(CC, [icc icx cc])] + enable_iccx="yes", AC_MSG_RESULT([no])) # Checks for programs. @@ -116,10 +130,10 @@ AC_PROG_INSTALL AC_CHECK_LIB(m, sin) # Checks for header files. -AC_HEADER_STDC AC_CHECK_HEADERS([dlfcn.h fcntl.h limits.h malloc.h stdlib.h string.h \ sys/mman.h sys/types.h unistd.h]) -if test "$enable_icc" = "yes"; then +# Checks for INTEL math header files. +if test "$enable_iccx" = "yes"; then AC_CHECK_HEADERS(mathimf.h) fi @@ -154,8 +168,8 @@ AC_ARG_WITH(atlas-libdir, [AS_HELP_STRING([--with-atlas-libdir=], [Provide an alternative path to the ATLAS library])]) AC_ARG_WITH(atlas-incdir, - [AS_HELP_STRING([--with-atlas-incdir=], - [Provide an alternative path to the ATLAS header directory])]) + [AS_HELP_STRING([--with-atlas-incdir=], + [Provide an alternative path to the ATLAS include directory])]) # Provide special options for FFTW AC_ARG_WITH(fftw-libdir, @@ -227,7 +241,7 @@ AC_ARG_ENABLE(threads, AC_MSG_CHECKING([for profiler mode]) AC_ARG_ENABLE(profiling, [AS_HELP_STRING([--enable-profiling], - [Enable special mode for profiling (default = no)])] + [Enable special mode for profiling (default = no)])], AC_MSG_RESULT([yes]), AC_MSG_RESULT([no])) @@ -250,7 +264,7 @@ if test "$use_pthreads" = "yes"; then ACX_PTHREAD CC="$PTHREAD_CC" [AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS -D_REENTRANT"] - LIBS="$PTHREAD_LIBS $LIBS" + LIBS="$LIBS $PTHREAD_LIBS" fi AM_CONDITIONAL(USE_THREADS, test $use_pthreads = "yes") @@ -258,11 +272,7 @@ AM_CONDITIONAL(USE_THREADS, test $use_pthreads = "yes") if test "$enable_mkl" = "yes"; then convlibs="${srcdir}/../src/wcs/libwcs_c.a,${srcdir}/../src/levmar/liblevmar.a" ACX_MKL($with_mkl_dir,no,$enable_best_link,$convlibs) - AC_MSG_CHECKING([for the INTEL MKL]) - if test "$MKL_WARN" == ""; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) + if test "$MKL_WARN" != ""; then AC_MSG_WARN([$MKL_WARN]) fi AM_CFLAGS="$AM_CFLAGS $MKL_CFLAGS " @@ -323,7 +333,7 @@ AM_CONDITIONAL(USE_PLPLOT, test "$use_plplot" = "yes") # Compile with profiling option if test "$enable_profiling" = "yes"; then - if test "$enable_icc" = "yes"; then + if test "$enable_iccx" = "yes"; then AM_CFLAGS="$AM_CFLAGS -pq" else AM_CFLAGS="$AM_CFLAGS -pg" @@ -333,9 +343,9 @@ fi # "Best" linking option if test "$enable_best_link" = "yes"; then - if test "$enable_icc" = "yes"; then - AM_LDFLAGS="-static-intel -qopenmp-link static -shared-libgcc \ - -static-libtool-libs -no-intel-extensions -avoid-version $AM_LDFLAGS" + if test "$enable_iccx" = "yes"; then + AM_LDFLAGS="-static-intel -qopenmp-link=static -shared-libgcc \ + -static-libtool-libs -avoid-version $AM_LDFLAGS" else AM_LDFLAGS="-shared-libgcc -static-libtool-libs -avoid-version $AM_LDFLAGS" fi diff --git a/debian/rules b/debian/rules index a4e2ad6..2033ae2 100755 --- a/debian/rules +++ b/debian/rules @@ -15,7 +15,7 @@ ifeq ($(USE_BEST),1) dh_auto_configure -- --host=$(DEB_HOST_GNU_TYPE) \ --build=$(DEB_BUILD_GNU_TYPE) \ --prefix=/usr --mandir=\$${prefix}/share/man \ - --enable-icc --enable-mkl \ + --enable-icx --enable-mkl \ --enable-auto-flags --enable-best-link \ --with-release=$(PACKAGE_RELEASE) else diff --git a/doc/src/conf.py b/doc/src/conf.py index 9155a2e..d092972 100644 --- a/doc/src/conf.py +++ b/doc/src/conf.py @@ -63,9 +63,9 @@ # built documents. # # The short X.Y version. -version = '3.23.0' +version = '3.24.0' # The full version, including alpha/beta/rc tags. -release = '3.23.0' +release = '3.24.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -76,7 +76,7 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -today = 'Thu Jan 13 2022' +today = 'Tue Sep 20 2022' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' diff --git a/m4/acx_mkl.m4 b/m4/acx_mkl.m4 index 68c016a..9ae81e8 100644 --- a/m4/acx_mkl.m4 +++ b/m4/acx_mkl.m4 @@ -7,7 +7,7 @@ dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% dnl dnl This file part of: AstrOmatic software dnl -dnl Copyright: (C) 2003-2016 IAP/CNRS/UPMC +dnl Copyright: (C) 2003-2022 IAP/CNRS/SorbonneU dnl dnl License: GNU General Public License dnl @@ -23,7 +23,7 @@ dnl You should have received a copy of the GNU General Public License dnl along with AstrOmatic software. dnl If not, see . dnl -dnl Last modified: 16/03/2016 +dnl Last modified: 15/09/2022 dnl dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% dnl @@ -73,11 +73,11 @@ dnl Set architecture flags dnl ---------------------- dnl check if INTEL compiler is present -icc -V 2>&1 | grep -i "Intel" > /dev/null 2>&1 && flagicc=yes +$CC -V 2>&1 | grep -i "Intel" > /dev/null 2>&1 && flagicc=yes dnl check if INTEL compiler uses x86_64 architecture -icc -V 2>&1 | grep -i "Intel(R) 64" > /dev/null 2>&1 && flag64=yes +$CC -V 2>&1 | grep -i "Intel(R) 64" > /dev/null 2>&1 && flag64=yes dnl check if the platform is OSX -icc -dumpmachine 2>&1 | grep -i "darwin" > /dev/null 2>&1 && flagosx=yes +$CC -dumpmachine 2>&1 | grep -i "darwin" > /dev/null 2>&1 && flagosx=yes dnl ---------------------- dnl Exit if INTEL compiler is not found diff --git a/m4/acx_prog_cc_optim.m4 b/m4/acx_prog_cc_optim.m4 index dff95a1..3b56a7c 100644 --- a/m4/acx_prog_cc_optim.m4 +++ b/m4/acx_prog_cc_optim.m4 @@ -7,7 +7,7 @@ dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% dnl dnl This file part of: AstrOmatic software dnl -dnl Copyright: (C) 2002-2013 Emmanuel Bertin -- IAP/CNRS/UPMC +dnl Copyright: (C) 2002-2022 Emmanuel Bertin -- IAP/CNRS/SorbonneU dnl (C) 2002 Ville Lauriki (original version) dnl dnl Licenses: GPL (this version) @@ -25,7 +25,7 @@ dnl You should have received a copy of the GNU General Public License dnl along with AstrOmatic software. dnl If not, see . dnl -dnl Last modified: 13/03/2013 +dnl Last modified: 07/09/2022 dnl dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% dnl @@ -60,14 +60,14 @@ EOF if $CC -V 2>&1 | grep -i "Intel(R) 64" > /dev/null 2>&1 && $CC -c -O conftest.c > /dev/null 2>&1 && test -f conftest.o; then - prog_cc_optim_cv_flags="-O3 -axSSSE3,SSE4.1,SSE4.2,AVX,CORE-AVX2,CORE-AVX-I -no-prec-div -unroll" + prog_cc_optim_cv_flags="-O3 -axSSSE3,SSE4.1,SSE4.2,AVX,CORE-AVX2,CORE-AVX-I" prog_ld_optim_cv_flags="" dnl INTEL C 32bits compiler elif $CC -V 2>&1 | grep -i "Intel(R)" > /dev/null 2>&1 && $CC -c -O conftest.c > /dev/null 2>&1 && test -f conftest.o; then - prog_cc_optim_cv_flags="-O3 -axSSE2,SSE3,SSE4.1,SSE4.2,AVX,CORE-AVX2,CORE-AVX-I -no-prec-div -unroll" + prog_cc_optim_cv_flags="-O3 -axSSE2,SSE3,SSE4.1,SSE4.2,AVX,CORE-AVX2,CORE-AVX-I" prog_ld_optim_cv_flags="" dnl GCC From 1887a6291a3c78f4006de4a9b613acc40ccfa3c6 Mon Sep 17 00:00:00 2001 From: Emmanuel Bertin Date: Wed, 5 Apr 2023 14:59:46 -1000 Subject: [PATCH 2/3] Update a few items for compatibility with icx. --- configure.ac | 12 ++++++------ doc/src/conf.py | 6 +++--- m4/acx_pthread.m4 | 18 +++++++++--------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/configure.ac b/configure.ac index 6706f04..ea2a150 100644 --- a/configure.ac +++ b/configure.ac @@ -7,7 +7,7 @@ # # This file part of: PSFEx # -# Copyright: (C) 2002-2022 IAP/CNRS/SorbonneU/CFHT +# Copyright: (C) 2002-2023 IAP/CNRS/SorbonneU/CFHT # # License: GNU General Public License # @@ -22,7 +22,7 @@ # You should have received a copy of the GNU General Public License # along with PSFEx. If not, see . # -# Last modified: 20/09/2022 +# Last modified: 05/04/2023 # #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -31,7 +31,7 @@ define([AC_CACHE_LOAD],) define([AC_CACHE_SAVE],) # This is your standard AstrOmatic source code... -AC_INIT(PSFEx, 3.24.0, [astromatic@astromatic.net], +AC_INIT(PSFEx, 3.24.1, [astromatic@astromatic.net], psfex, [http://astromatic.net/software/psfex]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR(autoconf) @@ -50,9 +50,9 @@ AC_SUBST(DATE3, "$date3") # Include macros sinclude(acx_atlas.m4) +sinclude(acx_openblas.m4) sinclude(acx_fftw.m4) sinclude(acx_mkl.m4) -sinclude(acx_openblas.m4) sinclude(acx_plplot.m4) sinclude(acx_prog_cc_optim.m4) sinclude(acx_pthread.m4) @@ -345,9 +345,9 @@ fi if test "$enable_best_link" = "yes"; then if test "$enable_iccx" = "yes"; then AM_LDFLAGS="-static-intel -qopenmp-link=static -shared-libgcc \ - -static-libtool-libs -avoid-version $AM_LDFLAGS" + -avoid-version $AM_LDFLAGS" else - AM_LDFLAGS="-shared-libgcc -static-libtool-libs -avoid-version $AM_LDFLAGS" + AM_LDFLAGS="-shared-libgcc -avoid-version $AM_LDFLAGS" fi fi diff --git a/doc/src/conf.py b/doc/src/conf.py index d092972..aa14bfa 100644 --- a/doc/src/conf.py +++ b/doc/src/conf.py @@ -63,9 +63,9 @@ # built documents. # # The short X.Y version. -version = '3.24.0' +version = '3.24.1' # The full version, including alpha/beta/rc tags. -release = '3.24.0' +release = '3.24.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -76,7 +76,7 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -today = 'Tue Sep 20 2022' +today = 'Wed Apr 05 2023' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' diff --git a/m4/acx_pthread.m4 b/m4/acx_pthread.m4 index 4d60031..0f8695f 100644 --- a/m4/acx_pthread.m4 +++ b/m4/acx_pthread.m4 @@ -7,7 +7,7 @@ dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% dnl dnl This file part of: AstrOmatic software dnl -dnl Copyright: (C) 2002-2010 Emmanuel Bertin -- IAP/CNRS/UPMC +dnl Copyright: (C) 2002-2022 Emmanuel Bertin -- IAP/CNRS/SorbonneU dnl (C) 2001 Steven G. Johnson (original version) dnl dnl Licenses: GPL (this version) @@ -25,7 +25,7 @@ dnl You should have received a copy of the GNU General Public License dnl along with AstrOmatic software. dnl If not, see . dnl -dnl Last modified: 09/10/2010 +dnl Last modified: 15/09/2022 dnl dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% dnl @@ -88,7 +88,7 @@ if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) - AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes) + AC_LINK_IFELSE([AC_LANG_CALL([], pthread_join)], acx_pthread_ok=yes) AC_MSG_RESULT($acx_pthread_ok) if test x"$acx_pthread_ok" = xno; then PTHREAD_LIBS="" @@ -170,10 +170,10 @@ for flag in $acx_pthread_flags; do # pthread_cleanup_push because it is one of the few pthread # functions on Solaris that doesn't have a non-functional libc stub. # We try pthread_create on general principles. - AC_TRY_LINK([#include ], + AC_LINK_IFELSE([AC_LANG_CALL([#include ], [pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); - pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], + pthread_create(0,0,0,0); pthread_cleanup_pop(0); ])], [acx_pthread_ok=yes]) LIBS="$save_LIBS" @@ -199,12 +199,12 @@ if test "x$acx_pthread_ok" = xyes; then # Detect AIX lossage: threads are created detached by default # and the JOINABLE attribute has a nonstandard name (UNDETACHED). AC_MSG_CHECKING([for joinable pthread attribute]) - AC_TRY_LINK([#include ], - [int attr=PTHREAD_CREATE_JOINABLE;], + AC_LINK_IFELSE([AC_LANG_CALL([#include ], + [int attr=PTHREAD_CREATE_JOINABLE;])], ok=PTHREAD_CREATE_JOINABLE, ok=unknown) if test x"$ok" = xunknown; then - AC_TRY_LINK([#include ], - [int attr=PTHREAD_CREATE_UNDETACHED;], + AC_LINK_IFELSE([AC_LANG_CALL([#include ], + [int attr=PTHREAD_CREATE_UNDETACHED;])], ok=PTHREAD_CREATE_UNDETACHED, ok=unknown) fi if test x"$ok" != xPTHREAD_CREATE_JOINABLE; then From d94daa7123cb39122642b0d7b728361c33cfc4a9 Mon Sep 17 00:00:00 2001 From: Emmanuel Bertin Date: Wed, 5 Apr 2023 16:38:08 -1000 Subject: [PATCH 3/3] Fix color issue. --- src/cplot.c | 132 +++++++++++++++++++++++++++++----------------------- 1 file changed, 74 insertions(+), 58 deletions(-) diff --git a/src/cplot.c b/src/cplot.c index 60ccc34..2e1876a 100644 --- a/src/cplot.c +++ b/src/cplot.c @@ -7,7 +7,7 @@ * * This file part of: PSFEx * -* Copyright: (C) 2008-2018 IAP/CNRS/SorbonneU +* Copyright: (C) 2008-2023 CFHT/IAP/CNRS/SorbonneU * * License: GNU General Public License * @@ -22,7 +22,7 @@ * You should have received a copy of the GNU General Public License * along with PSFEx. If not, see . * -* Last modified: 06/12/2018 +* Last modified: 05/04/2023 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ @@ -666,8 +666,8 @@ PURPOSE Plot a map of the PSF FWHM in the instrument field. INPUT Pointer to the field. OUTPUT RETURN_OK if everything went fine, RETURN_ERROR otherwise. NOTES -. -AUTHOR E. Bertin (IAP) -VERSION 19/10/2016 +AUTHOR E. Bertin (CFHT/IAP/CNRS/SorbonneU) +VERSION 05/04/2023 ***/ int cplot_fwhm(fieldstruct *field) { @@ -675,7 +675,7 @@ int cplot_fwhm(fieldstruct *field) *wcs, *wcsout; psfstruct *psf; PLFLT **fwhm, - clevel[CPLOT_NSHADES], cpoint[3], r[3],g[3],b[3], + clevel[CPLOT_NSHADES], cpoint[5], r[5],g[5],b[5], afwhm,fwhmmin,fwhmmax, mfwhm,dfwhm; PLINT lwid; char *ctype[NAXIS], @@ -774,10 +774,12 @@ int cplot_fwhm(fieldstruct *field) for (i=0; inext; e++) @@ -898,8 +900,8 @@ PURPOSE Plot a map of the PSF ellipticity in the instrument field. INPUT Pointer to the field. OUTPUT RETURN_OK if everything went fine, RETURN_ERROR otherwise. NOTES -. -AUTHOR E. Bertin (IAP) -VERSION 19/10/2016 +AUTHOR E. Bertin (IAP/CFHT/CNRS/SorbonneU) +VERSION 05/04/2023 ***/ int cplot_ellipticity(fieldstruct *field) { @@ -907,7 +909,7 @@ int cplot_ellipticity(fieldstruct *field) *wcs, *wcsout; psfstruct *psf; PLFLT **ellip, - clevel[CPLOT_NSHADES], cpoint[3], r[3],g[3],b[3], + clevel[CPLOT_NSHADES], cpoint[5], r[5],g[5],b[5], aellip,ellipmin,ellipmax, mellip,dellip; PLINT lwid; char *ctype[NAXIS], @@ -1006,10 +1008,12 @@ int cplot_ellipticity(fieldstruct *field) for (i=0; inext; e++) @@ -1116,8 +1120,8 @@ PURPOSE Plot a map of Moffat fit residuals in the instrument field. INPUT Pointer to the field. OUTPUT RETURN_OK if everything went fine, RETURN_ERROR otherwise. NOTES -. -AUTHOR E. Bertin (IAP) -VERSION 19/10/2016 +AUTHOR E. Bertin (CFHT/IAP/CNRS/SorbonneU) +VERSION 05/04/2023 ***/ int cplot_moffatresi(fieldstruct *field) { @@ -1125,7 +1129,7 @@ int cplot_moffatresi(fieldstruct *field) *wcs, *wcsout; psfstruct *psf; PLFLT **resi, - clevel[CPLOT_NSHADES], cpoint[3], r[3],g[3],b[3], + clevel[CPLOT_NSHADES], cpoint[5], r[5],g[5],b[5], aresi,resimin,resimax, mresi,dresi; PLINT lwid; char *ctype[NAXIS], @@ -1223,10 +1227,12 @@ int cplot_moffatresi(fieldstruct *field) for (i=0; inext; e++) @@ -1335,8 +1341,8 @@ PURPOSE Plot a map of asymmetry residuals in the instrument field. INPUT Pointer to the field. OUTPUT RETURN_OK if everything went fine, RETURN_ERROR otherwise. NOTES -. -AUTHOR E. Bertin (IAP) -VERSION 19/10/2016 +AUTHOR E. Bertin (CFHT/IAP/CNRS/SorbonneU) +VERSION 05/04/2023 ***/ int cplot_asymresi(fieldstruct *field) { @@ -1344,7 +1350,7 @@ int cplot_asymresi(fieldstruct *field) *wcs, *wcsout; psfstruct *psf; PLFLT **resi, - clevel[CPLOT_NSHADES], cpoint[3], r[3],g[3],b[3], + clevel[CPLOT_NSHADES], cpoint[5], r[5],g[5],b[5], aresi,resimin,resimax, mresi,dresi; PLINT lwid; char *ctype[NAXIS], @@ -1442,10 +1448,12 @@ int cplot_asymresi(fieldstruct *field) for (i=0; inext; e++) @@ -1549,15 +1557,15 @@ PURPOSE Plot an x,y map of the number of sources that has been loaded. INPUT Pointer to the field. OUTPUT RETURN_OK if everything went fine, RETURN_ERROR otherwise. NOTES -. -AUTHOR E. Bertin (IAP) -VERSION 19/10/2016 +AUTHOR E. Bertin (CFHT/IAP/CNRS/SorbonneU) +VERSION 05/04/2023 ***/ int cplot_counts(fieldstruct *field) { wcsstruct *wcsptr[2], *wcs, *wcsout; PLFLT **count, - clevel[CPLOT_NSHADES], cpoint[3], r[3],g[3],b[3], + clevel[CPLOT_NSHADES], cpoint[5], r[5],g[5],b[5], cmin,cmax, mc,dc; PLINT lwid; char *ctype[NAXIS], @@ -1639,10 +1647,12 @@ int cplot_counts(fieldstruct *field) for (i=0; i1? nsnap : 2; @@ -1708,15 +1718,15 @@ PURPOSE Plot an x,y map of the fraction of sources that has been accepted. INPUT Pointer to the field. OUTPUT RETURN_OK if everything went fine, RETURN_ERROR otherwise. NOTES -. -AUTHOR E. Bertin (IAP) -VERSION 19/10/2016 +AUTHOR E. Bertin (CFHT/IAP/CNRS/SorbonneU) +VERSION 05/04/2023 ***/ int cplot_countfrac(fieldstruct *field) { wcsstruct *wcsptr[2], *wcs, *wcsout; PLFLT **count, - clevel[CPLOT_NSHADES], cpoint[3], r[3],g[3],b[3], + clevel[CPLOT_NSHADES], cpoint[5], r[5],g[5],b[5], cmin,cmax, mc,dc; PLINT lwid; char *ctype[NAXIS], @@ -1799,10 +1809,12 @@ int cplot_countfrac(fieldstruct *field) for (i=0; i1? nsnap : 2; @@ -1867,15 +1879,15 @@ PURPOSE Plot an x,y map of the average fit chi2/dof. INPUT Pointer to the field. OUTPUT RETURN_OK if everything went fine, RETURN_ERROR otherwise. NOTES -. -AUTHOR E. Bertin (IAP) -VERSION 19/10/2016 +AUTHOR E. Bertin (CFHT/IAP/CNRS/SorbonneU) +VERSION 05/04/2023 ***/ int cplot_modchi2(fieldstruct *field) { wcsstruct *wcsptr[2], *wcs, *wcsout; PLFLT **count, - clevel[CPLOT_NSHADES], cpoint[3], r[3],g[3],b[3], + clevel[CPLOT_NSHADES], cpoint[5], r[5],g[5],b[5], cmin,cmax, mc,dc; PLINT lwid; char *ctype[NAXIS], @@ -1959,10 +1971,12 @@ int cplot_modchi2(fieldstruct *field) for (i=0; i1? nsnap : 2; @@ -2026,15 +2040,15 @@ PURPOSE Plot an x,y map of the average fit chi2/dof. INPUT Pointer to the field. OUTPUT RETURN_OK if everything went fine, RETURN_ERROR otherwise. NOTES -. -AUTHOR E. Bertin (IAP) -VERSION 19/10/2016 +AUTHOR E. Bertin (CFHT/IAP/CNRS/SorbonneU) +VERSION 05/04/2023 ***/ int cplot_modresi(fieldstruct *field) { wcsstruct *wcsptr[2], *wcs, *wcsout; PLFLT **count, - clevel[CPLOT_NSHADES], cpoint[3], r[3],g[3],b[3], + clevel[CPLOT_NSHADES], cpoint[5], r[5],g[5],b[5], cmin,cmax, mc,dc; PLINT lwid; char *ctype[NAXIS], @@ -2118,10 +2132,12 @@ int cplot_modresi(fieldstruct *field) for (i=0; i1? nsnap : 2;