mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-04 14:04:32 +00:00 
			
		
		
		
	Fixed conflicts. PLEASE avoid making wholesale cosmetic only changes, this created
a HUGE amount of difficult to resolve and understand conflicts . Wholesale formatting, reordering functions etc... in a central file like Tensor_class or Grid_vector_types while others are also editing without making substantial functionality changes creates pain.
This commit is contained in:
		
							
								
								
									
										266
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										266
									
								
								configure
									
									
									
									
										vendored
									
									
								
							@@ -626,6 +626,13 @@ ac_subst_vars='am__EXEEXT_FALSE
 | 
			
		||||
am__EXEEXT_TRUE
 | 
			
		||||
LTLIBOBJS
 | 
			
		||||
LIBOBJS
 | 
			
		||||
enable_latex_docs
 | 
			
		||||
enable_html_docs
 | 
			
		||||
enable_dot
 | 
			
		||||
DOXYGEN_DOC_FALSE
 | 
			
		||||
DOXYGEN_DOC_TRUE
 | 
			
		||||
DOT
 | 
			
		||||
DOXYGEN
 | 
			
		||||
USE_LAPACK_LIB_FALSE
 | 
			
		||||
USE_LAPACK_LIB_TRUE
 | 
			
		||||
USE_LAPACK_FALSE
 | 
			
		||||
@@ -727,7 +734,6 @@ infodir
 | 
			
		||||
docdir
 | 
			
		||||
oldincludedir
 | 
			
		||||
includedir
 | 
			
		||||
runstatedir
 | 
			
		||||
localstatedir
 | 
			
		||||
sharedstatedir
 | 
			
		||||
sysconfdir
 | 
			
		||||
@@ -760,6 +766,10 @@ enable_rng
 | 
			
		||||
enable_timers
 | 
			
		||||
enable_chroma
 | 
			
		||||
enable_lapack
 | 
			
		||||
enable_doxygen
 | 
			
		||||
enable_dot
 | 
			
		||||
enable_html_docs
 | 
			
		||||
enable_latex_docs
 | 
			
		||||
'
 | 
			
		||||
      ac_precious_vars='build_alias
 | 
			
		||||
host_alias
 | 
			
		||||
@@ -811,7 +821,6 @@ datadir='${datarootdir}'
 | 
			
		||||
sysconfdir='${prefix}/etc'
 | 
			
		||||
sharedstatedir='${prefix}/com'
 | 
			
		||||
localstatedir='${prefix}/var'
 | 
			
		||||
runstatedir='${localstatedir}/run'
 | 
			
		||||
includedir='${prefix}/include'
 | 
			
		||||
oldincludedir='/usr/include'
 | 
			
		||||
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
 | 
			
		||||
@@ -1064,15 +1073,6 @@ do
 | 
			
		||||
  | -silent | --silent | --silen | --sile | --sil)
 | 
			
		||||
    silent=yes ;;
 | 
			
		||||
 | 
			
		||||
  -runstatedir | --runstatedir | --runstatedi | --runstated \
 | 
			
		||||
  | --runstate | --runstat | --runsta | --runst | --runs \
 | 
			
		||||
  | --run | --ru | --r)
 | 
			
		||||
    ac_prev=runstatedir ;;
 | 
			
		||||
  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
 | 
			
		||||
  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
 | 
			
		||||
  | --run=* | --ru=* | --r=*)
 | 
			
		||||
    runstatedir=$ac_optarg ;;
 | 
			
		||||
 | 
			
		||||
  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
 | 
			
		||||
    ac_prev=sbindir ;;
 | 
			
		||||
  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
 | 
			
		||||
@@ -1210,7 +1210,7 @@ fi
 | 
			
		||||
for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 | 
			
		||||
		datadir sysconfdir sharedstatedir localstatedir includedir \
 | 
			
		||||
		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
 | 
			
		||||
		libdir localedir mandir runstatedir
 | 
			
		||||
		libdir localedir mandir
 | 
			
		||||
do
 | 
			
		||||
  eval ac_val=\$$ac_var
 | 
			
		||||
  # Remove trailing slashes.
 | 
			
		||||
@@ -1363,7 +1363,6 @@ Fine tuning of the installation directories:
 | 
			
		||||
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
 | 
			
		||||
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
 | 
			
		||||
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
 | 
			
		||||
  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
 | 
			
		||||
  --libdir=DIR            object code libraries [EPREFIX/lib]
 | 
			
		||||
  --includedir=DIR        C header files [PREFIX/include]
 | 
			
		||||
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
 | 
			
		||||
@@ -1421,6 +1420,11 @@ Optional Features:
 | 
			
		||||
  --enable-timers=yes|no  Enable system dependent high res timers
 | 
			
		||||
  --enable-chroma         Expect chroma compiled under c++11
 | 
			
		||||
  --enable-lapack         Enable lapack yes/no
 | 
			
		||||
  --enable-doxygen        enable documentation generation with doxygen (auto)
 | 
			
		||||
  --enable-dot            use 'dot' to generate graphs in doxygen (auto)
 | 
			
		||||
  --enable-html-docs      enable HTML generation with doxygen (yes)
 | 
			
		||||
  --enable-latex-docs     enable LaTeX documentation generation with doxygen
 | 
			
		||||
                          (no)
 | 
			
		||||
 | 
			
		||||
Some influential environment variables:
 | 
			
		||||
  CXX         C++ compiler command
 | 
			
		||||
@@ -3171,6 +3175,15 @@ END
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ac_sources="lib"
 | 
			
		||||
ac_dests="include/Grid "
 | 
			
		||||
while test -n "$ac_sources"; do
 | 
			
		||||
  set $ac_dests; ac_dest=$1; shift; ac_dests=$*
 | 
			
		||||
  set $ac_sources; ac_source=$1; shift; ac_sources=$*
 | 
			
		||||
  ac_config_links_1="$ac_config_links_1 $ac_dest:$ac_source"
 | 
			
		||||
done
 | 
			
		||||
ac_config_links="$ac_config_links $ac_config_links_1"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ac_config_headers="$ac_config_headers lib/Config.h"
 | 
			
		||||
 | 
			
		||||
@@ -6672,7 +6685,6 @@ else
 | 
			
		||||
  ac_CHROMA=no
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
case ${ac_CHROMA} in
 | 
			
		||||
     yes)
 | 
			
		||||
       echo Enabling tests regressing to Chroma
 | 
			
		||||
@@ -6737,15 +6749,160 @@ fi
 | 
			
		||||
###################################################################
 | 
			
		||||
# Checks for doxygen support
 | 
			
		||||
# if present enables the "make doxyfile" command
 | 
			
		||||
#echo
 | 
			
		||||
#echo Checking doxygen support
 | 
			
		||||
#echo :::::::::::::::::::::::::::::::::::::::::::
 | 
			
		||||
#AC_PROG_DOXYGEN
 | 
			
		||||
echo
 | 
			
		||||
echo Checking doxygen support
 | 
			
		||||
echo :::::::::::::::::::::::::::::::::::::::::::
 | 
			
		||||
 | 
			
		||||
#if test -n "$DOXYGEN"
 | 
			
		||||
#then
 | 
			
		||||
#AC_CONFIG_FILES([docs/doxy.cfg])
 | 
			
		||||
#fi
 | 
			
		||||
# Check whether --enable-doxygen was given.
 | 
			
		||||
if test "${enable_doxygen+set}" = set; then :
 | 
			
		||||
  enableval=$enable_doxygen;
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Check whether --enable-dot was given.
 | 
			
		||||
if test "${enable_dot+set}" = set; then :
 | 
			
		||||
  enableval=$enable_dot;
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Check whether --enable-html-docs was given.
 | 
			
		||||
if test "${enable_html_docs+set}" = set; then :
 | 
			
		||||
  enableval=$enable_html_docs;
 | 
			
		||||
else
 | 
			
		||||
   enable_html_docs=yes
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Check whether --enable-latex-docs was given.
 | 
			
		||||
if test "${enable_latex_docs+set}" = set; then :
 | 
			
		||||
  enableval=$enable_latex_docs;
 | 
			
		||||
else
 | 
			
		||||
  enable_latex_docs=no
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if test "x$enable_doxygen" = xno; then
 | 
			
		||||
 enable_doc=no
 | 
			
		||||
else
 | 
			
		||||
 # Extract the first word of "doxygen", so it can be a program name with args.
 | 
			
		||||
set dummy doxygen; ac_word=$2
 | 
			
		||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 | 
			
		||||
$as_echo_n "checking for $ac_word... " >&6; }
 | 
			
		||||
if ${ac_cv_prog_DOXYGEN+:} false; then :
 | 
			
		||||
  $as_echo_n "(cached) " >&6
 | 
			
		||||
else
 | 
			
		||||
  if test -n "$DOXYGEN"; then
 | 
			
		||||
  ac_cv_prog_DOXYGEN="$DOXYGEN" # Let the user override the test.
 | 
			
		||||
else
 | 
			
		||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 | 
			
		||||
for as_dir in $PATH
 | 
			
		||||
do
 | 
			
		||||
  IFS=$as_save_IFS
 | 
			
		||||
  test -z "$as_dir" && as_dir=.
 | 
			
		||||
    for ac_exec_ext in '' $ac_executable_extensions; do
 | 
			
		||||
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 | 
			
		||||
    ac_cv_prog_DOXYGEN="doxygen"
 | 
			
		||||
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 | 
			
		||||
    break 2
 | 
			
		||||
  fi
 | 
			
		||||
done
 | 
			
		||||
  done
 | 
			
		||||
IFS=$as_save_IFS
 | 
			
		||||
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
DOXYGEN=$ac_cv_prog_DOXYGEN
 | 
			
		||||
if test -n "$DOXYGEN"; then
 | 
			
		||||
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5
 | 
			
		||||
$as_echo "$DOXYGEN" >&6; }
 | 
			
		||||
else
 | 
			
		||||
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 | 
			
		||||
$as_echo "no" >&6; }
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 if test x$DOXYGEN = x; then
 | 
			
		||||
  if test "x$enable_doxygen" = xyes; then
 | 
			
		||||
   as_fn_error $? "could not find doxygen" "$LINENO" 5
 | 
			
		||||
  fi
 | 
			
		||||
  enable_doc=no
 | 
			
		||||
 else
 | 
			
		||||
  doxy_ver=`doxygen --version`
 | 
			
		||||
  doxy_major=`expr "$doxy_ver" : '\([0-9]\)\..*'`
 | 
			
		||||
  doxy_minor=`expr "$doxy_ver" : '[0-9]\.\([0-9]\).*'`
 | 
			
		||||
  if test $doxy_major -eq "1" -a $doxy_minor -ge "3" ; then
 | 
			
		||||
   enable_doc=yes
 | 
			
		||||
   # Extract the first word of "dot", so it can be a program name with args.
 | 
			
		||||
set dummy dot; ac_word=$2
 | 
			
		||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 | 
			
		||||
$as_echo_n "checking for $ac_word... " >&6; }
 | 
			
		||||
if ${ac_cv_prog_DOT+:} false; then :
 | 
			
		||||
  $as_echo_n "(cached) " >&6
 | 
			
		||||
else
 | 
			
		||||
  if test -n "$DOT"; then
 | 
			
		||||
  ac_cv_prog_DOT="$DOT" # Let the user override the test.
 | 
			
		||||
else
 | 
			
		||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 | 
			
		||||
for as_dir in $PATH
 | 
			
		||||
do
 | 
			
		||||
  IFS=$as_save_IFS
 | 
			
		||||
  test -z "$as_dir" && as_dir=.
 | 
			
		||||
    for ac_exec_ext in '' $ac_executable_extensions; do
 | 
			
		||||
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 | 
			
		||||
    ac_cv_prog_DOT="dot"
 | 
			
		||||
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 | 
			
		||||
    break 2
 | 
			
		||||
  fi
 | 
			
		||||
done
 | 
			
		||||
  done
 | 
			
		||||
IFS=$as_save_IFS
 | 
			
		||||
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
DOT=$ac_cv_prog_DOT
 | 
			
		||||
if test -n "$DOT"; then
 | 
			
		||||
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOT" >&5
 | 
			
		||||
$as_echo "$DOT" >&6; }
 | 
			
		||||
else
 | 
			
		||||
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 | 
			
		||||
$as_echo "no" >&6; }
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  else
 | 
			
		||||
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: doxygen version $doxy_ver too old, doxygen will not be used." >&5
 | 
			
		||||
$as_echo "$as_me: WARNING: doxygen version $doxy_ver too old, doxygen will not be used." >&2;}
 | 
			
		||||
   enable_doc=no
 | 
			
		||||
  fi
 | 
			
		||||
 fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 if test x$enable_doc = xyes; then
 | 
			
		||||
  DOXYGEN_DOC_TRUE=
 | 
			
		||||
  DOXYGEN_DOC_FALSE='#'
 | 
			
		||||
else
 | 
			
		||||
  DOXYGEN_DOC_TRUE='#'
 | 
			
		||||
  DOXYGEN_DOC_FALSE=
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if test x$DOT = x; then
 | 
			
		||||
 if test "x$enable_dot" = xyes; then
 | 
			
		||||
  as_fn_error $? "could not find dot" "$LINENO" 5
 | 
			
		||||
 fi
 | 
			
		||||
 enable_dot=no
 | 
			
		||||
else
 | 
			
		||||
 enable_dot=yes
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if test -n "$DOXYGEN"
 | 
			
		||||
then
 | 
			
		||||
ac_config_files="$ac_config_files docs/doxy.cfg"
 | 
			
		||||
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
echo
 | 
			
		||||
echo Creating configuration files
 | 
			
		||||
@@ -6756,10 +6913,24 @@ ac_config_files="$ac_config_files lib/Makefile"
 | 
			
		||||
 | 
			
		||||
ac_config_files="$ac_config_files tests/Makefile"
 | 
			
		||||
 | 
			
		||||
ac_config_files="$ac_config_files tests/IO/Makefile"
 | 
			
		||||
 | 
			
		||||
ac_config_files="$ac_config_files tests/core/Makefile"
 | 
			
		||||
 | 
			
		||||
ac_config_files="$ac_config_files tests/debug/Makefile"
 | 
			
		||||
 | 
			
		||||
ac_config_files="$ac_config_files tests/forces/Makefile"
 | 
			
		||||
 | 
			
		||||
ac_config_files="$ac_config_files tests/hmc/Makefile"
 | 
			
		||||
 | 
			
		||||
ac_config_files="$ac_config_files tests/solver/Makefile"
 | 
			
		||||
 | 
			
		||||
ac_config_files="$ac_config_files tests/qdpxx/Makefile"
 | 
			
		||||
 | 
			
		||||
ac_config_files="$ac_config_files benchmarks/Makefile"
 | 
			
		||||
 | 
			
		||||
ac_config_files="$ac_config_files prerequisites/Makefile"
 | 
			
		||||
 | 
			
		||||
cat >confcache <<\_ACEOF
 | 
			
		||||
# This file is a shell script that caches the results of configure
 | 
			
		||||
# tests run on this system so they can be shared between configure
 | 
			
		||||
@@ -6925,6 +7096,10 @@ if test -z "${USE_LAPACK_LIB_TRUE}" && test -z "${USE_LAPACK_LIB_FALSE}"; then
 | 
			
		||||
  as_fn_error $? "conditional \"USE_LAPACK_LIB\" was never defined.
 | 
			
		||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
 | 
			
		||||
fi
 | 
			
		||||
if test -z "${DOXYGEN_DOC_TRUE}" && test -z "${DOXYGEN_DOC_FALSE}"; then
 | 
			
		||||
  as_fn_error $? "conditional \"DOXYGEN_DOC\" was never defined.
 | 
			
		||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
: "${CONFIG_STATUS=./config.status}"
 | 
			
		||||
ac_write_fail=0
 | 
			
		||||
@@ -7349,6 +7524,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 | 
			
		||||
# Files that config.status was made for.
 | 
			
		||||
config_files="$ac_config_files"
 | 
			
		||||
config_headers="$ac_config_headers"
 | 
			
		||||
config_links="$ac_config_links"
 | 
			
		||||
config_commands="$ac_config_commands"
 | 
			
		||||
 | 
			
		||||
_ACEOF
 | 
			
		||||
@@ -7379,6 +7555,9 @@ $config_files
 | 
			
		||||
Configuration headers:
 | 
			
		||||
$config_headers
 | 
			
		||||
 | 
			
		||||
Configuration links:
 | 
			
		||||
$config_links
 | 
			
		||||
 | 
			
		||||
Configuration commands:
 | 
			
		||||
$config_commands
 | 
			
		||||
 | 
			
		||||
@@ -7517,13 +7696,22 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 | 
			
		||||
for ac_config_target in $ac_config_targets
 | 
			
		||||
do
 | 
			
		||||
  case $ac_config_target in
 | 
			
		||||
    "$ac_config_links_1") CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_1" ;;
 | 
			
		||||
    "lib/Config.h") CONFIG_HEADERS="$CONFIG_HEADERS lib/Config.h" ;;
 | 
			
		||||
    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
 | 
			
		||||
    "docs/doxy.cfg") CONFIG_FILES="$CONFIG_FILES docs/doxy.cfg" ;;
 | 
			
		||||
    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
 | 
			
		||||
    "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
 | 
			
		||||
    "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
 | 
			
		||||
    "tests/IO/Makefile") CONFIG_FILES="$CONFIG_FILES tests/IO/Makefile" ;;
 | 
			
		||||
    "tests/core/Makefile") CONFIG_FILES="$CONFIG_FILES tests/core/Makefile" ;;
 | 
			
		||||
    "tests/debug/Makefile") CONFIG_FILES="$CONFIG_FILES tests/debug/Makefile" ;;
 | 
			
		||||
    "tests/forces/Makefile") CONFIG_FILES="$CONFIG_FILES tests/forces/Makefile" ;;
 | 
			
		||||
    "tests/hmc/Makefile") CONFIG_FILES="$CONFIG_FILES tests/hmc/Makefile" ;;
 | 
			
		||||
    "tests/solver/Makefile") CONFIG_FILES="$CONFIG_FILES tests/solver/Makefile" ;;
 | 
			
		||||
    "tests/qdpxx/Makefile") CONFIG_FILES="$CONFIG_FILES tests/qdpxx/Makefile" ;;
 | 
			
		||||
    "benchmarks/Makefile") CONFIG_FILES="$CONFIG_FILES benchmarks/Makefile" ;;
 | 
			
		||||
    "prerequisites/Makefile") CONFIG_FILES="$CONFIG_FILES prerequisites/Makefile" ;;
 | 
			
		||||
 | 
			
		||||
  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
 | 
			
		||||
  esac
 | 
			
		||||
@@ -7537,6 +7725,7 @@ done
 | 
			
		||||
if $ac_need_defaults; then
 | 
			
		||||
  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
 | 
			
		||||
  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
 | 
			
		||||
  test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links
 | 
			
		||||
  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
@@ -7834,7 +8023,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 | 
			
		||||
fi # test -n "$CONFIG_HEADERS"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
 | 
			
		||||
eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS  :L $CONFIG_LINKS  :C $CONFIG_COMMANDS"
 | 
			
		||||
shift
 | 
			
		||||
for ac_tag
 | 
			
		||||
do
 | 
			
		||||
@@ -8111,7 +8300,38 @@ $as_echo X"$_am_arg" |
 | 
			
		||||
	  }
 | 
			
		||||
	  s/.*/./; q'`/stamp-h$_am_stamp_count
 | 
			
		||||
 ;;
 | 
			
		||||
  :L)
 | 
			
		||||
  #
 | 
			
		||||
  # CONFIG_LINK
 | 
			
		||||
  #
 | 
			
		||||
 | 
			
		||||
  if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then
 | 
			
		||||
    :
 | 
			
		||||
  else
 | 
			
		||||
    # Prefer the file from the source tree if names are identical.
 | 
			
		||||
    if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then
 | 
			
		||||
      ac_source=$srcdir/$ac_source
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    { $as_echo "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5
 | 
			
		||||
$as_echo "$as_me: linking $ac_source to $ac_file" >&6;}
 | 
			
		||||
 | 
			
		||||
    if test ! -r "$ac_source"; then
 | 
			
		||||
      as_fn_error $? "$ac_source: file not found" "$LINENO" 5
 | 
			
		||||
    fi
 | 
			
		||||
    rm -f "$ac_file"
 | 
			
		||||
 | 
			
		||||
    # Try a relative symlink, then a hard link, then a copy.
 | 
			
		||||
    case $ac_source in
 | 
			
		||||
    [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;;
 | 
			
		||||
	*) ac_rel_source=$ac_top_build_prefix$ac_source ;;
 | 
			
		||||
    esac
 | 
			
		||||
    ln -s "$ac_rel_source" "$ac_file" 2>/dev/null ||
 | 
			
		||||
      ln "$ac_source" "$ac_file" 2>/dev/null ||
 | 
			
		||||
      cp -p "$ac_source" "$ac_file" ||
 | 
			
		||||
      as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5
 | 
			
		||||
  fi
 | 
			
		||||
 ;;
 | 
			
		||||
  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
 | 
			
		||||
$as_echo "$as_me: executing $ac_file commands" >&6;}
 | 
			
		||||
 ;;
 | 
			
		||||
 
 | 
			
		||||
@@ -43,8 +43,8 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk>
 | 
			
		||||
#include <Grid/algorithms/iterative/NormalEquations.h>
 | 
			
		||||
#include <Grid/algorithms/iterative/SchurRedBlack.h>
 | 
			
		||||
 | 
			
		||||
#include <algorithms/iterative/ConjugateGradientMultiShift.h>
 | 
			
		||||
#include <algorithms/iterative/ConjugateGradientMixedPrec.h>
 | 
			
		||||
#include <Grid/algorithms/iterative/ConjugateGradientMultiShift.h>
 | 
			
		||||
#include <Grid/algorithms/iterative/ConjugateGradientMixedPrec.h>
 | 
			
		||||
 | 
			
		||||
// Lanczos support
 | 
			
		||||
#include <Grid/algorithms/iterative/MatrixUtils.h>
 | 
			
		||||
 
 | 
			
		||||
@@ -128,12 +128,6 @@ public:
 | 
			
		||||
    //////////////////////////////////////////////////////////
 | 
			
		||||
    // SIMD lane addressing
 | 
			
		||||
    //////////////////////////////////////////////////////////
 | 
			
		||||
    virtual int iIndex(std::vector<int> &lcoor)
 | 
			
		||||
    {
 | 
			
		||||
        int idx=0;
 | 
			
		||||
        for(int d=0;d<_ndimension;d++) idx+=_istride[d]*(lcoor[d]/_rdimensions[d]);
 | 
			
		||||
        return idx;
 | 
			
		||||
    }
 | 
			
		||||
    inline void iCoorFromIindex(std::vector<int> &coor,int lane)
 | 
			
		||||
    {
 | 
			
		||||
      Lexicographic::CoorFromIndex(coor,lane,_simd_layout);
 | 
			
		||||
 
 | 
			
		||||
@@ -500,7 +500,6 @@ namespace QCD {
 | 
			
		||||
#include <Grid/qcd/hmc/integrators/Integrator.h>
 | 
			
		||||
#include <Grid/qcd/hmc/integrators/Integrator_algorithm.h>
 | 
			
		||||
#include <Grid/qcd/hmc/HMC.h>
 | 
			
		||||
 | 
			
		||||
#include <qcd/smearing/Smearing.h>
 | 
			
		||||
#include <Grid/qcd/smearing/Smearing.h>
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
#ifndef GRID_QCD_SMEARING_H
 | 
			
		||||
#define GRID_QCD_SMEARING_H
 | 
			
		||||
 | 
			
		||||
#include <qcd/smearing/BaseSmearing.h>
 | 
			
		||||
#include <qcd/smearing/APEsmearing.h>
 | 
			
		||||
#include <qcd/smearing/StoutSmearing.h>
 | 
			
		||||
#include <qcd/smearing/GaugeConfiguration.h>
 | 
			
		||||
#include <Grid/qcd/smearing/BaseSmearing.h>
 | 
			
		||||
#include <Grid/qcd/smearing/APEsmearing.h>
 | 
			
		||||
#include <Grid/qcd/smearing/StoutSmearing.h>
 | 
			
		||||
#include <Grid/qcd/smearing/GaugeConfiguration.h>
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -142,88 +142,12 @@ class Grid_simd {
 | 
			
		||||
    conv_t_union(){};
 | 
			
		||||
  } conv_t;
 | 
			
		||||
 | 
			
		||||
    ////////////////////////////////////////////////////////////////////
 | 
			
		||||
    // General permute; assumes vector length is same across 
 | 
			
		||||
    // all subtypes; may not be a good assumption, but could
 | 
			
		||||
    // add the vector width as a template param for BG/Q for example
 | 
			
		||||
    ////////////////////////////////////////////////////////////////////
 | 
			
		||||
    friend inline void permute0(Grid_simd &y,Grid_simd b){
 | 
			
		||||
      y.v = Optimization::Permute::Permute0(b.v);
 | 
			
		||||
    }
 | 
			
		||||
    friend inline void permute1(Grid_simd &y,Grid_simd b){
 | 
			
		||||
      y.v = Optimization::Permute::Permute1(b.v);
 | 
			
		||||
    }
 | 
			
		||||
    friend inline void permute2(Grid_simd &y,Grid_simd b){
 | 
			
		||||
      y.v = Optimization::Permute::Permute2(b.v);
 | 
			
		||||
    }
 | 
			
		||||
    friend inline void permute3(Grid_simd &y,Grid_simd b){
 | 
			
		||||
      y.v = Optimization::Permute::Permute3(b.v);
 | 
			
		||||
    }
 | 
			
		||||
    friend inline void permute(Grid_simd &y,Grid_simd b,int perm)
 | 
			
		||||
    {
 | 
			
		||||
      if ( perm & RotateBit ) {
 | 
			
		||||
	int dist = perm&0xF;
 | 
			
		||||
        y=rotate(b,dist);
 | 
			
		||||
	return;
 | 
			
		||||
      } else { 
 | 
			
		||||
	switch(perm){
 | 
			
		||||
	case 3: permute3(y,b); break;
 | 
			
		||||
	case 2: permute2(y,b); break;
 | 
			
		||||
	case 1: permute1(y,b); break;
 | 
			
		||||
	case 0: permute0(y,b); break;
 | 
			
		||||
	default: assert(0);
 | 
			
		||||
	}
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
  };// end of Grid_simd class definition 
 | 
			
		||||
  Vector_type v;
 | 
			
		||||
 | 
			
		||||
  static inline int Nsimd(void) {
 | 
			
		||||
    return sizeof(Vector_type) / sizeof(Scalar_type);
 | 
			
		||||
  }
 | 
			
		||||
  template <class S, class V, IfNotComplex<S> =0> 
 | 
			
		||||
  inline void rotate( Grid_simd<S,V> &ret,Grid_simd<S,V> b,int nrot)
 | 
			
		||||
  {
 | 
			
		||||
    nrot = nrot % Grid_simd<S,V>::Nsimd();
 | 
			
		||||
    //    std::cout << "Rotate Real by "<<nrot<<std::endl;
 | 
			
		||||
    ret.v = Optimization::Rotate::rotate(b.v,nrot);
 | 
			
		||||
  }
 | 
			
		||||
  template <class S, class V, IfComplex<S> =0> 
 | 
			
		||||
    inline void rotate(Grid_simd<S,V> &ret,Grid_simd<S,V> b,int nrot)
 | 
			
		||||
  {
 | 
			
		||||
    nrot = nrot % Grid_simd<S,V>::Nsimd();
 | 
			
		||||
    //    std::cout << "Rotate Complex by "<<nrot<<std::endl;
 | 
			
		||||
    ret.v = Optimization::Rotate::rotate(b.v,2*nrot);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ///////////////////////
 | 
			
		||||
  // Splat
 | 
			
		||||
  ///////////////////////
 | 
			
		||||
  
 | 
			
		||||
  // this is only for the complex version
 | 
			
		||||
  template <class S, class V, IfComplex<S> =0, class ABtype> 
 | 
			
		||||
  inline void vsplat(Grid_simd<S,V> &ret,ABtype a, ABtype b){
 | 
			
		||||
    ret.v = binary<V>(a, b, VsplatSIMD());
 | 
			
		||||
  }    
 | 
			
		||||
 | 
			
		||||
  template <class S, class V> 
 | 
			
		||||
  inline void vbroadcast(Grid_simd<S,V> &ret,const Grid_simd<S,V> &src,int lane){
 | 
			
		||||
    S* typepun =(S*) &src;
 | 
			
		||||
    vsplat(ret,typepun[lane]);
 | 
			
		||||
  }    
 | 
			
		||||
 | 
			
		||||
  // overload if complex
 | 
			
		||||
  template <class S,class V> inline void vsplat(Grid_simd<S,V> &ret, EnableIf<is_complex < S >, S> c) {
 | 
			
		||||
    vsplat(ret,real(c),imag(c));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  //if real fill with a, if complex fill with a in the real part (first function above)
 | 
			
		||||
  template <class S,class V>
 | 
			
		||||
  inline void vsplat(Grid_simd<S,V> &ret,NotEnableIf<is_complex< S>,S> a){
 | 
			
		||||
    ret.v = unary<V>(a, VsplatSIMD());
 | 
			
		||||
  }    
 | 
			
		||||
  //////////////////////////
 | 
			
		||||
=======
 | 
			
		||||
  Grid_simd &operator=(const Grid_simd &&rhs) {
 | 
			
		||||
    v = rhs.v;
 | 
			
		||||
    return *this;
 | 
			
		||||
@@ -251,7 +175,6 @@ class Grid_simd {
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  Grid_simd(const Real a) { vsplat(*this, Scalar_type(a)); };
 | 
			
		||||
>>>>>>> 8b9301a74cde2f28a321baf4bca854d950585b56
 | 
			
		||||
 | 
			
		||||
  ///////////////////////////////////////////////
 | 
			
		||||
  // mac, mult, sub, add, adj
 | 
			
		||||
@@ -484,6 +407,27 @@ inline Grid_simd<S, V> rotate(Grid_simd<S, V> b, int nrot) {
 | 
			
		||||
  ret.v = Optimization::Rotate::rotate(b.v, 2 * nrot);
 | 
			
		||||
  return ret;
 | 
			
		||||
}
 | 
			
		||||
template <class S, class V, IfNotComplex<S> =0> 
 | 
			
		||||
inline void rotate( Grid_simd<S,V> &ret,Grid_simd<S,V> b,int nrot)
 | 
			
		||||
{
 | 
			
		||||
  nrot = nrot % Grid_simd<S,V>::Nsimd();
 | 
			
		||||
  //    std::cout << "Rotate Real by "<<nrot<<std::endl;
 | 
			
		||||
  ret.v = Optimization::Rotate::rotate(b.v,nrot);
 | 
			
		||||
}
 | 
			
		||||
template <class S, class V, IfComplex<S> =0> 
 | 
			
		||||
inline void rotate(Grid_simd<S,V> &ret,Grid_simd<S,V> b,int nrot)
 | 
			
		||||
{
 | 
			
		||||
  nrot = nrot % Grid_simd<S,V>::Nsimd();
 | 
			
		||||
  //    std::cout << "Rotate Complex by "<<nrot<<std::endl;
 | 
			
		||||
  ret.v = Optimization::Rotate::rotate(b.v,2*nrot);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
template <class S, class V> 
 | 
			
		||||
inline void vbroadcast(Grid_simd<S,V> &ret,const Grid_simd<S,V> &src,int lane){
 | 
			
		||||
  S* typepun =(S*) &src;
 | 
			
		||||
  vsplat(ret,typepun[lane]);
 | 
			
		||||
}    
 | 
			
		||||
 | 
			
		||||
///////////////////////
 | 
			
		||||
// Splat
 | 
			
		||||
 
 | 
			
		||||
@@ -233,7 +233,6 @@ class iVector {
 | 
			
		||||
      vstream(out._internal[i], in._internal[i]);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
  friend strong_inline void vbroadcast(iVector<vtype,N> &out,const iVector<vtype,N> &in,int lane){
 | 
			
		||||
    for(int i=0;i<N;i++){
 | 
			
		||||
      vbroadcast(out._internal[i],in._internal[i],lane);
 | 
			
		||||
@@ -242,13 +241,6 @@ class iVector {
 | 
			
		||||
  friend strong_inline void permute(iVector<vtype,N> &out,const iVector<vtype,N> &in,int permutetype){
 | 
			
		||||
    for(int i=0;i<N;i++){
 | 
			
		||||
      permute(out._internal[i],in._internal[i],permutetype);
 | 
			
		||||
=======
 | 
			
		||||
  friend strong_inline void permute(iVector<vtype, N> &out,
 | 
			
		||||
                                    const iVector<vtype, N> &in,
 | 
			
		||||
                                    int permutetype) {
 | 
			
		||||
    for (int i = 0; i < N; i++) {
 | 
			
		||||
      permute(out._internal[i], in._internal[i], permutetype);
 | 
			
		||||
>>>>>>> 8b9301a74cde2f28a321baf4bca854d950585b56
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  friend strong_inline void rotate(iVector<vtype,N> &out,const iVector<vtype,N> &in,int rot){
 | 
			
		||||
@@ -346,7 +338,6 @@ class iMatrix {
 | 
			
		||||
    return *this;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
  friend strong_inline void zeroit(iMatrix<vtype,N> &that){
 | 
			
		||||
    for(int i=0;i<N;i++){
 | 
			
		||||
      for(int j=0;j<N;j++){
 | 
			
		||||
@@ -376,26 +367,6 @@ class iMatrix {
 | 
			
		||||
      for(int j=0;j<N;j++){
 | 
			
		||||
	permute(out._internal[i][j],in._internal[i][j],permutetype);
 | 
			
		||||
    }}
 | 
			
		||||
=======
 | 
			
		||||
  friend strong_inline void zeroit(iMatrix<vtype, N> &that) {
 | 
			
		||||
    for (int i = 0; i < N; i++) {
 | 
			
		||||
      for (int j = 0; j < N; j++) {
 | 
			
		||||
        zeroit(that._internal[i][j]);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  friend strong_inline void prefetch(iMatrix<vtype, N> &that) {
 | 
			
		||||
    for (int i = 0; i < N; i++)
 | 
			
		||||
      for (int j = 0; j < N; j++) prefetch(that._internal[i][j]);
 | 
			
		||||
  }
 | 
			
		||||
  friend strong_inline void vstream(iMatrix<vtype, N> &out,
 | 
			
		||||
                                    const iMatrix<vtype, N> &in) {
 | 
			
		||||
    for (int i = 0; i < N; i++) {
 | 
			
		||||
      for (int j = 0; j < N; j++) {
 | 
			
		||||
        vstream(out._internal[i][j], in._internal[i][j]);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
>>>>>>> 8b9301a74cde2f28a321baf4bca854d950585b56
 | 
			
		||||
  }
 | 
			
		||||
  friend strong_inline void rotate(iMatrix<vtype,N> &out,const iMatrix<vtype,N> &in,int rot){
 | 
			
		||||
    for(int i=0;i<N;i++){
 | 
			
		||||
@@ -404,16 +375,6 @@ class iMatrix {
 | 
			
		||||
    }}
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  friend strong_inline void permute(iMatrix<vtype, N> &out,
 | 
			
		||||
                                    const iMatrix<vtype, N> &in,
 | 
			
		||||
                                    int permutetype) {
 | 
			
		||||
    for (int i = 0; i < N; i++) {
 | 
			
		||||
      for (int j = 0; j < N; j++) {
 | 
			
		||||
        permute(out._internal[i][j], in._internal[i][j], permutetype);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Unary negation
 | 
			
		||||
  friend strong_inline iMatrix<vtype, N> operator-(const iMatrix<vtype, N> &r) {
 | 
			
		||||
    iMatrix<vtype, N> ret;
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,7 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk>
 | 
			
		||||
    See the full license in the file "LICENSE" in the top level distribution directory
 | 
			
		||||
    *************************************************************************************/
 | 
			
		||||
    /*  END LEGAL */
 | 
			
		||||
#include <Grid.h>
 | 
			
		||||
#include <Grid/Grid.h>
 | 
			
		||||
 | 
			
		||||
using namespace std;
 | 
			
		||||
using namespace Grid;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user