diff -Nru jags-3.4.0/aclocal.m4 jags-4.0.0/aclocal.m4 --- jags-3.4.0/aclocal.m4 2013-08-30 13:23:20.000000000 +0000 +++ jags-4.0.0/aclocal.m4 2015-09-12 07:01:04.000000000 +0000 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.12.2 -*- Autoconf -*- +# generated automatically by aclocal 1.15 -*- Autoconf -*- -# Copyright (C) 1996-2012 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -11,6 +11,7 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, @@ -19,25 +20,115 @@ If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software -# Foundation, Inc. +dnl +dnl AM_PATH_CPPUNIT(MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) +dnl +AC_DEFUN([AM_PATH_CPPUNIT], +[ + +AC_ARG_WITH(cppunit-prefix,[ --with-cppunit-prefix=PFX Prefix where CppUnit is installed (optional)], + cppunit_config_prefix="$withval", cppunit_config_prefix="") +AC_ARG_WITH(cppunit-exec-prefix,[ --with-cppunit-exec-prefix=PFX Exec prefix where CppUnit is installed (optional)], + cppunit_config_exec_prefix="$withval", cppunit_config_exec_prefix="") + + if test x$cppunit_config_exec_prefix != x ; then + cppunit_config_args="$cppunit_config_args --exec-prefix=$cppunit_config_exec_prefix" + if test x${CPPUNIT_CONFIG+set} != xset ; then + CPPUNIT_CONFIG=$cppunit_config_exec_prefix/bin/cppunit-config + fi + fi + if test x$cppunit_config_prefix != x ; then + cppunit_config_args="$cppunit_config_args --prefix=$cppunit_config_prefix" + if test x${CPPUNIT_CONFIG+set} != xset ; then + CPPUNIT_CONFIG=$cppunit_config_prefix/bin/cppunit-config + fi + fi + + AC_PATH_PROG(CPPUNIT_CONFIG, cppunit-config, no) + cppunit_version_min=$1 + + AC_MSG_CHECKING(for Cppunit - version >= $cppunit_version_min) + no_cppunit="" + if test "$CPPUNIT_CONFIG" = "no" ; then + AC_MSG_RESULT(no) + no_cppunit=yes + else + CPPUNIT_CFLAGS=`$CPPUNIT_CONFIG --cflags` + CPPUNIT_LIBS=`$CPPUNIT_CONFIG --libs` + cppunit_version=`$CPPUNIT_CONFIG --version` + + cppunit_major_version=`echo $cppunit_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + cppunit_minor_version=`echo $cppunit_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + cppunit_micro_version=`echo $cppunit_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + + cppunit_major_min=`echo $cppunit_version_min | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + if test "x${cppunit_major_min}" = "x" ; then + cppunit_major_min=0 + fi + + cppunit_minor_min=`echo $cppunit_version_min | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + if test "x${cppunit_minor_min}" = "x" ; then + cppunit_minor_min=0 + fi + + cppunit_micro_min=`echo $cppunit_version_min | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + if test "x${cppunit_micro_min}" = "x" ; then + cppunit_micro_min=0 + fi + + cppunit_version_proper=`expr \ + $cppunit_major_version \> $cppunit_major_min \| \ + $cppunit_major_version \= $cppunit_major_min \& \ + $cppunit_minor_version \> $cppunit_minor_min \| \ + $cppunit_major_version \= $cppunit_major_min \& \ + $cppunit_minor_version \= $cppunit_minor_min \& \ + $cppunit_micro_version \>= $cppunit_micro_min ` + + if test "$cppunit_version_proper" = "1" ; then + AC_MSG_RESULT([$cppunit_major_version.$cppunit_minor_version.$cppunit_micro_version]) + else + AC_MSG_RESULT(no) + no_cppunit=yes + fi + fi + + if test "x$no_cppunit" = x ; then + ifelse([$2], , :, [$2]) + else + CPPUNIT_CFLAGS="" + CPPUNIT_LIBS="" + ifelse([$3], , :, [$3]) + fi + + AC_SUBST(CPPUNIT_CFLAGS) + AC_SUBST(CPPUNIT_LIBS) +]) + + + + +# Copyright (C) 2002-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 - # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.11' +[am__api_version='1.15' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.11.6], [], +m4_if([$1], [1.15], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -53,24 +144,22 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.11.6])dnl +[AM_AUTOMAKE_VERSION([1.15])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 - # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and @@ -89,7 +178,7 @@ # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is `.', but things will broke when you +# harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, @@ -107,30 +196,26 @@ # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1997-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 9 - # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ(2.52)dnl - ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl @@ -149,16 +234,14 @@ Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, -# 2010, 2011 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 12 -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing @@ -168,7 +251,7 @@ # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "GCJ", or "OBJC". +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was @@ -181,12 +264,13 @@ AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl -ifelse([$1], CC, [depcc="$CC" am_compiler_list=], - [$1], CXX, [depcc="$CXX" am_compiler_list=], - [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], UPC, [depcc="$UPC" am_compiler_list=], - [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], @@ -194,8 +278,8 @@ # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -235,16 +319,16 @@ : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -253,8 +337,8 @@ test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else @@ -262,7 +346,7 @@ fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -310,7 +394,7 @@ # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl @@ -320,9 +404,13 @@ # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE(dependency-tracking, -[ --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors]) +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' @@ -337,20 +425,18 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -#serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ - # Autoconf 2.62 quotes --file arguments for eval, but not when files + # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in @@ -363,7 +449,7 @@ # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but + # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. @@ -375,21 +461,19 @@ continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. + # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue + test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` @@ -407,7 +491,7 @@ # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each `.P' file that we will +# is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], @@ -417,18 +501,21 @@ # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 16 - # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- @@ -441,7 +528,7 @@ # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.62])dnl +[AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl @@ -470,33 +557,42 @@ # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) -AM_MISSING_PROG(AUTOCONF, autoconf) -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) -AM_MISSING_PROG(AUTOHEADER, autoheader) -AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AM_PROG_MKDIR_P])dnl -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl @@ -505,34 +601,82 @@ [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES(OBJC)], - [define([AC_PROG_OBJC], - defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl -]) -_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl -dnl The `parallel-tests' driver may need to know about EXEEXT, so add the -dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro -dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ]) -dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. @@ -554,21 +698,18 @@ done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, -# Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 - # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then +if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; @@ -576,16 +717,14 @@ install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi -AC_SUBST(install_sh)]) +AC_SUBST([install_sh])]) -# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2003-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 2 - # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], @@ -599,21 +738,18 @@ rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) -# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005 -# Free Software Foundation, Inc. +# Copyright (C) 1998-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 5 - # AM_PROG_LEX # ----------- # Autoconf leaves LEX=: if lex or flex can't be found. Change that to a # "missing" invocation, for better error output. AC_DEFUN([AM_PROG_LEX], -[AC_PREREQ(2.50)dnl +[AC_PREREQ([2.50])dnl AC_REQUIRE([AM_MISSING_HAS_RUN])dnl AC_REQUIRE([AC_PROG_LEX])dnl if test "$LEX" = :; then @@ -622,14 +758,12 @@ # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 4 - # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. @@ -647,7 +781,7 @@ _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. +# Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include @@ -674,15 +808,12 @@ # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1997-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 6 - # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], @@ -690,11 +821,10 @@ $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) - # AM_MISSING_HAS_RUN # ------------------ -# Define MISSING if not defined so far and test if it supports --run. -# If it does, set am_missing_run to use it, otherwise, to nothing. +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl @@ -707,54 +837,22 @@ esac fi # Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " else am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) + AC_MSG_WARN(['missing' script is too old or missing]) fi ]) -# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, -# Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 1 - -# AM_PROG_MKDIR_P -# --------------- -# Check for `mkdir -p'. -AC_DEFUN([AM_PROG_MKDIR_P], -[AC_PREREQ([2.60])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, -dnl while keeping a definition of mkdir_p for backward compatibility. -dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. -dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of -dnl Makefile.ins that do not define MKDIR_P, so we do our own -dnl adjustment using top_builddir (which is defined more often than -dnl MKDIR_P). -AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl -case $mkdir_p in - [[\\/$]]* | ?:[[\\/]]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac -]) - # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software -# Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 5 - # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], @@ -764,7 +862,7 @@ # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ @@ -778,24 +876,82 @@ AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Check to make sure that the build environment is sane. -*- Autoconf -*- +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 -# Free Software Foundation, Inc. +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 5 +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -806,32 +962,40 @@ esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac -# Do `set' in a subshell so we don't clobber the current shell's +# Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done test "$[2]" = conftest.file ) then @@ -841,46 +1005,118 @@ AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi -AC_MSG_RESULT(yes)]) +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) -# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# Copyright (C) 2009-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- -# One issue with vendor `install' (even GNU) is that you can't +# One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in `make install-strip', and initialize +# always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. +# Copyright (C) 2006-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 3 - # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. @@ -894,18 +1130,16 @@ # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. +# Copyright (C) 2004-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 2 - # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. -# FORMAT should be one of `v7', `ustar', or `pax'. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory @@ -915,76 +1149,114 @@ # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar +# AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - [m4_case([$1], [ustar],, [pax],, - [m4_fatal([Unknown tar format])]) -AC_MSG_CHECKING([how to create a $1 tar archive]) -# Loop over all known methods to create a tar archive until one works. + +# We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' -_am_tools=${am_cv_prog_tar_$1-$_am_tools} -# Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of `-'. -for _am_tool in $_am_tools -do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; - do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - # tar/untar a dummy directory, and stop if the command works - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi -done -rm -rf conftest.dir -AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) -AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR diff -Nru jags-3.4.0/compile jags-4.0.0/compile --- jags-3.4.0/compile 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/compile 2015-01-07 12:05:37.000000000 +0000 @@ -0,0 +1,347 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2012-10-14.11; # UTC + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff -Nru jags-3.4.0/config.guess jags-4.0.0/config.guess --- jags-3.4.0/config.guess 2013-08-29 13:54:37.000000000 +0000 +++ jags-4.0.0/config.guess 2015-01-07 12:05:37.000000000 +0000 @@ -1,14 +1,12 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -# 2011, 2012 Free Software Foundation, Inc. +# Copyright 1992-2015 Free Software Foundation, Inc. -timestamp='2012-02-10' +timestamp='2015-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but @@ -22,19 +20,17 @@ # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner. Please send patches (context -# diff format) to and include a ChangeLog -# entry. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). # -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# +# Please send patches to . + me=`echo "$0" | sed -e 's,.*/,,'` @@ -54,9 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 -Free Software Foundation, Inc. +Copyright 1992-2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -138,6 +132,27 @@ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + ;; +esac + # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in @@ -200,6 +215,10 @@ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} @@ -302,7 +321,7 @@ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) + arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) @@ -560,8 +579,9 @@ else IBM_ARCH=powerpc fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi @@ -801,10 +821,13 @@ i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; - i*:MSYS*:*) + *:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) @@ -852,21 +875,21 @@ exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in @@ -879,59 +902,54 @@ EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-gnueabi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi else - echo ${UNAME_MACHINE}-unknown-linux-gnueabihf + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) - LIBC=gnu - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build @@ -950,54 +968,63 @@ #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; - or32:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-gnu + echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu + echo hppa64-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu + echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu + echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -1201,6 +1228,9 @@ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; @@ -1227,19 +1257,31 @@ exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - i386) - eval $set_cc_for_build - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - UNAME_PROCESSOR="x86_64" - fi - fi ;; - unknown) UNAME_PROCESSOR=powerpc ;; - esac + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) @@ -1256,7 +1298,7 @@ NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; - NSE-?:NONSTOP_KERNEL:*:*) + NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) @@ -1330,157 +1372,6 @@ exit ;; esac -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - cat >&2 < header file. */ #undef HAVE_IEEEFP_H @@ -101,12 +98,6 @@ /* Define if libdlloader will be built on this platform */ #undef HAVE_LIBDLLOADER -/* Define to 1 if you have the `m' library (-lm). */ -#undef HAVE_LIBM - -/* Define to 1 if you have the `log1p' function. */ -#undef HAVE_LOG1P - /* Define this if a modern libltdl is already installed */ #undef HAVE_LTDL @@ -167,12 +158,6 @@ /* Define if isfinite() is correct for -Inf/NaN/Inf. */ #undef HAVE_WORKING_ISFINITE -/* Define if log() is correct for 0/-1. */ -#undef HAVE_WORKING_LOG - -/* Define if log1p() exists and is accurate enough. */ -#undef HAVE_WORKING_LOG1P - /* Define if you have IEEE 754 floating point arithmetic. */ #undef IEEE_754 @@ -202,9 +187,6 @@ /* Define to the shared library suffix, say, ".dylib". */ #undef LT_SHARED_EXT -/* Define if you have standalone R math library */ -#undef MATHLIB_STANDALONE - /* Define if dlsym() requires a leading underscore in symbol names. */ #undef NEED_USCORE diff -Nru jags-3.4.0/config.sub jags-4.0.0/config.sub --- jags-3.4.0/config.sub 2013-08-29 13:54:37.000000000 +0000 +++ jags-4.0.0/config.sub 2015-01-07 12:05:37.000000000 +0000 @@ -1,24 +1,18 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -# 2011, 2012 Free Software Foundation, Inc. - -timestamp='2012-02-10' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# Copyright 1992-2015 Free Software Foundation, Inc. + +timestamp='2015-01-01' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . @@ -26,11 +20,12 @@ # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches to . Submit a context -# diff and a properly formatted GNU ChangeLog entry. +# Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -73,9 +68,7 @@ version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 -Free Software Foundation, Inc. +Copyright 1992-2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -123,7 +116,7 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) @@ -156,7 +149,7 @@ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze) + -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; @@ -225,6 +218,12 @@ -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; -lynx*) os=-lynxos ;; @@ -253,21 +252,24 @@ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ - | be32 | be64 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | be32 | be64 \ | bfin \ - | c4x | clipper \ + | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ - | fido | fr30 | frv \ + | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ + | k1om \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep | metag \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -281,23 +283,26 @@ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ - | nios | nios2 \ + | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ - | open8 \ - | or32 \ + | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ + | riscv32 | riscv64 \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ @@ -308,6 +313,7 @@ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) @@ -322,7 +328,10 @@ c6x) basic_machine=tic6x-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none ;; @@ -364,13 +373,13 @@ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | clipper-* | craynv-* | cydra-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ @@ -379,11 +388,13 @@ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ + | k1om-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -397,18 +408,22 @@ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ + | or1k*-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ @@ -426,6 +441,7 @@ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ + | visium-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ @@ -763,6 +779,9 @@ basic_machine=m68k-isi os=-sysv ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; m68knommu) basic_machine=m68k-unknown os=-linux @@ -782,11 +801,15 @@ basic_machine=ns32k-utek os=-sysv ;; - microblaze) + microblaze*) basic_machine=microblaze-xilinx ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; mingw32) - basic_machine=i386-pc + basic_machine=i686-pc os=-mingw32 ;; mingw32ce) @@ -814,6 +837,10 @@ basic_machine=powerpc-unknown os=-morphos ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; msdos) basic_machine=i386-pc os=-msdos @@ -822,7 +849,7 @@ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) - basic_machine=i386-pc + basic_machine=i686-pc os=-msys ;; mvs) @@ -998,7 +1025,7 @@ ;; ppc64) basic_machine=powerpc64-unknown ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown @@ -1013,7 +1040,11 @@ basic_machine=i586-unknown os=-pw32 ;; - rdos) + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) basic_machine=i386-pc os=-rdos ;; @@ -1340,29 +1371,29 @@ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* \ + | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ + | -bitrig* | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ + | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1486,9 +1517,6 @@ -aros*) os=-aros ;; - -kaos*) - os=-kaos - ;; -zvmoe) os=-zvmoe ;; @@ -1537,6 +1565,12 @@ c4x-* | tic4x-*) os=-coff ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; tic54x-*) os=-coff ;; diff -Nru jags-3.4.0/configure jags-4.0.0/configure --- jags-3.4.0/configure 2013-08-30 13:23:48.000000000 +0000 +++ jags-4.0.0/configure 2015-09-12 07:01:05.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for JAGS 3.4.0. +# Generated by GNU Autoconf 2.69 for JAGS 4.0.0. # # Report bugs to . # @@ -592,8 +592,8 @@ # Identity of this package. PACKAGE_NAME='JAGS' PACKAGE_TARNAME='JAGS' -PACKAGE_VERSION='3.4.0' -PACKAGE_STRING='JAGS 3.4.0' +PACKAGE_VERSION='4.0.0' +PACKAGE_STRING='JAGS 4.0.0' PACKAGE_BUGREPORT='martyn_plummer@users.sourceforge.net' PACKAGE_URL='' @@ -641,10 +641,6 @@ LTLIBOBJS LIBOBJS jagsmoddir -RMATH_HAVE_WORKING_LOG1P -RMATH_HAVE_WORKING_LOG -RMATH_HAVE_LOG1P -RMATH_HAVE_EXPM1 LAPACK_LIBS BLAS_LIBS FLIBS @@ -723,6 +719,13 @@ OBJDUMP DLLTOOL AS +CPPUNIT_LIBS +CPPUNIT_CFLAGS +CPPUNIT_CONFIG +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V am__untar am__tar AMTAR @@ -797,6 +800,9 @@ ac_subst_files='' ac_user_opts=' enable_option_checking +enable_silent_rules +with_cppunit_prefix +with_cppunit_exec_prefix enable_static enable_shared with_pic @@ -1369,7 +1375,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures JAGS 3.4.0 to adapt to many kinds of systems. +\`configure' configures JAGS 4.0.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1439,7 +1445,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of JAGS 3.4.0:";; + short | recursive ) echo "Configuration of JAGS 4.0.0:";; esac cat <<\_ACEOF @@ -1447,18 +1453,24 @@ --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") --enable-static[=PKGS] build static libraries [default=no] --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build --disable-libtool-lock avoid locking (might break parallel builds) --enable-ltdl-install install libltdl Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-cppunit-prefix=PFX Prefix where CppUnit is installed (optional) + --with-cppunit-exec-prefix=PFX Exec prefix where CppUnit is installed (optional) --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] @@ -1557,7 +1569,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -JAGS configure 3.4.0 +JAGS configure 4.0.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2231,7 +2243,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by JAGS $as_me 3.4.0, which was +It was created by JAGS $as_me 4.0.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2579,8 +2591,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -JAGS_MAJOR=3 -JAGS_MINOR=4 +JAGS_MAJOR=4 +JAGS_MINOR=0 @@ -2688,7 +2700,7 @@ ac_config_headers="$ac_config_headers config.h" -am__api_version='1.11' +am__api_version='1.15' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -2785,9 +2797,6 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } -# Just in case -sleep 1 -echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -2798,32 +2807,40 @@ esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac -# Do `set' in a subshell so we don't clobber the current shell's +# Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken -alias in your environment" "$LINENO" 5 - fi + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done test "$2" = conftest.file ) then @@ -2835,6 +2852,16 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. @@ -2845,8 +2872,8 @@ ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in @@ -2857,15 +2884,15 @@ esac fi # Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " else am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi -if test x"${install_sh}" != xset; then +if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; @@ -2874,10 +2901,10 @@ esac fi -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. +# will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. @@ -3016,12 +3043,6 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } -mkdir_p="$MKDIR_P" -case $mkdir_p in - [\\/$]* | ?:[\\/]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac - for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. @@ -3104,6 +3125,45 @@ fi rmdir .tst 2>/dev/null +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." @@ -3126,7 +3186,7 @@ # Define the identity of the package. PACKAGE='JAGS' - VERSION='3.4.0' + VERSION='4.0.0' cat >>confdefs.h <<_ACEOF @@ -3154,12 +3214,22 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' @@ -3167,6 +3237,190 @@ +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + + + + +# Check whether --with-cppunit-prefix was given. +if test "${with_cppunit_prefix+set}" = set; then : + withval=$with_cppunit_prefix; cppunit_config_prefix="$withval" +else + cppunit_config_prefix="" +fi + + +# Check whether --with-cppunit-exec-prefix was given. +if test "${with_cppunit_exec_prefix+set}" = set; then : + withval=$with_cppunit_exec_prefix; cppunit_config_exec_prefix="$withval" +else + cppunit_config_exec_prefix="" +fi + + + if test x$cppunit_config_exec_prefix != x ; then + cppunit_config_args="$cppunit_config_args --exec-prefix=$cppunit_config_exec_prefix" + if test x${CPPUNIT_CONFIG+set} != xset ; then + CPPUNIT_CONFIG=$cppunit_config_exec_prefix/bin/cppunit-config + fi + fi + if test x$cppunit_config_prefix != x ; then + cppunit_config_args="$cppunit_config_args --prefix=$cppunit_config_prefix" + if test x${CPPUNIT_CONFIG+set} != xset ; then + CPPUNIT_CONFIG=$cppunit_config_prefix/bin/cppunit-config + fi + fi + + # Extract the first word of "cppunit-config", so it can be a program name with args. +set dummy cppunit-config; 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_path_CPPUNIT_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $CPPUNIT_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_CPPUNIT_CONFIG="$CPPUNIT_CONFIG" # Let the user override the test with a path. + ;; + *) + 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_path_CPPUNIT_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $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 + + test -z "$ac_cv_path_CPPUNIT_CONFIG" && ac_cv_path_CPPUNIT_CONFIG="no" + ;; +esac +fi +CPPUNIT_CONFIG=$ac_cv_path_CPPUNIT_CONFIG +if test -n "$CPPUNIT_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPPUNIT_CONFIG" >&5 +$as_echo "$CPPUNIT_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + cppunit_version_min=1.12.1 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Cppunit - version >= $cppunit_version_min" >&5 +$as_echo_n "checking for Cppunit - version >= $cppunit_version_min... " >&6; } + no_cppunit="" + if test "$CPPUNIT_CONFIG" = "no" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + no_cppunit=yes + else + CPPUNIT_CFLAGS=`$CPPUNIT_CONFIG --cflags` + CPPUNIT_LIBS=`$CPPUNIT_CONFIG --libs` + cppunit_version=`$CPPUNIT_CONFIG --version` + + cppunit_major_version=`echo $cppunit_version | \ + sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` + cppunit_minor_version=`echo $cppunit_version | \ + sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` + cppunit_micro_version=`echo $cppunit_version | \ + sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` + + cppunit_major_min=`echo $cppunit_version_min | \ + sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` + if test "x${cppunit_major_min}" = "x" ; then + cppunit_major_min=0 + fi + + cppunit_minor_min=`echo $cppunit_version_min | \ + sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` + if test "x${cppunit_minor_min}" = "x" ; then + cppunit_minor_min=0 + fi + + cppunit_micro_min=`echo $cppunit_version_min | \ + sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` + if test "x${cppunit_micro_min}" = "x" ; then + cppunit_micro_min=0 + fi + + cppunit_version_proper=`expr \ + $cppunit_major_version \> $cppunit_major_min \| \ + $cppunit_major_version \= $cppunit_major_min \& \ + $cppunit_minor_version \> $cppunit_minor_min \| \ + $cppunit_major_version \= $cppunit_major_min \& \ + $cppunit_minor_version \= $cppunit_minor_min \& \ + $cppunit_micro_version \>= $cppunit_micro_min ` + + if test "$cppunit_version_proper" = "1" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cppunit_major_version.$cppunit_minor_version.$cppunit_micro_version" >&5 +$as_echo "$cppunit_major_version.$cppunit_minor_version.$cppunit_micro_version" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + no_cppunit=yes + fi + fi + + if test "x$no_cppunit" = x ; then + : + else + CPPUNIT_CFLAGS="" + CPPUNIT_LIBS="" + : + fi + + + + + @@ -3288,7 +3542,7 @@ _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. +# Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include @@ -4121,6 +4375,65 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 @@ -4132,8 +4445,8 @@ # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -4168,16 +4481,16 @@ : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -4186,8 +4499,8 @@ test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else @@ -4195,7 +4508,7 @@ fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -6488,7 +6801,7 @@ rm -rf conftest* ;; -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext @@ -6506,7 +6819,10 @@ x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; - ppc64-*linux*|powerpc64-*linux*) + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) @@ -6525,7 +6841,10 @@ x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; - ppc*-*linux*|powerpc*-*linux*) + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) @@ -13570,6 +13889,65 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 @@ -13581,8 +13959,8 @@ # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -13617,16 +13995,16 @@ : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -13635,8 +14013,8 @@ test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else @@ -13644,7 +14022,7 @@ fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -13966,8 +14344,8 @@ # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -14002,16 +14380,16 @@ : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -14020,8 +14398,8 @@ test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else @@ -14029,7 +14407,7 @@ fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -22835,245 +23213,10 @@ fi - - -$as_echo "#define MATHLIB_STANDALONE 1" >>confdefs.h - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sin in -lm" >&5 -$as_echo_n "checking for sin in -lm... " >&6; } -if ${ac_cv_lib_m_sin+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lm $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sin (); -#ifdef F77_DUMMY_MAIN - -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } - -#endif -int -main () -{ -return sin (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_m_sin=yes -else - ac_cv_lib_m_sin=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sin" >&5 -$as_echo "$ac_cv_lib_m_sin" >&6; } -if test "x$ac_cv_lib_m_sin" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBM 1 -_ACEOF - - LIBS="-lm $LIBS" - -fi - - -## IEEE 754. We rely on this in e.g. the working log test. -##R_IEEE_754 - - for ac_func in expm1 log1p -do -as_ac_Symbol=`$as_echo "ac_cv_have_decl_$ac_func" | $as_tr_sh` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $ac_func exists and is declared" >&5 -$as_echo_n "checking whether $ac_func exists and is declared... " >&6; } -if eval \${$as_ac_Symbol+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -#ifdef F77_DUMMY_MAIN - -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } - -#endif -int -main () -{ -#ifndef $ac_func - char *p = (char *) $ac_func; -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$as_ac_Symbol=yes" -else - eval "$as_ac_Symbol=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$as_ac_Symbol - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if test `eval 'as_val=${'$as_ac_Symbol'};$as_echo "$as_val"'` = yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi done - -## Used to build src/include/Rmath.h. -## -## we don't use AC_CONFIG_HEADERS on Rmath.h.in because -## a) that would comment out #undef statements in Rmath.h.in and -## b) Rmath.h should be a self-contained file for standalone Rmath use. -## -if test "${ac_cv_have_decl_expm1}" = yes; then - RMATH_HAVE_EXPM1="# define HAVE_EXPM1 1" -else - RMATH_HAVE_EXPM1="# undef HAVE_EXPM1" -fi - -if test "${ac_cv_have_decl_log1p}" = yes; then - RMATH_HAVE_LOG1P="# define HAVE_LOG1P 1" -else - RMATH_HAVE_LOG1P="# undef HAVE_LOG1P" -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working log" >&5 -$as_echo_n "checking for working log... " >&6; } -if ${r_cv_func_log_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - r_cv_func_log_works=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include "confdefs.h" -int main () { -/* we require isnan as from R 2.0.0 */ - exit(!(log(0.) == -1. / 0. && isnan(log(-1.)))); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - r_cv_func_log_works=yes -else - r_cv_func_log_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $r_cv_func_log_works" >&5 -$as_echo "$r_cv_func_log_works" >&6; } -if test "x${r_cv_func_log_works}" = xyes; then - -$as_echo "#define HAVE_WORKING_LOG 1" >>confdefs.h - - RMATH_HAVE_WORKING_LOG="# define HAVE_WORKING_LOG 1" -else - RMATH_HAVE_WORKING_LOG="# undef HAVE_WORKING_LOG" -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working log1p" >&5 -$as_echo_n "checking for working log1p... " >&6; } -if ${r_cv_func_log1p_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - r_cv_func_log1p_works=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include "confdefs.h" -int main () { -#ifdef HAVE_LOG1P - int k; - double d; - double x = 1.0; - for(k = 0; k < 53; k++) x /= 2.0; - - /* log(1+x) = x - (1/2)x^2 + (1/3)x^3 - (1/4)x^4 ... */ - /* = x for x sufficiently small */ - for(k = -54; k > -1022; --k) { - x /= 2.0; - if(x == 0.0) - exit(0); /* OK: reached underflow limit */ - d = log1p(x); - if(d == 0.0) - exit(1); /* ERROR: inaccurate log1p() */ - /* for large k, ((1/2)x^2)/x might appear in the guard digits */ - if(k < -80 && d != x) - exit(1); /* ERROR: inaccurate log1p() */ - } - exit(0); -#else - exit(1); -#endif -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - r_cv_func_log1p_works=yes -else - r_cv_func_log1p_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $r_cv_func_log1p_works" >&5 -$as_echo "$r_cv_func_log1p_works" >&6; } -if test "x${r_cv_func_log1p_works}" = xyes; then - -$as_echo "#define HAVE_WORKING_LOG1P 1" >>confdefs.h - - RMATH_HAVE_WORKING_LOG1P="# define HAVE_WORKING_LOG1P 1" -else - RMATH_HAVE_WORKING_LOG1P="# undef HAVE_WORKING_LOG1P" -fi - - - - jagsmoddir=${libdir}/JAGS/modules-${JAGS_MAJOR} -ac_config_files="$ac_config_files Makefile m4/Makefile etc/Makefile etc/jags.pc libltdl/Makefile src/Makefile src/lib/Makefile src/lib/version.cc src/lib/util/Makefile src/lib/sarray/Makefile src/lib/function/Makefile src/lib/distribution/Makefile src/lib/graph/Makefile src/lib/sampler/Makefile src/lib/model/Makefile src/lib/module/Makefile src/lib/compiler/Makefile src/lib/rng/Makefile src/jrmath/Makefile src/include/Makefile src/include/util/Makefile src/include/sarray/Makefile src/include/function/Makefile src/include/distribution/Makefile src/include/graph/Makefile src/include/sampler/Makefile src/include/model/Makefile src/include/module/Makefile src/include/compiler/Makefile src/include/rng/Makefile src/modules/Makefile src/modules/base/Makefile src/modules/base/functions/Makefile src/modules/base/rngs/Makefile src/modules/base/samplers/Makefile src/modules/base/monitors/Makefile src/modules/bugs/Makefile src/modules/bugs/functions/Makefile src/modules/bugs/distributions/Makefile src/modules/bugs/samplers/Makefile src/modules/bugs/matrix/Makefile src/modules/msm/Makefile src/modules/msm/functions/Makefile src/modules/msm/distributions/Makefile src/modules/msm/matrix/Makefile src/modules/mix/Makefile src/modules/mix/distributions/Makefile src/modules/mix/samplers/Makefile src/modules/dic/Makefile src/modules/lecuyer/Makefile src/modules/glm/Makefile src/modules/glm/CSparse/Makefile src/modules/glm/SSparse/Makefile src/modules/glm/SSparse/UFconfig/Makefile src/modules/glm/SSparse/AMD/Makefile src/modules/glm/SSparse/COLAMD/Makefile src/modules/glm/SSparse/CHOLMOD/Makefile src/modules/glm/SSparse/CHOLMOD/Check/Makefile src/modules/glm/SSparse/CHOLMOD/Cholesky/Makefile src/modules/glm/SSparse/CHOLMOD/Core/Makefile src/modules/glm/SSparse/CHOLMOD/Include/Makefile src/modules/glm/SSparse/CHOLMOD/MatrixOps/Makefile src/modules/glm/SSparse/CHOLMOD/Modify/Makefile src/modules/glm/SSparse/CHOLMOD/Supernodal/Makefile src/modules/glm/samplers/Makefile src/terminal/Makefile win/Makefile win/runtime32/Makefile win/runtime64/Makefile doc/Makefile doc/manual/Makefile" +ac_config_files="$ac_config_files Makefile m4/Makefile etc/Makefile etc/jags.pc libltdl/Makefile src/Makefile src/lib/Makefile src/lib/version.cc src/lib/util/Makefile src/lib/sarray/Makefile src/lib/function/Makefile src/lib/distribution/Makefile src/lib/graph/Makefile src/lib/sampler/Makefile src/lib/model/Makefile src/lib/module/Makefile src/lib/compiler/Makefile src/lib/rng/Makefile src/jrmath/Makefile src/include/Makefile src/include/util/Makefile src/include/sarray/Makefile src/include/function/Makefile src/include/distribution/Makefile src/include/graph/Makefile src/include/sampler/Makefile src/include/model/Makefile src/include/module/Makefile src/include/compiler/Makefile src/include/rng/Makefile src/modules/Makefile src/modules/base/Makefile src/modules/base/functions/Makefile src/modules/base/rngs/Makefile src/modules/base/samplers/Makefile src/modules/base/monitors/Makefile src/modules/bugs/Makefile src/modules/bugs/functions/Makefile src/modules/bugs/distributions/Makefile src/modules/bugs/samplers/Makefile src/modules/bugs/matrix/Makefile src/modules/msm/Makefile src/modules/msm/functions/Makefile src/modules/msm/distributions/Makefile src/modules/msm/matrix/Makefile src/modules/mix/Makefile src/modules/mix/distributions/Makefile src/modules/mix/samplers/Makefile src/modules/dic/Makefile src/modules/lecuyer/Makefile src/modules/glm/Makefile src/modules/glm/CSparse/Makefile src/modules/glm/SSparse/Makefile src/modules/glm/SSparse/UFconfig/Makefile src/modules/glm/SSparse/AMD/Makefile src/modules/glm/SSparse/COLAMD/Makefile src/modules/glm/SSparse/CHOLMOD/Makefile src/modules/glm/SSparse/CHOLMOD/Check/Makefile src/modules/glm/SSparse/CHOLMOD/Cholesky/Makefile src/modules/glm/SSparse/CHOLMOD/Core/Makefile src/modules/glm/SSparse/CHOLMOD/Include/Makefile src/modules/glm/SSparse/CHOLMOD/MatrixOps/Makefile src/modules/glm/SSparse/CHOLMOD/Modify/Makefile src/modules/glm/SSparse/CHOLMOD/Supernodal/Makefile src/modules/glm/samplers/Makefile src/terminal/Makefile win/Makefile win/runtime32/Makefile win/runtime64/Makefile doc/Makefile doc/manual/Makefile test/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -23184,6 +23327,14 @@ LTLIBOBJS=$ac_ltlibobjs +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' @@ -23634,7 +23785,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by JAGS $as_me 3.4.0, which was +This file was extended by JAGS $as_me 4.0.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -23700,7 +23851,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -JAGS config.status 3.4.0 +JAGS config.status 4.0.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -24366,6 +24517,7 @@ "win/runtime64/Makefile") CONFIG_FILES="$CONFIG_FILES win/runtime64/Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "doc/manual/Makefile") CONFIG_FILES="$CONFIG_FILES doc/manual/Makefile" ;; + "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac @@ -24962,7 +25114,7 @@ case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Autoconf 2.62 quotes --file arguments for eval, but not when files + # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in @@ -24975,7 +25127,7 @@ # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but + # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. @@ -25009,21 +25161,19 @@ continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. + # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue + test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || diff -Nru jags-3.4.0/configure.ac jags-4.0.0/configure.ac --- jags-3.4.0/configure.ac 2013-08-30 12:19:35.000000000 +0000 +++ jags-4.0.0/configure.ac 2015-09-12 07:00:16.000000000 +0000 @@ -2,9 +2,9 @@ AC_PREREQ(2.63) -AC_INIT([JAGS],[3.4.0],[martyn_plummer@users.sourceforge.net],[JAGS]) -JAGS_MAJOR=3 -JAGS_MINOR=4 +AC_INIT([JAGS],[4.0.0],[martyn_plummer@users.sourceforge.net],[JAGS]) +JAGS_MAJOR=4 +JAGS_MINOR=0 AC_SUBST(JAGS_MAJOR) AC_SUBST(JAGS_MINOR) @@ -12,7 +12,8 @@ AC_CONFIG_SRCDIR([src/lib/Console.cc]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADERS([config.h]) -AM_INIT_AUTOMAKE +AM_INIT_AUTOMAKE([subdir-objects]) +AM_PATH_CPPUNIT(1.12.1) dnl libtool and ltdl configuration LT_PREREQ(2.2.6) @@ -47,45 +48,10 @@ dnl fortran stuff AC_F77_WRAPPERS AC_F77_LIBRARY_LDFLAGS -AX_LAPACK([],[ +ACX_LAPACK([],[ AC_MSG_ERROR("You need to install the LAPACK library") ]) -dnl Rmath stuff - -AC_DEFINE(MATHLIB_STANDALONE, 1, [Define if you have standalone R math library]) - -dnl Relevant parts lifted from R's configure.ac, version 2.3.0 -AC_CHECK_LIB(m, sin) - -## IEEE 754. We rely on this in e.g. the working log test. -##R_IEEE_754 - -R_CHECK_FUNCS([expm1 log1p], [#include ]) -## Used to build src/include/Rmath.h. -## -## we don't use AC_CONFIG_HEADERS on Rmath.h.in because -## a) that would comment out #undef statements in Rmath.h.in and -## b) Rmath.h should be a self-contained file for standalone Rmath use. -## -if test "${ac_cv_have_decl_expm1}" = yes; then - RMATH_HAVE_EXPM1="# define HAVE_EXPM1 1" -else - RMATH_HAVE_EXPM1="# undef HAVE_EXPM1" -fi -AC_SUBST(RMATH_HAVE_EXPM1) -if test "${ac_cv_have_decl_log1p}" = yes; then - RMATH_HAVE_LOG1P="# define HAVE_LOG1P 1" -else - RMATH_HAVE_LOG1P="# undef HAVE_LOG1P" -fi -AC_SUBST(RMATH_HAVE_LOG1P) - -R_FUNC_LOG -R_FUNC_LOG1P - -dnl End Rmath stuff - jagsmoddir=${libdir}/JAGS/modules-${JAGS_MAJOR} AC_SUBST(jagsmoddir) @@ -161,5 +127,6 @@ win/runtime64/Makefile doc/Makefile doc/manual/Makefile + test/Makefile ]) AC_OUTPUT diff -Nru jags-3.4.0/debian/changelog jags-4.0.0/debian/changelog --- jags-3.4.0/debian/changelog 2015-10-26 16:25:16.000000000 +0000 +++ jags-4.0.0/debian/changelog 2015-10-26 16:25:16.000000000 +0000 @@ -1,3 +1,11 @@ +jags (4.0.0-1) unstable; urgency=low + + * New upstream release + + * debian/control: Add new Build-Depends: libcppunit-dev + + -- Dirk Eddelbuettel Wed, 07 Oct 2015 09:45:54 -0500 + jags (3.4.0-3) unstable; urgency=low * debian/control: Build-Depends on 'g++ (>= 4:5.2)'; ditto for gfortran @@ -7,6 +15,7 @@ jags (3.4.0-2) unstable; urgency=low + [ never released, changes later reverted ] * debian/rules: Use faketime along with the changelog timestamp to enforce reproducible builds diff -Nru jags-3.4.0/debian/control jags-4.0.0/debian/control --- jags-3.4.0/debian/control 2015-10-26 16:25:16.000000000 +0000 +++ jags-4.0.0/debian/control 2015-10-26 16:25:16.000000000 +0000 @@ -2,7 +2,7 @@ Section: math Priority: optional Maintainer: Dirk Eddelbuettel -Build-Depends: debhelper (>= 7.0.50~), gfortran (>= 4:5.2), liblapack-dev, libltdl-dev (>= 2.2.6b), texlive-base, texlive-latex-base, texlive-generic-recommended, texlive-fonts-recommended, texlive-extra-utils, texlive-latex-recommended, texlive-latex-extra, texinfo, autotools-dev, faketime, g++ (>= 4:5.2) +Build-Depends: debhelper (>= 7.0.50~), gfortran (>= 4:5.2), liblapack-dev, libltdl-dev (>= 2.2.6b), texlive-base, texlive-latex-base, texlive-generic-recommended, texlive-fonts-recommended, texlive-extra-utils, texlive-latex-recommended, texlive-latex-extra, texinfo, autotools-dev, faketime, g++ (>= 4:5.2), libcppunit-dev Standards-Version: 3.9.6 Homepage: http://www-fis.iarc.fr/~martyn/software/jags/ diff -Nru jags-3.4.0/debian/jags.lintian-overrides jags-4.0.0/debian/jags.lintian-overrides --- jags-3.4.0/debian/jags.lintian-overrides 2015-10-26 16:25:16.000000000 +0000 +++ jags-4.0.0/debian/jags.lintian-overrides 2015-10-26 16:25:16.000000000 +0000 @@ -1,13 +1,13 @@ jags: non-dev-pkg-with-shlib-symlink usr/lib/libjrmath.so.0.0.0 usr/lib/libjrmath.so -jags: package-name-doesnt-match-sonames libjags3 libjrmath0 -jags: hardening-no-relro usr/lib/JAGS/modules-3/basemod.so -jags: hardening-no-relro usr/lib/JAGS/modules-3/bugs.so -jags: hardening-no-relro usr/lib/JAGS/modules-3/dic.so -jags: hardening-no-relro usr/lib/JAGS/modules-3/glm.so -jags: hardening-no-relro usr/lib/JAGS/modules-3/lecuyer.so -jags: hardening-no-relro usr/lib/JAGS/modules-3/mix.so -jags: hardening-no-relro usr/lib/JAGS/modules-3/msm.so jags: hardening-no-relro usr/lib/jags/jags-terminal -jags: hardening-no-relro usr/lib/libjags.so.3.0.4 +jags: package-name-doesnt-match-sonames libjags4 libjrmath0 +jags: hardening-no-relro usr/lib/JAGS/modules-4/basemod.so +jags: hardening-no-relro usr/lib/JAGS/modules-4/bugs.so +jags: hardening-no-relro usr/lib/JAGS/modules-4/dic.so +jags: hardening-no-relro usr/lib/JAGS/modules-4/glm.so +jags: hardening-no-relro usr/lib/JAGS/modules-4/lecuyer.so +jags: hardening-no-relro usr/lib/JAGS/modules-4/mix.so +jags: hardening-no-relro usr/lib/JAGS/modules-4/msm.so +jags: hardening-no-relro usr/lib/libjags.so.4.0.0 jags: hardening-no-relro usr/lib/libjrmath.so.0.0.0 -jags: non-dev-pkg-with-shlib-symlink usr/lib/libjags.so.3.0.4 usr/lib/libjags.so +jags: non-dev-pkg-with-shlib-symlink usr/lib/libjags.so.4.0.0 usr/lib/libjags.so diff -Nru jags-3.4.0/debian/jags.postinst jags-4.0.0/debian/jags.postinst --- jags-3.4.0/debian/jags.postinst 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/debian/jags.postinst 2015-10-26 16:25:16.000000000 +0000 @@ -0,0 +1,6 @@ + +#DEBHELPER# + +if [ "$1" = "configure" ]; then + ldconfig +fi diff -Nru jags-3.4.0/depcomp jags-4.0.0/depcomp --- jags-3.4.0/depcomp 2013-08-29 13:54:37.000000000 +0000 +++ jags-4.0.0/depcomp 2015-01-07 12:05:37.000000000 +0000 @@ -1,10 +1,9 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2012-03-27.16; # UTC +scriptversion=2013-05-30.07; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, -# 2011, 2012 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -28,9 +27,9 @@ case $1 in '') - echo "$0: No command. Try '$0 --help' for more information." 1>&2 - exit 1; - ;; + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] @@ -57,11 +56,65 @@ ;; esac +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + # A tabulation character. tab=' ' # A newline character. nl=' ' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 @@ -75,6 +128,9 @@ rm -f "$tmpdepfile" +# Avoid interferences from the environment. +gccflag= dashmflag= + # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case @@ -86,32 +142,32 @@ fi if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then - # This is just like msvisualcpp but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvisualcpp + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then - # This is just like msvc7 but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvc7 + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 fi if test "$depmode" = xlc; then - # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations. - gccflag=-qmakedep=gcc,-MF - depmode=gcc + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc fi case "$depmode" in @@ -134,8 +190,7 @@ done "$@" stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi @@ -143,13 +198,17 @@ ;; gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then @@ -157,15 +216,14 @@ fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" - alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -## The second -e expression handles DOS-style file names with drive letters. + # The second -e expression handles DOS-style file names with drive + # letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. @@ -174,15 +232,15 @@ ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. - tr ' ' "$nl" < "$tmpdepfile" | ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -200,8 +258,7 @@ "$@" -MDupdate "$tmpdepfile" fi stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi @@ -209,7 +266,6 @@ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" - # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in @@ -217,19 +273,15 @@ # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr "$nl" ' ' >> "$depfile" + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ + | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" - # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> "$depfile" + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" + make_dummy_depfile fi rm -f "$tmpdepfile" ;; @@ -247,9 +299,8 @@ # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + set_dir_from "$object" + set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u @@ -262,9 +313,7 @@ "$@" -M fi stat=$? - - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi @@ -273,65 +322,113 @@ do test -f "$tmpdepfile" && break done - if test -f "$tmpdepfile"; then - # Each line is of the form 'foo.o: dependent.h'. - # Do two passes, one to just change these to - # '$object: dependent.h' and one to simply 'dependent.h:'. - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; -icc) - # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'. - # However on - # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c - # ICC 7.0 will fill foo.d with something like - # foo.o: sub/foo.c - # foo.o: sub/foo.h - # which is wrong. We want - # sub/foo.o: sub/foo.c - # sub/foo.o: sub/foo.h - # sub/foo.c: - # sub/foo.h: - # ICC 7.1 will output +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using '\': + # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... - # tcc 0.9.26 (FIXME still under development at the moment of writing) - # will emit a similar output, but also prepend the continuation lines - # with horizontal tabulation characters. - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi + + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" - # Each line is of the form 'foo.o: dependent.h', - # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'. + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to - # '$object: dependent.h' and one to simply 'dependent.h:'. - sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \ - < "$tmpdepfile" > "$depfile" - sed ' - s/[ '"$tab"'][ '"$tab"']*/ /g - s/^ *// - s/ *\\*$// - s/^[^:]*: *// - /^$/d - /:$/d - s/$/ :/ - ' < "$tmpdepfile" >> "$depfile" + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -342,9 +439,8 @@ # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + set_dir_from "$object" + set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d @@ -355,8 +451,7 @@ "$@" +Maked fi stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi @@ -366,76 +461,61 @@ test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ - s/^ *// - s/ \\*$// - s/$/:/ - p - }' "$tmpdepfile" >> "$depfile" + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" else - echo "#dummy" > "$depfile" + make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in 'foo.d' instead, so we check for that too. - # Subdirectories are respected. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - - if test "$libtool" = yes; then - # With Tru64 cc, shared objects can also be used to make a - # static library. This mechanism is used in libtool 1.4 series to - # handle both shared and static libraries in a single compilation. - # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. - # - # With libtool 1.5 this exception was removed, and libtool now - # generates 2 separate objects for the 2 libraries. These two - # compilations output dependencies in $dir.libs/$base.o.d and - # in $dir$base.o.d. We have to check for both files, because - # one of the two compilations can be disabled. We should prefer - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is - # automatically cleaned when .libs/ is deleted, while ignoring - # the former would cause a distcleancheck panic. - tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 - tmpdepfile2=$dir$base.o.d # libtool 1.5 - tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 - tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.o.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - tmpdepfile4=$dir$base.d - "$@" -MD - fi + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; msvc7) if test "$libtool" = yes; then @@ -446,8 +526,7 @@ "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" - if test "$stat" = 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi @@ -473,6 +552,7 @@ G p }' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; @@ -524,13 +604,14 @@ # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | - sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile" + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" - tr ' ' "$nl" < "$tmpdepfile" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -583,10 +664,12 @@ # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" - sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; @@ -622,10 +705,10 @@ esac done - "$@" -E | - sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | - sed '$ s: \\$::' > "$tmpdepfile" + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" @@ -657,15 +740,15 @@ shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; + set fnord "$@" + shift + shift + ;; *) - set fnord "$@" "$arg" - shift - shift - ;; + set fnord "$@" "$arg" + shift + shift + ;; esac done "$@" -E 2>/dev/null | diff -Nru jags-3.4.0/doc/Makefile.in jags-4.0.0/doc/Makefile.in --- jags-3.4.0/doc/Makefile.in 2013-08-30 13:23:25.000000000 +0000 +++ jags-4.0.0/doc/Makefile.in 2015-09-27 12:02:16.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,8 +88,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = doc -DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -62,19 +97,33 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -113,12 +162,33 @@ MANS = $(dist_man_MANS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ @@ -147,6 +217,7 @@ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -160,6 +231,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -229,10 +303,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -315,7 +385,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -384,22 +453,25 @@ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -414,57 +486,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -480,12 +507,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -497,15 +519,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -514,24 +532,26 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) - @list='$(MANS)'; if test -n "$$list"; then \ - list=`for p in $$list; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ - if test -n "$$list" && \ - grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ - echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ - grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ - echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ - echo " typically \`make maintainer-clean' will remove them" >&2; \ - exit 1; \ - else :; fi; \ - else :; fi @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -692,23 +712,23 @@ uninstall-man: uninstall-man1 -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man1 install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-recursive uninstall uninstall-am uninstall-man \ - uninstall-man1 +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-man1 install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-man uninstall-man1 + +.PRECIOUS: Makefile docs: diff -Nru jags-3.4.0/doc/manual/jags_installation_manual.tex jags-4.0.0/doc/manual/jags_installation_manual.tex --- jags-3.4.0/doc/manual/jags_installation_manual.tex 2013-08-30 12:20:23.000000000 +0000 +++ jags-4.0.0/doc/manual/jags_installation_manual.tex 2015-10-01 05:36:11.000000000 +0000 @@ -4,7 +4,7 @@ \usepackage{url} \usepackage{multirow} \usepackage{amsfonts} -\newcommand{\release}{3.4.0} +\newcommand{\release}{4.0.0} \newcommand{\JAGS}{\textsf{JAGS}} \newcommand{\BUGS}{\textsf{BUGS}} \newcommand{\WinBUGS}{\textsf{WinBUGS}} @@ -22,8 +22,8 @@ \begin{document} \title{JAGS Version \release\ installation manual} -\author{Martyn Plummer \and Bill Northcott} -\date{30 August 2013} +\author{Martyn Plummer \and Bill Northcott \and Matt Denwood} +\date{8 September 2015} \maketitle \JAGS\ is distributed in binary format for Microsoft Windows, Mac OS @@ -48,6 +48,10 @@ \begin{verbatim} make -j4 \end{verbatim} +If you have the cppunit library installed then you can test the build with +\begin{verbatim} +make check +\end{verbatim} \subsection{Configure options} @@ -84,8 +88,8 @@ \end{verbatim} It is important to get the installation directory right when using the -\texttt{rjags} interface between R and \JAGS, otherwise the -\texttt{rjags} package will not be able to find the \JAGS\ library. +\code{rjags} interface between R and \JAGS, otherwise the +\code{rjags} package will not be able to find the \JAGS\ library. \subsubsection{Configuration for a private installation} @@ -347,137 +351,260 @@ \clearpage \section{Mac OS X} -There have been big changes in Apple's developer tools in the last -couple of years. Currently (this may change at any time) the core -suite of tools are contained in Xcode. This is now a single app, -which contains the command line tools in -\file{Xcode.app/Contents/Developer/usr}, instead of installing them in -\file{/usr} as was the previous arrangement. The most recent version -of Xcode (4.5) can be downloaded free from the App Store. This -version will only run on Lion 10.7.x and Mountain Lion 10.8.x. If you -are trying to build on an earlier version of MacOS, you will need to -download an older version of Xcode from the Mac Dev Center at -\url{http://developer.apple.com}. This is no longer free. You will -need to sign up on the Mac Developer Program which costs \$99 per -year. The program gives you access to many more resources including -an Apple signed developer certificate which can be used to sign your -code. The instructions that follow assume you are using MacOS 10.7 or -10.8 and have the free Xcode from the App Store. +There have been big changes in Apple's developer tools over the last few +years. Two major transitions in compiler tools have been made between +OS 10.6 and 10.9: firstly a change from gcc to clang compilers, and +secondly a move from the libstdc++ to libc++ standard library. As of +Mac OS 10.7, Apple has provided a free Xcode application from the Mac +App Store, which is a fairly large download but contains all of the libraries +necessary to install \JAGS. The instructions that follow assume you are +running OS 10.9 or later, and have the free Xcode application from the +Mac App Store. \subsection{Required tools} -If you wish to build from a released source package -i.e. \file{JAGS-\release.tar.gz}, you will need Xcode and the gfortran -package which you can find by following the ``tools directory'' link -on the ``R for Mac OS X'' page on CRAN. You will also need to install -the command line tools into /usr. This is done within Xcode from -Preferences $\rightarrow$ Downloads $\rightarrow$ Components. This -setup should be able to build the \JAGS\ sources and also source -packages in R. All the necessary libraries such as BLAS and LAPACK -are included in the standard MacOS install. +If you wish to build from a released source package i.e. +\file{JAGS-\release.tar.gz}, you will need Xcode from the Mac App Store +as described above. You will also need to install command line compilers +and agree to the Xcode agreement before using them (if you have not +done so already). The easiest way to do this is using the Terminal +application from \file{/Applications/Utilities} - opening the +application gives you a terminal with a UNIX shell known as bash. Run +the command \code{xcode-select --install} on the terminal and follow the +instructions. Then run the command \code{sudo xcodebuild -license} +on the terminal, and follow the instructions to agree to the Apple +license terms (an administrators password is required). You will then +need to install the gfortran package which you can find by following the +``tools directory'' link on the ``R for Mac OS X'' page on +\url{http://cran.r-project.org} + +This setup should be able to build the \JAGS\ sources and also source +packages in R. All the necessary libraries such as BLAS and LAPACK are +included within Xcode. Additional tools are required to run the optional +test suite (see section \ref{section:otherosxoptions}). + + +\subsection{Basic installation} + -\subsection{Prepare the source code} +\subsubsection{Prepare the source code} -Move the downloaded \file{JAGS-X.X.X.tar.gz} package to some suitable +Move the downloaded \file{JAGS-\release.tar.gz} package to some suitable working space on your disk and double click the file. This will -decompress the package to give a folder called \file{JAGS-X.X.X}, -where `X.X.X' is the version number. Open the Terminal app from -/Applications/Utilities. This gives you a UNIX shell know as bash. -In the Terminal window after the \$ prompt type 'cd' followed by a -space. In the Finder drag JAGS-X.X.X folder into the Terminal window -and hit return. If this worked for you, typing 'ls' followed by a -return will list the contents of the JAGS folder. - -\subsection{Set up the environment} - -Executable files on MacOS can contain code for more than one CPU -architecture: i386, x86\_64 or ppc. Executables with more than one -architecture are described as 'fat.' The instructions below will build -a fat binary of JAGS containing 32-bit i386 and 64-bit x86\_64 code -which will run on 10.6, 10.7 and 10.8. This is compatible with -current CRAN distributions of R and the rjags module. - -In your Terminal window type the following instructions which set up -the environment for the build. (Note that there is no space after -'platform' and the '$\backslash$' must not be followed by any spaces) -\begin{verbatim} -export CC=/usr/bin/clang -export CXX=/usr/bin/clang++ -export CFLAGS="-g -Os -mmacosx-version-min=10.6 -isysroot \ -/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform\ -/Developer/SDKs/MacOSX10.8.sdk \ --arch i386 -arch x86_64" -export CXXFLAGS="-g -Os -mmacosx-version-min=10.6 -isysroot \ -/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform\ -/Developer/SDKs/MacOSX10.8.sdk \ --arch i386 -arch x86_64" -export FFLAGS="-g -Os -mmacosx-version-min=10.6 -isysroot \ -/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform\ -/Developer/SDKs/MacOSX10.8.sdk -arch i386 -arch x86_64" -export LDFLAGS="-mmacosx-version-min=10.6 -arch i386 -arch x86_64" +decompress the package to give a folder called \file{JAGS-\release}. +You now need to re-open the Terminal and +change the working directory to the \JAGS\ source code. In the Terminal +window after the \$ prompt type \code{cd} followed by a space. In the Finder +drag \file{JAGS-\release} folder into the Terminal window and hit return. If this +worked for you, typing \code{ls} followed by a return will list the contents +of the \JAGS\ folder. + + +\subsubsection{Set up the environment} +\label{section:osxenvironment} + +The instructions below will create a configuration to build \JAGS\ using +libc++ which will only run on 10.9 or later, and is therefore 64-bit only. +This is compatible with the ``Mavericks build'' of \R\ on CRAN and the +corresponding \texttt{rjags} and \texttt{runjags} modules. +In your Terminal window copy/paste the following code: + +\begin{verbatim} +export CFLAGS="-Os -arch x86_64 -framework Accelerate" +export CXXFLAGS="-Os -arch x86_64 -framework Accelerate" +export FFLAGS="-Os -arch x86_64 -framework Accelerate" +export LDFLAGS="-arch x86_64" \end{verbatim} -\subsection{Configuration} +The \texttt{-framework Accelerate} finds the BLAS and LAPACK +contained within the Xcode application. The clang warning +\texttt{-framework Accelerate: `linker' input unused} can +be safely ignored. + +\subsubsection{Configuration} To configure the package type: + \begin{verbatim} -../configure --disable-dependency-tracking --with-included-ltdl +./configure \end{verbatim} + This instruction should complete without reporting an error. -\subsection{Compile} +\subsubsection{Compile} +\label{section:osxcompile} -To compile the code type: -\begin{verbatim} -make -j 8 -\end{verbatim} -The number '8' indicates the number of build threads that should be -run. In general this is best as twice the number of CPU cores in the -computer. Most current Macs have four core CPUs. If your machine is -different, you may want to change the number in the instruction. -Again, this instruction should complete without errors. - -\subsection{Install} +To compile the code type: + +\begin{verbatim} +make -j 8 +\end{verbatim} + +The number '8' indicates the number of parallel build threads that +should be used (this will speed up the build process). In general this +is best as twice the number of CPU cores in the computer - you may want +to change the number in the instruction to match your machine. Again, +this instruction should complete without errors. + +\subsubsection{Install} +\label{section:osxinstall} Finally to install \JAGS\ you need to be using an account with -administration privileges. Type: +administration privileges. Type: + \begin{verbatim} sudo make install -\end{verbatim} -This will ask for your account password and install the code ready to -run as described in the User Manual. +\end{verbatim} + +This will ask for your account password and install the code ready to +run as described in the User Manual. You need to ensure that +\texttt{/usr/local/bin} is in your PATH in order for the command +\texttt{jags} to work from a shell prompt. + +\subsection{Other installation options for Mac OS X} +\label{section:otherosxoptions} + +\subsubsection{Running the test suite} -You need to ensure \texttt{/usr/local/bin} is in your PATH in order -for `jags' to work from a shell prompt. +As of \JAGS\ version 4, a test suite is included with the source code that can be +run to ensure that the compiled code produces the expected results. To run +this code on your installation, you will need to install the CppUnit framework - this can +be downloaded from \url{https://sourceforge.net/projects/cppunit/} or installed using +MacPorts or similar (see section \ref{section:osxtools}). + +You should then be able to run the test suite from the Terminal +(in the \file{JAGS-\release} folder directory) by typing: + +\begin{verbatim} +make check +\end{verbatim} + +If successful, a summary of the checks will be given. Note that the configuration and +first \texttt{make} step may need to be repeated if CppUnit was not installed the first +time these were run. In this case, you may also need to clean the existing +compiled code before running \texttt{make check} using: + +\begin{verbatim} +make clean +\end{verbatim} + + +\subsubsection{Snow Leopard build} + +The instructions below will +create a configuration to build a ``fat'' binary of \JAGS\ (containing +32-bit i386 and 64-bit x86\_64 code) using libstdc++ which will run on +OS 10.6 - 10.9. This is compatible with the ``Snow Leopard build'' of +\R\ on CRAN and the corresponding \texttt{rjags} and \texttt{runjags} modules. +In your Terminal window copy/paste the following code (note that there is no +space after 'platform' and the '$\backslash$' must not be followed by +any spaces): + +\begin{verbatim} +export CFLAGS="-Os -mmacosx-version-min=10.6 -isysroot \ +/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform\ +/Developer/SDKs/MacOSX10.9.sdk \ +-stdlib=libstdc++ \ +-arch i386 -arch x86_64" +export CXXFLAGS="-Os -mmacosx-version-min=10.6 -isysroot \ +/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform\ +/Developer/SDKs/MacOSX10.9.sdk \ +-stdlib=libstdc++ \ +-arch i386 -arch x86_64" +export FFLAGS="-Os -mmacosx-version-min=10.6 -isysroot \ +/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform\ +/Developer/SDKs/MacOSX10.9.sdk \ +-arch i386 -arch x86_64" +export LDFLAGS="-mmacosx-version-min=10.6 -stdlib=libstdc++ \ +-arch i386 -arch x86_64" +\end{verbatim} -\subsection{Older versions of MacOS} +Note that this configuration assumes you are running OS 10.9 - if you +are on an earlier OS, you may need to modify the three occurances of +\texttt{/Developer/SDKs/MacOSX10.9.sdk} to reflect your OS version. + +You should then be able to follow the instructions given in sections \ref{section:osxcompile} +and \ref{section:osxinstall}. If you have already used the same source directory to create +a Mavericks binary you will likely need to run \texttt{make clean} before switching +to build the Snow Leopard binary. If you encounter problems with these instructions on +older versions of Mac OS X, consult previous versions of the installation manual +which are contained within the disk images for older versions of \JAGS\ available from +\url{https://sourceforge.net/projects/mcmc-jags/files/JAGS/} -For instructions for building on Tiger or for older versions of -\R\ see previous versions of this manual. \subsection{Tips for developers and advanced users} -\subsubsection{Compilers} +\subsubsection{Additional tools} +\label{section:osxtools} + +Apple supplies a compiler suite, BLAS and LAPACK along with Xcode, but some +additional tools are required to work with code from the \JAGS\ repository. Probably +the easiest way of obtaining the necessary utilities is using +\url{https://www.macports.org} or \url{http://brew.sh} The following sections assume +that MacPorts is installed. + +\subsubsection{Working with the development code} + +If you want to work on code from the \JAGS\ repository, you will need to +build and install the auxillary GNU tools (autoconf, automake and +libtool), as well as mercurial, bison, flex and cppunit as follows: + +\begin{verbatim} +sudo port install autoconf +sudo port install automake +sudo port install libtool +sudo port install mercurial +sudo port install bison +sudo port install flex +sudo port install cppunit +\end{verbatim} + +Note that specific versions of some these ports may be required - the following +are known to work: autoconf 2.69, automake 1.14.1, libtool 2.4.6, +mercurial 3.4, bison 3.0.4, flex 2.5.37 and cppunit 1.13.2. Advice for +installing older ports (if necessary) is given at: + + \url{https://trac.macports.org/wiki/howto/InstallingOlderPort} + +The following sequence should then retrieve a clone of the current +development branch of \JAGS, prepare the source code for +installation, compile the code and run the test suite: + +\begin{verbatim} +hg clone http://hg.code.sf.net/p/mcmc-jags/code-0 JAGS_devel +cd JAGS_devel +export CFLAGS="-Os -arch x86_64 -framework Accelerate" +export CXXFLAGS="-Os -arch x86_64 -framework Accelerate" +export FFLAGS="-Os -arch x86_64 -framework Accelerate" +export LDFLAGS="-arch x86_64" +autoreconf -fi +./configure +make -j 8 +make check +\end{verbatim} + +You should then be able to follow the install instructions given in section \ref{section:osxinstall}. + +\subsubsection{Using ATLAS} + +Rather than using the versions of BLAS and LAPACK provided within Xcode, it +is possible to use ATLAS which can be installed via MacPorts using: + +\begin{verbatim} +sudo port install atlas +\end{verbatim} + +This command will take some hours to complete. The \texttt{-framework Accelerate} flag can +then be omitted from the instructions given in section \ref{section:osxenvironment}. + + +\subsubsection{A note on Apple compilers} -Older versions of Xcode used the gcc compiler suite. Apple abandoned +Older versions of Xcode used the gcc compiler suite, but Apple abandoned the gcc project when GPL3 was introduced. Current Apple compilers are -based on LLVM. They are invoked as clang and clang++. Although there -appear to be gcc and gxx, these are actually gcc-llvm with an out of -date gcc 4.2 front end on LLVM. These compilers are now deprecated. -While there are versions of current gcc available for MacOS, they do -not recognise the Apple specific -arch flag. This leads to a number -of problems. - -\subsubsection{Developer tools} - -Now that Apple do not use gcc, they have no use for many of the -auxiliary GNU tools required to build it. So the Xcode does not -contain any of the autotools (autoconf, automaker and libtool). If -you want to work on code from the \JAGS\ repository, you will need to -build and install these. Other GNU tools like bison and make are -available but may be very out of date because of the GPL3 issue. -Binaries of cvs, subversion and git are included in Xcode, Mercurial -needs to installed separately if required. +based on LLVM, and are invoked as clang and clang++. The same compilers +are also invoked as gcc and gxx. + \clearpage \section{Windows} @@ -492,49 +619,61 @@ You need to install the following packages \begin{itemize} -\item The TDM-GCC compiler suite for Windows +\item The Rtools compiler suite for Windows \item MSYS \item NSIS, including the AccessControl plug-in \end{itemize} -We used the TDM-GCC compilers based on the MinGW-w64 project -(\url{http://tdm-gcc.tdragon.net}). This distribution was chosen -because it allows us to build a version of JAGS that is statically -linked against the gcc runtime library. This, in turn, is necessary -to have a functional rjags package on Windows. We also tried -Rtools (\url{http://www.murdoch-sutherland.com/Rtools}). Although the -resulting JAGS library is functional, it is not compatible with R: -loading the rjags package causes R to crash on exit. +\subsubsection{Rtools} -TDM-GCC has a nice installer, available from Sourceforge (follow the -links on the main TDM-GCC web site). Ensure that you download the -MinGW-w64/sjlj version as this is capable of producing both 32-bit and -64-bit binaries. +Rtools is a set of compilers and utilities used for compiling R on +Windows. Rtools can be downloaded from your nearest CRAN mirror +(\url{https://cran.r-project.org/bin/windows/Rtools/}). We only need +the compilers, as we use the utilities provided by MSYS (See below). +For this reason, we choose not to add Rtools to the Windows environment +variable \code{PATH} when asked by the installer. + +The JAGS binaries for Windows 4.0.0 and above are built with Rtools +3.3, which is based on gcc 4.6.3. We also successfully built JAGS with +the TDM-GCC compilers (\url{http://tdm-gcc.tdragon.net}) based on gcc +5.1.0. However, the resulting JAGS binary is not compatible with +R. The rjags package can be successfully compiled and linked against +JAGS built with TDM-GCC 5.1.0, and runs correctly on 64-bit R, but +the package spontaneously crashes in 32-bit R. + +\subsubsection{MSYS} + +MSYS (the Minimal SYStem) is part of the MinGW project (Minimal GNU +for Windows). It provides a bash shell for you to build Unix +software. Download the MinGW installer \file{mingw-get-setup.exe} from +\url{http://www.mingw.org}. Run the installer and select +\code{msys-base} (``A Basic MSYS Installation (meta)'') for +installation and then select \code{Apply Changes} from the +\code{Installation} menu. There is no need to install the developer +toolkit (\code{mingw-developer-toolkit}) if you are working with a +release tarball of \JAGS. You should not install any of the compilers +that come with MinGW as we shall be using the Rtools versions. -Select a ``Recommended C/C++'' installation and customize it by -selecting the Fortran compiler, which is not installed by -default. After installation, to force the compiler to use static -linking, delete any import libraries (files ending in \file{.dll.a} -in the TDM-GCC tree. - -MSYS (the Minimal SYStem) is part of the MinGW project. It provides a -bash shell for you to build Unix software. Download the MinGW -installer from \url{http://www.mingw.org}. We used -\file{mingw-get-inst-20120426.exe}. Run the installer and select -``MSYS Basic System''. There is no need to install the ``MinGW -Developer Toolkit'' if you are working with a release tarball of -\JAGS. It is not necessary to install any of the compilers that come -with MinGW as we shall be using the TDM versions. To make MSYS use the -TDM-compilers, edit the file \file{c:/mingw/msys/1.0/etc/fstab} -to read +To make MSYS use the TDM compilers edit the file +\file{c:/mingw/msys/1.0/etc/fstab} to read \begin{verbatim} -c:\MinGW64\ /mingw +c:\Rtools\gcc-4.6.3\bin /mingw \end{verbatim} +This adds the Rtools compilers to your PATH inside the MSYS shell. MSYS creates a home directory for you in -\file{c:/mingw/msys/1.0/home/username}, where \code{username} is -your user name under Windows. You will need to copy and paste the -source files for LAPACK and JAGS into this directory. +\file{c:/mingw/msys/1.0/home/username}, where \code{username} is your +user name under Windows. You will need to copy and paste the source +files for LAPACK and JAGS into this directory. + +At the time of writing, the MinGW installer does not create a shortcut +for MSYS on either the desktop or the start menu, even when these +options are requested. Create your own shortcut to +\file{c:/MingGW/msys/1.0/msys.bat} which launches the MSYS shell. For +completeness, you may wish to use the icon +\file{c:/MinGW/msys/1.0/msys.ico} for your shortcut. + +\subsubsection{NSIS} The Nullsoft Scriptable Install System (\url{http://nsis.sourceforge.net}) allows you to create a @@ -545,11 +684,11 @@ is distributed as a zip file which is unpacked into the installation directory of NSIS. -\subsubsection{Building LAPACK} +\subsection{Building LAPACK} Download the LAPACK source file from \url{http://www.netlib.org/lapack} to your MSYS home directory. We -used version 3.4.1. +used version 3.5.0. You need to build LAPACK twice: once for 32-bit \JAGS\ and once for 64-bit \JAGS. The instructions below are for 32-bit \JAGS. To build @@ -559,11 +698,10 @@ system. This is because the build process must run some 64-bit test programs. -Launch MSYS, labelled as ``MinGW shell'' on the Windows Start Menu, -and unpack the tarball. +Launch MSYS (\file{c:/MingW/msys/1.0/msys.bat}) and unpack the tarball. \begin{verbatim} -tar xfvz lapack-3.4.1.tgz -cd lapack-3.4.1 +tar xfvz lapack-3.5.0.tgz +cd lapack-3.5.0 \end{verbatim} Copy the file \file{INSTALL/make.inc.gfortran} to \file{make.inc} in the top level source directory. Then edit \file{make.inc} replacing @@ -577,10 +715,9 @@ make blaslib make lapacklib \end{verbatim} -The compilation process is slow. Eventually, it will create two static -libraries \file{librefblas.a} and \file{liblapack.a}. These are -insufficient for building \JAGS: you need to create dynamic link -library (DLL) for each one. +This will create two static libraries \file{librefblas.a} and +\file{liblapack.a}. These are insufficient for building \JAGS: you +need to create dynamic link library (DLL) for each one. First create a definition file \file{libblas.def} that exports all the symbols from the BLAS library @@ -591,7 +728,7 @@ (\file{libblas.dll}) and an import library (\file{libblas.dll.a}) \begin{verbatim} gcc -m32 -shared -o libblas.dll -Wl,--out-implib=libblas.dll.a \ -libblas.def librefblas.a -lgfortran +libblas.def librefblas.a -lgfortran \end{verbatim} Repeat the same steps for the LAPACK library, creating an import library @@ -600,26 +737,28 @@ dlltool -z liblapack.def --export-all-symbols liblapack.a gcc -m32 -shared -o liblapack.dll -Wl,--out-implib=liblapack.dll.a \ -liblapack.def liblapack.a -L./ -lblas -lgfortran +liblapack.def liblapack.a -L./ -lblas -lgfortran \end{verbatim} \subsection{Compiling \JAGS} Unpack the JAGS source \begin{verbatim} -tar xfvz JAGS-3.3.0.tar.gz -cd JAGS-3.3.0 +tar xfvz JAGS-4.0.0.tar.gz +cd JAGS-4.0.0 \end{verbatim} and configure JAGS for a 32-bit build \begin{verbatim} -CC="gcc -m32" CXX="g++ -m32" F77="gfortran -m32" \ -./configure LDFLAGS="-L/path/to/import/libs/ -Wl,--enable-auto-import" +CC="gcc -m32" CXX="g++ -m32 -std=c++98" F77="gfortran -m32" \ +LDFLAGS="-L/path/to/import/libs/ -Wl,--enable-auto-import" \ +./configure \end{verbatim} where \file{/path/to/import/libs} is a directory that contains the 32-bit import libraries (\file{libblas.dll.a} and \file{liblapack.dll.a}). This must be an {\em absolute} path name, and not relative to the JAGS build directory. + After the configure step, type \begin{verbatim} make win32-install @@ -638,7 +777,8 @@ reconfigure JAGS for a 64-bit build: \begin{verbatim} CC="gcc -m64" CXX="g++ -m64" F77="gfortran -m64" \ -./configure LDFLAGS="-L/path/to/import/libs/ -Wl,--enable-auto-import" +LDFLAGS="-L/path/to/import/libs/ -Wl,--enable-auto-import" \ +./configure \end{verbatim} Then type \begin{verbatim} @@ -658,7 +798,7 @@ NSIS, is in your PATH. For a typical installation of NSIS, on 64-bit windows: \begin{verbatim} -PATH=$PATH:/c/Program\ files\ \(x86\)/NSIS +PATH=$PATH:/c/Program\ Files\ \(x86\)/NSIS \end{verbatim} Then type \begin{verbatim} @@ -667,5 +807,138 @@ After the build process finishes, the self extracting archive will be in the subdirectory \file{win}. -\end{document} +\subsection{Running the unit tests} + +In order to run the unit tests on Windows you must first install the +cppunit library from source. Download the file \file{cppunit-1.12.1.tar.gz} +from Sourceforge (\url{http://sourceforge.net/projects/cppunit/files/cppunit/1.12.1/}) and +unpack it: +\begin{verbatim} +tar xfvz cppunit-1.12.1.tar.gz +cd cppunit-1.12.1 +\end{verbatim} +Then compile and install as follows: +\begin{verbatim} +CXX="g++ -m32" ./configure --prefix=/opt32 --disable-shared +make +make install +\end{verbatim} +The configure option \verb+--prefix=/opt32+ installs the 32-bit +library into \file{/opt32} instead of the default location +{/usr/local}. Using this option allows you to do a parallel +installation of the 64-bit version of the library, by rebuilding with +configure options \verb|CXX=g++ -m64| and \verb+--prefix=/opt64+. The two +installations will not interfere with each other. + +The configure option \verb+--disable-shared+ prevents the creation of +the DLL \file{libccpunit.dll} and builds only the static library +\file{libcppunit.a}. Without this option, the unit tests will fail. +One of the major limitations of static linking to the C++ runtime is +that you cannot throw exceptions across a DLL boundary. Linking the +test programs against \file{libcppunit.dll} will result in uncaught +exceptions and apparent failures for some of the tests, so it must be +disabled.\footnote{One of the attractions of the TDM-GCC compilers is + that they do allow exceptions across DLL boundaries with static + linking. However, we are not currently using TDM-GCC to build the + JAGS binaries}. + +To run the unit tests, add the option +\verb+--with-cppunit-prefix=/optXX+ when configuring JAGS where +\code{XX} is 32 or 64. Then run \code{make check} after \code{make + winXX-install}. + +\subsection{Running the examples} + +The BUGS classic examples (file \file{classic-bugs.tar.gz} from the JAGS +Sourceforge site) can be run from the Windows command prompt using +the \command{make} command provided by Rtools. This requires adding Rtools +to the Windows search path if it is not currently there. +\begin{verbatim} +set PATH=c:\Rtools\bin;%PATH% +\end{verbatim} +You must have R installed, along with the packages \code{rjags} and +\code{coda}, both of which are available from CRAN +(\url{cran.r-project.org}). + +It is necessary to add R to the search path and to set the variable +\verb+R_LIBS+. Note that here we are using the 64-bit version of R. +You may use the 32-bit version by substituting \code{i386} for +\code{x64}. +\begin{verbatim} +set PATH=c:\Program Files\R\R-3.2.2\bin\x64;%PATH% +set R_LIBS=c:\Users\username\Documents\R\win-library\3.2 +\end{verbatim} +where \file{username} is your Windows user name. Then +\begin{verbatim} +tar xfvz classic-bugs.tar.gz +cd classic-bugs +cd vol1 +make Rcheck +\end{verbatim} +will check all examples in volume 1 using the \code{rjags} package. Repeat +for \file{vol2} to complete the checks. + +You can also run checks using the command line interface of JAGS. This +requires adding JAGS to the search path and overriding the default name +of the JAGS executable. +\begin{verbatim} +set PATH=c:\Program Files\JAGS\JAGS-4.0.0\bin\x64;%PATH% +set JAGS=jags.bat +\end{verbatim} +Then +\begin{verbatim} +make check +\end{verbatim} +in directory \file{vol1} or \file{vol2} will run the checks using the +command line interface. + +\subsection{Using TDM-GCC compilers} + +This section documents the use of TDM-GCC compilers to build JAGS. +TDM-GCC was used to build Windows binaries for JAGS 3.x.y, but has +been dropped in favour of Rtools for the 4.x.y release series. One +reason for this is that the 32-bit version of JAGS built with TDM-GCC +5.1.0 causes the rjags package to spontaneously crash. The 64-bit +version runs correctly. +TDM-GCC has a nice installer, available from Sourceforge (follow the +links on the main TDM-GCC web site +(\url{http://tdm-gcc.tdragon.net}). Ensure that you download the TDM64 +MinGW-w64 edition as this is capable of producing both 32-bit and +64-bit binaries. We tested JAGS with \file{tdm64-gcc-5.1.0-2.exe} +based on gcc 5.1.0. + +Select a ``Recommended C/C++'' installation and customize it by +selecting the Fortran compiler, which is not installed by default. The +installer gives you the option of adding TDM-GCC \file{bin} folder to +the windows PATH variable. We choose not to do this, but added the +\file{bin} to the PATH within the MSYS shell by editing +\file{c:/mingw/msys/1.0/etc/fstab} to read +\begin{verbatim} +c:\TDM-GCC-64 /mingw +\end{verbatim} +After installation of TDM-GCC, to force the compiler to use static +linking, delete any import libraries (files ending in \file{.dll.a} in +the TDM-GCC tree. If you do not do this then you will need to +distribute runtime DLLs from TDM-GCC with JAGS. You can easily do this +by copying the DLLs to \file{runtime32} and \file{runtime64} before +building the installer, as described above. Nevertheless, it is often +more convenient to use static linking. + +Installation proceeds in the same way as for the Rtools build but with +two differences. Firstly, when building the DLLs for blas and lapack, +you need to add the linker flag \verb+-lquadmath+ after +\verb+-lgfortran+. Secondly, when configuring JAGS you should set the +environment variable +\begin{verbatim} +CPPFLAGS=-D_GLIBCXX_USE_CXX11_ABI=0 +\end{verbatim} +This is necessary because gcc 5.1.0 introduced a new application +binary interface (ABI) for the C++ standard library (See +\url{https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html}. The +old ABI is still supported and is used if you set the above flag. If +you want to link JAGS with any software compiled with an earlier +version of gcc then you need to use the old ABI. Failure to do so will +result in error messages about undefined symbols from the linker. + +\end{document} diff -Nru jags-3.4.0/doc/manual/jags_user_manual.tex jags-4.0.0/doc/manual/jags_user_manual.tex --- jags-3.4.0/doc/manual/jags_user_manual.tex 2013-08-30 12:20:45.000000000 +0000 +++ jags-4.0.0/doc/manual/jags_user_manual.tex 2015-04-12 14:46:57.000000000 +0000 @@ -5,7 +5,7 @@ \usepackage{url} \usepackage{multirow} \usepackage{amsfonts} -\newcommand{\release}{3.4.0} +\newcommand{\release}{3.3.0} \newcommand{\JAGS}{\textsf{JAGS}} \newcommand{\rjags}{\textsf{rjags}} \newcommand{\BUGS}{\textsf{BUGS}} @@ -16,7 +16,7 @@ \title{JAGS Version \release\ user manual} \author{Martyn Plummer} -\date{30 August 2013} +\date{1 October 2012} \maketitle \tableofcontents @@ -89,6 +89,8 @@ } \end{verbatim} +\subsubsection{Relations} + Each relation defines a node in the model in terms of other nodes that appear on the right hand side. These are referred to as the parent nodes. Taken together, the nodes in the model (together with the @@ -104,6 +106,16 @@ deterministic node, the value of which is determined exactly by the values of its parents. +\subsubsection{Parameters and arguments} + +Deterministic nodes do not need to be embedded in node arrays. The +node \verb+Y[i]+ could equivalently be defined as +\begin{verbatim} +Y[i] ~ dnorm(alpha + beta * (x[i] - x.bar), tau) +\end{verbatim} + +\subsubsection{Arrays and subsetting} + Nodes defined by a relation are embedded in named arrays. Array names may contain letters, numbers, decimal points and underscores, but they must start with a letter. The node array \verb+mu+ is a vector of length @@ -112,19 +124,65 @@ convention that scalars are considered as vectors of length 1. Hence the array \verb+alpha+ contains a single node \verb+alpha[1]+. -Deterministic nodes do not need to be embedded in node arrays. The -node \verb+Y[i]+ could equivalently be defined as +Subsets of node arrays may be obtained with expressions of the form +\verb+alpha[e]+ where \verb+e+ is any expression that evaluates to an +integer vector. Typically expressions of the form \verb+L:U+ are used, +where $L$ and $U$ are integer arguments to the operator $:$. This +creates an integer vector of length $U - L + 1$ with elements $L, L+1, +\ldots R-1, R$.\footnote{If $L > U$ then the operator $:$ returns a +vector of length zero, which may not be used to take array subsets} + +Multi-dimensional node arrays are also possible. For a two-dimensional +array \verb+B+, the element in row $r$ and column $c$ is accessed as +\verb+B[r,c]+. Complex subsets may be obtained with expressions of the +form \verb+B[rows, cols]+ where \verb+rows+ is an integer vector of +row indices and \verb+cols+ is an integer vector of column indices. +An index expression in any dimension may be omitted, and this implies +taking the whole range of possible indices. So if \verb+B+ is an +$M \times N$ matrix then \verb+B[r,]+ is the whole of row $r$, and is +equivalent to \verb+B[r,1:N]+. Likewise \verb+B[,c]+ is the whole of +column $c$ and is equivalent to \verb+B[1:M,c]+. Finally, \verb+B[,]+ +is the whole matrix, equivalent to \verb+B[1:M,1:N]+. In this case, +one may also simply write \verb+B+ without any square brackets. Note +that writing \verb+B[]+ for a 2-dimensional array will result in a +compilation error: the number of indices separated by commas within +the square brackets must match the dimensions of the array. + +There are some restrictions on index expressions that are allowed on +the left hand side of a relation. Firstly, they must be fixed, meaning +that they must be expressed in terms of data, or constants defined in +the model, or the index of an enclosing for loop (see below). As +a counter-example, the following code snippet is illegal: +\begin{verbatim} + x[i] ~ dnorm(0, 1) + i ~ dcat(p) +\end{verbatim} +unless $i$ is observed and is supplied with the data. This restriction +ensures that the node \verb+x[i]+ can be unambiguously referred to +elsewhere in the model -- e.g. as a function argument or the parameter +for a distribution -- and does not change from one iteration to +another. Secondly, for vector-valued subsets, the same index must not +be repeated. For example, supposed $\mu$ is a 2-vector and $T$ is a +$2 \times 2$ matrix. Then \verb+dmnorm(mu, T)+ defines a bivariate +normal random variable. However, this code snippet is illegal: +\begin{verbatim} + indices <- c(1,1) + x[indices] ~ dmnorm(mu, T) +\end{verbatim} +as it implies writing two different values to the same element \verb+x[1]+. + +\subsubsection{For loops} + +Node arrays can be traversed with for loops. In the linear regression +example above, a for loop is used to define nodes \verb+Y[i]+ and +\verb+mu[i]+ for values of $i$ ranging from $1$ to $M$. + +A general expression for a for loop takes the form \begin{verbatim} -Y[i] ~ dnorm(alpha + beta * (x[i] - x.bar), tau) +for (ind in exp) { +} \end{verbatim} -In this version of the model definition, the node previously defined -as \verb+mu[i]+ still exists, but is not accessible to the user as it -does not have a name. This ability to hide deterministic nodes by -embedding them in other expressions underscores an important fact: -only the stochastic nodes in a model are really -important. Deterministic nodes are merely a syntactically convenient -way of describing the relations between stochastic nodes, or -transformations of them. +where \subsection{Data} \label{section:data} @@ -1608,8 +1666,8 @@ & \\ Multivariate & \verb+x ~ dmnorm(mu,Omega)+ & \multirow{2}{*}{ - $\left(\frac{|\Omega|}{2\pi}\right)^{\frac{1}{2}} exp\{-(x-\mu)^T \Omega (x-\mu) / 2\}$} \\ - normal & $\Omega$ positive definite \\ + $|\Omega|^{\frac{1}{2}} \left(2\pi\right)^{-\frac{p}{2}} \exp\{-(x-\mu)^T \Omega (x-\mu) / 2\}$} \\ + normal & $\Omega \; p \times p$ positive definite \\ Wishart & \verb+Omega ~ dwish(R,k)+ & \multirow{2}{*}{ $\frac{\textstyle |\Omega|^{(k-p-1)/2} |R|^{k/2} \exp\{-\text{Tr}(R\Omega/2)\}} @@ -1639,23 +1697,28 @@ A distribution may optionally have an alias, which can be used in the model definition in place of the canonical name. Aliases are used to -to avoid confusion with other statistical software in which -distributions may have different names. Table -\ref{table:bugs:distributions:alias} shows the distributions in the -\texttt{bugs} module with an alias. +avoid confusion with other statistical software in which distributions +may have slightly different names. Note however that the alias does +not change the parameterization. For example, the Weibull distribution +is parameterized differently in BUGS and R, and using the alias +``dweibull'' does not change this. + +Table \ref{table:bugs:distributions:alias} shows the distributions in +the \texttt{bugs} module with an alias. \begin{table} \begin{center} \begin{tabular}{llll} \hline -Distribution & Canonical & Alias & Compatibile \\ - & name & & with \\ +Distribution & Canonical & Alias & Same \\ + & name & & name as \\ \hline -Binomial & dbin & dbinom & R \\ -Chi-square & dchisqr & dchisq & R \\ -Negative binomial & dnegbin & dnbinom & R \\ -Weibull & dweib & dweibull & R \\ -Dirichlet & ddirch & ddirich & OpenBUGS \\ +Binomial & dbin & dbinom & R \\ +Chi-square & dchisqr & dchisq & R \\ +Generalized gamma & dgen.gamma & dggamma & OpenBUGS \\ +Negative binomial & dnegbin & dnbinom & R \\ +Weibull & dweib & dweibull & R \\ +Dirichlet & ddirch & ddirich & OpenBUGS \\ \hline \end{tabular} \caption{Distributions with aliases in \texttt{bugs} module diff -Nru jags-3.4.0/doc/manual/Makefile.in jags-4.0.0/doc/manual/Makefile.in --- jags-3.4.0/doc/manual/Makefile.in 2013-08-30 13:23:25.000000000 +0000 +++ jags-4.0.0/doc/manual/Makefile.in 2015-09-27 12:02:16.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,7 +88,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = doc/manual -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -61,10 +97,23 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -72,9 +121,12 @@ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -88,6 +140,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -157,10 +212,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -244,7 +295,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/manual/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/manual/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -268,11 +318,11 @@ clean-libtool: -rm -rf .libs _libs -tags: TAGS -TAGS: +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -404,15 +454,18 @@ .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + +.PRECIOUS: Makefile docs: jags_user_manual.pdf jags_installation_manual.pdf jags_developer_manual.pdf diff -Nru jags-3.4.0/etc/Makefile.in jags-4.0.0/etc/Makefile.in --- jags-3.4.0/etc/Makefile.in 2013-08-30 13:23:25.000000000 +0000 +++ jags-4.0.0/etc/Makefile.in 2015-09-27 12:02:16.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = etc -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(srcdir)/jags.pc.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -63,10 +98,23 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = jags.pc CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -103,9 +151,12 @@ } am__installdirs = "$(DESTDIR)$(pkgconfigdir)" DATA = $(pkgconfig_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/jags.pc.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -119,6 +170,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -188,10 +242,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -275,7 +325,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu etc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu etc/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -322,11 +371,11 @@ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) -tags: TAGS -TAGS: +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -465,16 +514,19 @@ .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am uninstall-pkgconfigDATA + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pkgconfigDATA install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags-am uninstall uninstall-am \ + uninstall-pkgconfigDATA + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/INSTALL jags-4.0.0/INSTALL --- jags-3.4.0/INSTALL 2013-08-29 13:54:37.000000000 +0000 +++ jags-4.0.0/INSTALL 2015-01-07 12:05:37.000000000 +0000 @@ -1,7 +1,7 @@ Installation Instructions ************************* -Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, +Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, @@ -12,8 +12,8 @@ Basic Installation ================== - Briefly, the shell commands `./configure; make; make install' should -configure, build, and install this package. The following + Briefly, the shell command `./configure && make && make install' +should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented @@ -309,9 +309,10 @@ overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to -an Autoconf bug. Until the bug is fixed you can use this workaround: +an Autoconf limitation. Until the limitation is lifted, you can use +this workaround: - CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash + CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== @@ -367,4 +368,3 @@ `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. - diff -Nru jags-3.4.0/install-sh jags-4.0.0/install-sh --- jags-3.4.0/install-sh 2013-08-29 13:54:37.000000000 +0000 +++ jags-4.0.0/install-sh 2015-01-07 12:05:37.000000000 +0000 @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2011-01-19.21; # UTC +scriptversion=2013-12-25.23; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -35,25 +35,21 @@ # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it +# 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. +tab=' ' nl=' ' -IFS=" "" $nl" +IFS=" $tab$nl" -# set DOITPROG to echo to test this script +# Set DOITPROG to "echo" to test this script. -# Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} -if test -z "$doit"; then - doit_exec=exec -else - doit_exec=$doit -fi +doit_exec=${doit:-exec} # Put in absolute file names if you don't have them in your path; # or use environment vars. @@ -68,17 +64,6 @@ rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} -posix_glob='?' -initialize_posix_glob=' - test "$posix_glob" != "?" || { - if (set -f) 2>/dev/null; then - posix_glob= - else - posix_glob=: - fi - } -' - posix_mkdir= # Desired mode of installed file. @@ -97,7 +82,7 @@ dst_arg= copy_on_change=false -no_target_directory= +is_target_a_directory=possibly usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE @@ -137,46 +122,57 @@ -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" - shift;; + shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 - case $mode in - *' '* | *' '* | *' -'* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; -o) chowncmd="$chownprog $2" - shift;; + shift;; -s) stripcmd=$stripprog;; - -t) dst_arg=$2 - # Protect names problematic for `test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - shift;; + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; - -T) no_target_directory=true;; + -T) is_target_a_directory=never;; --version) echo "$0 $scriptversion"; exit $?;; - --) shift - break;; + --) shift + break;; - -*) echo "$0: invalid option: $1" >&2 - exit 1;; + -*) echo "$0: invalid option: $1" >&2 + exit 1;; *) break;; esac shift done +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. @@ -190,7 +186,7 @@ fi shift # arg dst_arg=$arg - # Protect names problematic for `test' and other utilities. + # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac @@ -202,12 +198,21 @@ echo "$0: no input file specified." >&2 exit 1 fi - # It's OK to call `install-sh -d' without argument. + # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + +if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 @@ -223,16 +228,16 @@ *[0-7]) if test -z "$stripcmd"; then - u_plus_rw= + u_plus_rw= else - u_plus_rw='% 200' + u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then - u_plus_rw= + u_plus_rw= else - u_plus_rw=,u+rw + u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac @@ -240,7 +245,7 @@ for src do - # Protect names problematic for `test' and other utilities. + # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac @@ -269,41 +274,15 @@ # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then - if test -n "$no_target_directory"; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else - # Prefer dirname, but fall back on a substitute if dirname fails. - dstdir=` - (dirname "$dst") 2>/dev/null || - expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$dst" : 'X\(//\)[^/]' \| \ - X"$dst" : 'X\(//\)$' \| \ - X"$dst" : 'X\(/\)' \| . 2>/dev/null || - echo X"$dst" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q' - ` - + dstdir=`dirname "$dst"` test -d "$dstdir" dstdir_status=$? fi @@ -314,74 +293,74 @@ if test $dstdir_status != 0; then case $posix_mkdir in '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writeable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; esac if $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else @@ -391,53 +370,51 @@ # directory the slow way, step by step, checking for races as we go. case $dstdir in - /*) prefix='/';; - [-=\(\)!]*) prefix='./';; - *) prefix='';; + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; esac - eval "$initialize_posix_glob" - oIFS=$IFS IFS=/ - $posix_glob set -f + set -f set fnord $dstdir shift - $posix_glob set +f + set +f IFS=$oIFS prefixes= for d do - test X"$d" = X && continue + test X"$d" = X && continue - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ done if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true fi fi fi @@ -472,15 +449,12 @@ # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - - eval "$initialize_posix_glob" && - $posix_glob set -f && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && - $posix_glob set +f && - + set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then @@ -493,24 +467,24 @@ # to itself, or perhaps because mv is so ancient that it does not # support -f. { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 diff -Nru jags-3.4.0/libltdl/Makefile.in jags-4.0.0/libltdl/Makefile.in --- jags-3.4.0/libltdl/Makefile.in 2013-08-30 13:23:25.000000000 +0000 +++ jags-4.0.0/libltdl/Makefile.in 2015-09-27 12:02:16.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -19,23 +18,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -58,9 +95,6 @@ @INSTALL_LTDL_TRUE@am__append_2 = libltdl.la @CONVENIENCE_LTDL_TRUE@am__append_3 = libltdlc.la subdir = libltdl -DIST_COMMON = README $(am__include_HEADERS_DIST) \ - $(am__ltdlinclude_HEADERS_DIST) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in COPYING.LIB ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -70,6 +104,8 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__include_HEADERS_DIST) \ + $(am__ltdlinclude_HEADERS_DIST) $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -105,73 +141,102 @@ "$(DESTDIR)$(ltdlincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) dld_link_la_DEPENDENCIES = -am_dld_link_la_OBJECTS = dld_link.lo +am__dirstamp = $(am__leading_dot)dirstamp +am_dld_link_la_OBJECTS = loaders/dld_link.lo dld_link_la_OBJECTS = $(am_dld_link_la_OBJECTS) -dld_link_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +dld_link_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(dld_link_la_LDFLAGS) $(LDFLAGS) -o $@ am__DEPENDENCIES_1 = dlopen_la_DEPENDENCIES = $(am__DEPENDENCIES_1) -am_dlopen_la_OBJECTS = dlopen.lo +am_dlopen_la_OBJECTS = loaders/dlopen.lo dlopen_la_OBJECTS = $(am_dlopen_la_OBJECTS) -dlopen_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ +dlopen_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(dlopen_la_LDFLAGS) $(LDFLAGS) -o $@ dyld_la_LIBADD = -am_dyld_la_OBJECTS = dyld.lo +am_dyld_la_OBJECTS = loaders/dyld.lo dyld_la_OBJECTS = $(am_dyld_la_OBJECTS) -dyld_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(dyld_la_LDFLAGS) \ - $(LDFLAGS) -o $@ -am_libltdl_la_OBJECTS = libltdl_la-preopen.lo libltdl_la-lt__alloc.lo \ - libltdl_la-lt_dlloader.lo libltdl_la-lt_error.lo \ - libltdl_la-ltdl.lo libltdl_la-slist.lo +dyld_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(dyld_la_LDFLAGS) $(LDFLAGS) -o $@ +am_libltdl_la_OBJECTS = loaders/libltdl_la-preopen.lo \ + libltdl_la-lt__alloc.lo libltdl_la-lt_dlloader.lo \ + libltdl_la-lt_error.lo libltdl_la-ltdl.lo libltdl_la-slist.lo libltdl_la_OBJECTS = $(am_libltdl_la_OBJECTS) -libltdl_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ +libltdl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libltdl_la_LDFLAGS) $(LDFLAGS) -o $@ @INSTALL_LTDL_TRUE@am_libltdl_la_rpath = -rpath $(libdir) am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) -am__objects_1 = libltdlc_la-preopen.lo libltdlc_la-lt__alloc.lo \ - libltdlc_la-lt_dlloader.lo libltdlc_la-lt_error.lo \ - libltdlc_la-ltdl.lo libltdlc_la-slist.lo +am__objects_1 = loaders/libltdlc_la-preopen.lo \ + libltdlc_la-lt__alloc.lo libltdlc_la-lt_dlloader.lo \ + libltdlc_la-lt_error.lo libltdlc_la-ltdl.lo \ + libltdlc_la-slist.lo am_libltdlc_la_OBJECTS = $(am__objects_1) libltdlc_la_OBJECTS = $(am_libltdlc_la_OBJECTS) -libltdlc_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ +libltdlc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libltdlc_la_LDFLAGS) $(LDFLAGS) -o $@ @CONVENIENCE_LTDL_TRUE@am_libltdlc_la_rpath = load_add_on_la_LIBADD = -am_load_add_on_la_OBJECTS = load_add_on.lo +am_load_add_on_la_OBJECTS = loaders/load_add_on.lo load_add_on_la_OBJECTS = $(am_load_add_on_la_OBJECTS) -load_add_on_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(load_add_on_la_LDFLAGS) $(LDFLAGS) -o $@ +load_add_on_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(load_add_on_la_LDFLAGS) $(LDFLAGS) -o \ + $@ loadlibrary_la_LIBADD = -am_loadlibrary_la_OBJECTS = loadlibrary.lo +am_loadlibrary_la_OBJECTS = loaders/loadlibrary.lo loadlibrary_la_OBJECTS = $(am_loadlibrary_la_OBJECTS) -loadlibrary_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(loadlibrary_la_LDFLAGS) $(LDFLAGS) -o $@ +loadlibrary_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(loadlibrary_la_LDFLAGS) $(LDFLAGS) -o \ + $@ shl_load_la_DEPENDENCIES = $(am__DEPENDENCIES_1) -am_shl_load_la_OBJECTS = shl_load.lo +am_shl_load_la_OBJECTS = loaders/shl_load.lo shl_load_la_OBJECTS = $(am_shl_load_la_OBJECTS) -shl_load_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ +shl_load_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(shl_load_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(dld_link_la_SOURCES) $(dlopen_la_SOURCES) \ $(dyld_la_SOURCES) $(libltdl_la_SOURCES) \ $(libltdlc_la_SOURCES) $(load_add_on_la_SOURCES) \ @@ -189,11 +254,31 @@ am__ltdlinclude_HEADERS_DIST = libltdl/lt_system.h libltdl/lt_error.h \ libltdl/lt_dlloader.h HEADERS = $(include_HEADERS) $(ltdlinclude_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \ + COPYING.LIB README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -207,6 +292,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -276,10 +364,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -427,7 +511,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libltdl/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign libltdl/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -445,6 +528,7 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ @@ -471,215 +555,213 @@ clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } +loaders/$(am__dirstamp): + @$(MKDIR_P) loaders + @: > loaders/$(am__dirstamp) +loaders/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) loaders/$(DEPDIR) + @: > loaders/$(DEPDIR)/$(am__dirstamp) +loaders/dld_link.lo: loaders/$(am__dirstamp) \ + loaders/$(DEPDIR)/$(am__dirstamp) + dld_link.la: $(dld_link_la_OBJECTS) $(dld_link_la_DEPENDENCIES) $(EXTRA_dld_link_la_DEPENDENCIES) - $(dld_link_la_LINK) $(dld_link_la_OBJECTS) $(dld_link_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(dld_link_la_LINK) $(dld_link_la_OBJECTS) $(dld_link_la_LIBADD) $(LIBS) +loaders/dlopen.lo: loaders/$(am__dirstamp) \ + loaders/$(DEPDIR)/$(am__dirstamp) + dlopen.la: $(dlopen_la_OBJECTS) $(dlopen_la_DEPENDENCIES) $(EXTRA_dlopen_la_DEPENDENCIES) - $(dlopen_la_LINK) $(dlopen_la_OBJECTS) $(dlopen_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(dlopen_la_LINK) $(dlopen_la_OBJECTS) $(dlopen_la_LIBADD) $(LIBS) +loaders/dyld.lo: loaders/$(am__dirstamp) \ + loaders/$(DEPDIR)/$(am__dirstamp) + dyld.la: $(dyld_la_OBJECTS) $(dyld_la_DEPENDENCIES) $(EXTRA_dyld_la_DEPENDENCIES) - $(dyld_la_LINK) $(dyld_la_OBJECTS) $(dyld_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(dyld_la_LINK) $(dyld_la_OBJECTS) $(dyld_la_LIBADD) $(LIBS) +loaders/libltdl_la-preopen.lo: loaders/$(am__dirstamp) \ + loaders/$(DEPDIR)/$(am__dirstamp) + libltdl.la: $(libltdl_la_OBJECTS) $(libltdl_la_DEPENDENCIES) $(EXTRA_libltdl_la_DEPENDENCIES) - $(libltdl_la_LINK) $(am_libltdl_la_rpath) $(libltdl_la_OBJECTS) $(libltdl_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(libltdl_la_LINK) $(am_libltdl_la_rpath) $(libltdl_la_OBJECTS) $(libltdl_la_LIBADD) $(LIBS) +loaders/libltdlc_la-preopen.lo: loaders/$(am__dirstamp) \ + loaders/$(DEPDIR)/$(am__dirstamp) + libltdlc.la: $(libltdlc_la_OBJECTS) $(libltdlc_la_DEPENDENCIES) $(EXTRA_libltdlc_la_DEPENDENCIES) - $(libltdlc_la_LINK) $(am_libltdlc_la_rpath) $(libltdlc_la_OBJECTS) $(libltdlc_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(libltdlc_la_LINK) $(am_libltdlc_la_rpath) $(libltdlc_la_OBJECTS) $(libltdlc_la_LIBADD) $(LIBS) +loaders/load_add_on.lo: loaders/$(am__dirstamp) \ + loaders/$(DEPDIR)/$(am__dirstamp) + load_add_on.la: $(load_add_on_la_OBJECTS) $(load_add_on_la_DEPENDENCIES) $(EXTRA_load_add_on_la_DEPENDENCIES) - $(load_add_on_la_LINK) $(load_add_on_la_OBJECTS) $(load_add_on_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(load_add_on_la_LINK) $(load_add_on_la_OBJECTS) $(load_add_on_la_LIBADD) $(LIBS) +loaders/loadlibrary.lo: loaders/$(am__dirstamp) \ + loaders/$(DEPDIR)/$(am__dirstamp) + loadlibrary.la: $(loadlibrary_la_OBJECTS) $(loadlibrary_la_DEPENDENCIES) $(EXTRA_loadlibrary_la_DEPENDENCIES) - $(loadlibrary_la_LINK) $(loadlibrary_la_OBJECTS) $(loadlibrary_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(loadlibrary_la_LINK) $(loadlibrary_la_OBJECTS) $(loadlibrary_la_LIBADD) $(LIBS) +loaders/shl_load.lo: loaders/$(am__dirstamp) \ + loaders/$(DEPDIR)/$(am__dirstamp) + shl_load.la: $(shl_load_la_OBJECTS) $(shl_load_la_DEPENDENCIES) $(EXTRA_shl_load_la_DEPENDENCIES) - $(shl_load_la_LINK) $(shl_load_la_OBJECTS) $(shl_load_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(shl_load_la_LINK) $(shl_load_la_OBJECTS) $(shl_load_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) + -rm -f loaders/*.$(OBJEXT) + -rm -f loaders/*.lo distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dld_link.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dlopen.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dyld.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-lt__alloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-lt_dlloader.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-lt_error.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-ltdl.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-preopen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-slist.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-lt__alloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-lt_dlloader.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-lt_error.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-ltdl.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-preopen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-slist.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/load_add_on.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loadlibrary.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shl_load.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/dld_link.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/dlopen.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/dyld.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/libltdl_la-preopen.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/libltdlc_la-preopen.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/load_add_on.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/loadlibrary.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/shl_load.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -dld_link.lo: loaders/dld_link.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dld_link.lo -MD -MP -MF $(DEPDIR)/dld_link.Tpo -c -o dld_link.lo `test -f 'loaders/dld_link.c' || echo '$(srcdir)/'`loaders/dld_link.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/dld_link.Tpo $(DEPDIR)/dld_link.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='loaders/dld_link.c' object='dld_link.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +loaders/libltdl_la-preopen.lo: loaders/preopen.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT loaders/libltdl_la-preopen.lo -MD -MP -MF loaders/$(DEPDIR)/libltdl_la-preopen.Tpo -c -o loaders/libltdl_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) loaders/$(DEPDIR)/libltdl_la-preopen.Tpo loaders/$(DEPDIR)/libltdl_la-preopen.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loaders/preopen.c' object='loaders/libltdl_la-preopen.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dld_link.lo `test -f 'loaders/dld_link.c' || echo '$(srcdir)/'`loaders/dld_link.c - -dlopen.lo: loaders/dlopen.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dlopen.lo -MD -MP -MF $(DEPDIR)/dlopen.Tpo -c -o dlopen.lo `test -f 'loaders/dlopen.c' || echo '$(srcdir)/'`loaders/dlopen.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/dlopen.Tpo $(DEPDIR)/dlopen.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='loaders/dlopen.c' object='dlopen.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dlopen.lo `test -f 'loaders/dlopen.c' || echo '$(srcdir)/'`loaders/dlopen.c - -dyld.lo: loaders/dyld.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dyld.lo -MD -MP -MF $(DEPDIR)/dyld.Tpo -c -o dyld.lo `test -f 'loaders/dyld.c' || echo '$(srcdir)/'`loaders/dyld.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/dyld.Tpo $(DEPDIR)/dyld.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='loaders/dyld.c' object='dyld.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dyld.lo `test -f 'loaders/dyld.c' || echo '$(srcdir)/'`loaders/dyld.c - -libltdl_la-preopen.lo: loaders/preopen.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-preopen.lo -MD -MP -MF $(DEPDIR)/libltdl_la-preopen.Tpo -c -o libltdl_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libltdl_la-preopen.Tpo $(DEPDIR)/libltdl_la-preopen.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='loaders/preopen.c' object='libltdl_la-preopen.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o loaders/libltdl_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c libltdl_la-lt__alloc.lo: lt__alloc.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-lt__alloc.lo -MD -MP -MF $(DEPDIR)/libltdl_la-lt__alloc.Tpo -c -o libltdl_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libltdl_la-lt__alloc.Tpo $(DEPDIR)/libltdl_la-lt__alloc.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lt__alloc.c' object='libltdl_la-lt__alloc.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-lt__alloc.lo -MD -MP -MF $(DEPDIR)/libltdl_la-lt__alloc.Tpo -c -o libltdl_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-lt__alloc.Tpo $(DEPDIR)/libltdl_la-lt__alloc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt__alloc.c' object='libltdl_la-lt__alloc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c libltdl_la-lt_dlloader.lo: lt_dlloader.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-lt_dlloader.lo -MD -MP -MF $(DEPDIR)/libltdl_la-lt_dlloader.Tpo -c -o libltdl_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libltdl_la-lt_dlloader.Tpo $(DEPDIR)/libltdl_la-lt_dlloader.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lt_dlloader.c' object='libltdl_la-lt_dlloader.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-lt_dlloader.lo -MD -MP -MF $(DEPDIR)/libltdl_la-lt_dlloader.Tpo -c -o libltdl_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-lt_dlloader.Tpo $(DEPDIR)/libltdl_la-lt_dlloader.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt_dlloader.c' object='libltdl_la-lt_dlloader.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c libltdl_la-lt_error.lo: lt_error.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-lt_error.lo -MD -MP -MF $(DEPDIR)/libltdl_la-lt_error.Tpo -c -o libltdl_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libltdl_la-lt_error.Tpo $(DEPDIR)/libltdl_la-lt_error.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lt_error.c' object='libltdl_la-lt_error.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-lt_error.lo -MD -MP -MF $(DEPDIR)/libltdl_la-lt_error.Tpo -c -o libltdl_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-lt_error.Tpo $(DEPDIR)/libltdl_la-lt_error.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt_error.c' object='libltdl_la-lt_error.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c libltdl_la-ltdl.lo: ltdl.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-ltdl.lo -MD -MP -MF $(DEPDIR)/libltdl_la-ltdl.Tpo -c -o libltdl_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libltdl_la-ltdl.Tpo $(DEPDIR)/libltdl_la-ltdl.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ltdl.c' object='libltdl_la-ltdl.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-ltdl.lo -MD -MP -MF $(DEPDIR)/libltdl_la-ltdl.Tpo -c -o libltdl_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-ltdl.Tpo $(DEPDIR)/libltdl_la-ltdl.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ltdl.c' object='libltdl_la-ltdl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c libltdl_la-slist.lo: slist.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-slist.lo -MD -MP -MF $(DEPDIR)/libltdl_la-slist.Tpo -c -o libltdl_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libltdl_la-slist.Tpo $(DEPDIR)/libltdl_la-slist.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='slist.c' object='libltdl_la-slist.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c - -libltdlc_la-preopen.lo: loaders/preopen.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-preopen.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-preopen.Tpo -c -o libltdlc_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libltdlc_la-preopen.Tpo $(DEPDIR)/libltdlc_la-preopen.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='loaders/preopen.c' object='libltdlc_la-preopen.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-slist.lo -MD -MP -MF $(DEPDIR)/libltdl_la-slist.Tpo -c -o libltdl_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-slist.Tpo $(DEPDIR)/libltdl_la-slist.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='slist.c' object='libltdl_la-slist.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c + +loaders/libltdlc_la-preopen.lo: loaders/preopen.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT loaders/libltdlc_la-preopen.lo -MD -MP -MF loaders/$(DEPDIR)/libltdlc_la-preopen.Tpo -c -o loaders/libltdlc_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) loaders/$(DEPDIR)/libltdlc_la-preopen.Tpo loaders/$(DEPDIR)/libltdlc_la-preopen.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loaders/preopen.c' object='loaders/libltdlc_la-preopen.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o loaders/libltdlc_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c libltdlc_la-lt__alloc.lo: lt__alloc.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-lt__alloc.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-lt__alloc.Tpo -c -o libltdlc_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libltdlc_la-lt__alloc.Tpo $(DEPDIR)/libltdlc_la-lt__alloc.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lt__alloc.c' object='libltdlc_la-lt__alloc.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-lt__alloc.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-lt__alloc.Tpo -c -o libltdlc_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-lt__alloc.Tpo $(DEPDIR)/libltdlc_la-lt__alloc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt__alloc.c' object='libltdlc_la-lt__alloc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c libltdlc_la-lt_dlloader.lo: lt_dlloader.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-lt_dlloader.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-lt_dlloader.Tpo -c -o libltdlc_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libltdlc_la-lt_dlloader.Tpo $(DEPDIR)/libltdlc_la-lt_dlloader.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lt_dlloader.c' object='libltdlc_la-lt_dlloader.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-lt_dlloader.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-lt_dlloader.Tpo -c -o libltdlc_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-lt_dlloader.Tpo $(DEPDIR)/libltdlc_la-lt_dlloader.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt_dlloader.c' object='libltdlc_la-lt_dlloader.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c libltdlc_la-lt_error.lo: lt_error.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-lt_error.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-lt_error.Tpo -c -o libltdlc_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libltdlc_la-lt_error.Tpo $(DEPDIR)/libltdlc_la-lt_error.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lt_error.c' object='libltdlc_la-lt_error.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-lt_error.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-lt_error.Tpo -c -o libltdlc_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-lt_error.Tpo $(DEPDIR)/libltdlc_la-lt_error.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt_error.c' object='libltdlc_la-lt_error.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c libltdlc_la-ltdl.lo: ltdl.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-ltdl.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-ltdl.Tpo -c -o libltdlc_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libltdlc_la-ltdl.Tpo $(DEPDIR)/libltdlc_la-ltdl.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ltdl.c' object='libltdlc_la-ltdl.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-ltdl.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-ltdl.Tpo -c -o libltdlc_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-ltdl.Tpo $(DEPDIR)/libltdlc_la-ltdl.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ltdl.c' object='libltdlc_la-ltdl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c libltdlc_la-slist.lo: slist.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-slist.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-slist.Tpo -c -o libltdlc_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libltdlc_la-slist.Tpo $(DEPDIR)/libltdlc_la-slist.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='slist.c' object='libltdlc_la-slist.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c - -load_add_on.lo: loaders/load_add_on.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT load_add_on.lo -MD -MP -MF $(DEPDIR)/load_add_on.Tpo -c -o load_add_on.lo `test -f 'loaders/load_add_on.c' || echo '$(srcdir)/'`loaders/load_add_on.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/load_add_on.Tpo $(DEPDIR)/load_add_on.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='loaders/load_add_on.c' object='load_add_on.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-slist.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-slist.Tpo -c -o libltdlc_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-slist.Tpo $(DEPDIR)/libltdlc_la-slist.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='slist.c' object='libltdlc_la-slist.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o load_add_on.lo `test -f 'loaders/load_add_on.c' || echo '$(srcdir)/'`loaders/load_add_on.c - -loadlibrary.lo: loaders/loadlibrary.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT loadlibrary.lo -MD -MP -MF $(DEPDIR)/loadlibrary.Tpo -c -o loadlibrary.lo `test -f 'loaders/loadlibrary.c' || echo '$(srcdir)/'`loaders/loadlibrary.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/loadlibrary.Tpo $(DEPDIR)/loadlibrary.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='loaders/loadlibrary.c' object='loadlibrary.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o loadlibrary.lo `test -f 'loaders/loadlibrary.c' || echo '$(srcdir)/'`loaders/loadlibrary.c - -shl_load.lo: loaders/shl_load.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shl_load.lo -MD -MP -MF $(DEPDIR)/shl_load.Tpo -c -o shl_load.lo `test -f 'loaders/shl_load.c' || echo '$(srcdir)/'`loaders/shl_load.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/shl_load.Tpo $(DEPDIR)/shl_load.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='loaders/shl_load.c' object='shl_load.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shl_load.lo `test -f 'loaders/shl_load.c' || echo '$(srcdir)/'`loaders/shl_load.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs + -rm -rf loaders/.libs loaders/_libs install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ @@ -723,26 +805,15 @@ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(ltdlincludedir)'; $(am__uninstall_files_from_dir) -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -754,15 +825,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -771,6 +838,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -842,6 +924,8 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f loaders/$(DEPDIR)/$(am__dirstamp) + -rm -f loaders/$(am__dirstamp) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -853,7 +937,7 @@ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -rf ./$(DEPDIR) loaders/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -899,7 +983,7 @@ installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -rf ./$(DEPDIR) loaders/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -921,23 +1005,25 @@ .MAKE: all check install install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ - ctags distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am \ + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ install-includeHEADERS install-info install-info-am \ install-libLTLIBRARIES install-ltdlincludeHEADERS install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-includeHEADERS uninstall-libLTLIBRARIES \ uninstall-ltdlincludeHEADERS +.PRECIOUS: Makefile + # We need the following in order to create an when the system # doesn't have one that works with the given compiler. diff -Nru jags-3.4.0/m4/libtool.m4 jags-4.0.0/m4/libtool.m4 --- jags-3.4.0/m4/libtool.m4 2012-09-23 07:32:05.000000000 +0000 +++ jags-4.0.0/m4/libtool.m4 2015-04-23 22:57:00.000000000 +0000 @@ -1312,7 +1312,7 @@ rm -rf conftest* ;; -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext @@ -1326,7 +1326,10 @@ x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; - ppc64-*linux*|powerpc64-*linux*) + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) @@ -1345,7 +1348,10 @@ x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; - ppc*-*linux*|powerpc*-*linux*) + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) diff -Nru jags-3.4.0/m4/Makefile.in jags-4.0.0/m4/Makefile.in --- jags-3.4.0/m4/Makefile.in 2013-08-30 13:23:25.000000000 +0000 +++ jags-4.0.0/m4/Makefile.in 2015-09-27 12:02:16.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,7 +88,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = m4 -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -61,10 +97,23 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -72,8 +121,11 @@ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -87,6 +139,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -156,10 +211,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -241,7 +292,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu m4/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu m4/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -265,11 +315,11 @@ clean-libtool: -rm -rf .libs _libs -tags: TAGS -TAGS: +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -405,15 +455,18 @@ .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/Makefile.am jags-4.0.0/Makefile.am --- jags-3.4.0/Makefile.am 2012-09-20 15:33:38.000000000 +0000 +++ jags-4.0.0/Makefile.am 2015-02-22 08:33:05.000000000 +0000 @@ -1,5 +1,5 @@ ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = m4 libltdl src etc win doc +SUBDIRS = m4 libltdl src etc win doc test EXTRA_DIST = Doxyfile .PHONY: win32-install win64-install installer docs diff -Nru jags-3.4.0/Makefile.in jags-4.0.0/Makefile.in --- jags-3.4.0/Makefile.in 2013-08-30 13:23:30.000000000 +0000 +++ jags-4.0.0/Makefile.in 2015-09-27 12:02:16.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,11 +88,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = . -DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/config.h.in \ - $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ - config.guess config.sub depcomp install-sh ltmain.sh missing \ - ylwrap ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -65,21 +97,36 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -87,12 +134,37 @@ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir dist dist-all distcheck +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ + $(LISP)config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in AUTHORS \ + COPYING ChangeLog INSTALL NEWS README compile config.guess \ + config.sub depcomp install-sh ltmain.sh missing ylwrap DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -102,6 +174,7 @@ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi +am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ @@ -129,12 +202,14 @@ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best +DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -148,6 +223,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -217,10 +295,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -287,7 +361,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = m4 libltdl src etc win doc +SUBDIRS = m4 libltdl src etc win doc test EXTRA_DIST = Doxyfile all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive @@ -308,7 +382,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -329,8 +402,8 @@ $(am__aclocal_m4_deps): config.h: stamp-h1 - @if test ! -f $@; then rm -f stamp-h1; else :; fi - @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 @@ -353,22 +426,25 @@ -rm -f libtool config.lt # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -383,57 +459,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -449,12 +480,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -466,15 +492,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -483,9 +505,31 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) @@ -553,40 +597,42 @@ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) + $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 - $(am__remove_distdir) + $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz - $(am__remove_distdir) - -dist-lzma: distdir - tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma - $(am__remove_distdir) + $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz - $(am__remove_distdir) + $(am__post_remove_distdir) dist-tarZ: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) + $(am__post_remove_distdir) dist-shar: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) + $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) + $(am__post_remove_distdir) -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another @@ -597,8 +643,6 @@ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lzma*) \ - lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ @@ -610,18 +654,19 @@ *.zip*) \ unzip $(distdir).zip ;;\ esac - chmod -R a-w $(distdir); chmod u+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ - && $(am__cd) $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ @@ -644,7 +689,7 @@ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 - $(am__remove_distdir) + $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' @@ -779,24 +824,26 @@ uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ - ctags-recursive install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) all install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + clean-libtool cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ + dist-xz dist-zip distcheck distclean distclean-generic \ + distclean-hdr distclean-libtool distclean-tags distcleancheck \ + distdir distuninstallcheck dvi dvi-am html html-am info \ + info-am install install-am install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am am--refresh check check-am clean clean-generic \ - clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ - dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ dist-xz \ - dist-zip distcheck distclean distclean-generic distclean-hdr \ - distclean-libtool distclean-tags distcleancheck distdir \ - distuninstallcheck dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am tags tags-recursive uninstall uninstall-am +.PRECIOUS: Makefile .PHONY: win32-install win64-install installer docs diff -Nru jags-3.4.0/missing jags-4.0.0/missing --- jags-3.4.0/missing 2013-08-29 13:54:37.000000000 +0000 +++ jags-4.0.0/missing 2015-01-07 12:05:37.000000000 +0000 @@ -1,11 +1,10 @@ #! /bin/sh -# Common stub for a few missing GNU programs while installing. +# Common wrapper for a few potentially missing GNU programs. -scriptversion=2012-01-06.13; # UTC +scriptversion=2013-10-28.13; # UTC -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, -# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. -# Originally by Fran,cois Pinard , 1996. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -26,68 +25,40 @@ # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" + echo 1>&2 "Try '$0 --help' for more information" exit 1 fi -run=: -sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' -sed_minuso='s/.* -o \([^ ]*\).*/\1/p' - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi +case $1 in -msg="missing on your system" + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; -case $1 in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - # Exit code 63 means version mismatch. This often happens - # when the user try to use an ancient version of a tool on - # a file that requires a minimum version. In this case we - # we should proceed has if the program had been absent, or - # if --run hadn't been passed. - if test $? = 63; then - run=: - msg="probably too old" - fi - ;; + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - autom4te touch the output file, or create a stub one - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - yacc create \`y.tab.[ch]', if possible, from existing .[ch] + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man -Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and -\`g' are ignored when checking the name. +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. Send bug reports to ." exit $? @@ -99,228 +70,141 @@ ;; -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac -# normalize program name to check for. -program=`echo "$1" | sed ' - s/^gnu-//; t - s/^gnu//; t - s/^g//; t'` - -# Now exit if we have it, but it failed. Also exit now if we -# don't have it and --version was passed (most likely to detect -# the program). This is about non-GNU programs, so use $1 not -# $program. -case $1 in - lex*|yacc*) - # Not GNU programs, they don't have --version. - ;; +# Run the given program, remember its exit status. +"$@"; st=$? - *) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - # Could not run --version or --help. This is probably someone - # running `$TOOL --version' or `$TOOL --help' to check whether - # $TOOL exists and not knowing $TOOL uses missing. - exit 1 - fi - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case $program in - aclocal*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case $f in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; +# If it succeeded, we are done. +test $st -eq 0 && exit 0 - automake*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - autom4te*) - echo 1>&2 "\ -WARNING: \`$1' is needed, but is $msg. - You might have modified some files without having the - proper tools for further handling them. - You can get \`$1' as part of \`Autoconf' from any GNU - archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison*|yacc*) - echo 1>&2 "\ -WARNING: \`$1' $msg. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if test $# -ne 1; then - eval LASTARG=\${$#} - case $LASTARG in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if test ! -f y.tab.h; then - echo >y.tab.h - fi - if test ! -f y.tab.c; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex*|flex*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if test $# -ne 1; then - eval LASTARG=\${$#} - case $LASTARG in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if test ! -f lex.yy.c; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit $? - fi - ;; - - makeinfo*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - # The file to touch is that specified with -o ... - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -z "$file"; then - # ... or it is the one specified with @setfilename ... - infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n ' - /^@setfilename/{ - s/.* \([^ ]*\) *$/\1/ - p - q - }' $infile` - # ... or it is derived from the source name (dir/f.texi becomes f.info) - test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info - fi - # If the file does not exist, the user really needs makeinfo; - # let's fail without touching anything. - test -f $file || exit 1 - touch $file - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and is $msg. - You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequisites for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi -exit 0 +perl_URL=http://www.perl.org/ +flex_URL=http://flex.sourceforge.net/ +gnu_software_URL=http://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'autom4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff -Nru jags-3.4.0/NEWS jags-4.0.0/NEWS --- jags-3.4.0/NEWS 2013-08-30 12:19:01.000000000 +0000 +++ jags-4.0.0/NEWS 2015-07-21 22:42:14.000000000 +0000 @@ -1,3 +1,173 @@ +Changes in JAGS 4.0.0 + +New features +============ +* Deterministic relations can be defined with the equals sign `=` + as well as the left arrow `<-` (Thanks to Merlise Clyde for the suggestion). +* All distributions now have an associated function that calculates + their normalized log density. If the name of the distribution is + "dfoo" then the corresponding log density function is called + "logdensity.foo". The first argument of the log density function is + the value at which the density is to be evaluated, and the remaining + arguments are the parameters of the distribution. +* The sum and prod functions are now variadic, like their R equivalents + and return respectively the sum and product over all arguments. +* The sequence operator ":" can be used in any expression. If b < a then + a:b returns a zero-length vector. +* The compiler gives more detailed information about the graph. In + addition to printing the total number of nodes, it gives the numbers + of observed and unobserved stochastic nodes. +* Vector indexing is now possible for Node arrays and arbitrary integer + vectors are allowed for the counter in a for loop. +* The generalized gamma distribution dgen.gamma now has alias "dggamma" + for compatibility with OpenBUGS. The multinomial distribution has alias + "dmultinom" for compatibility with R. +* The function c() has been added to the bugs module. Like the R function c() + it combines its arguments into a single vector. +* New non-central t distribution "dnt" in the "bugs" module (from the R + math library) +* Variables that are not completely defined can now be monitored. The + undefined elements are dropped from CODA output. +* The compiler now gives a more informative error message when nodes + cannot be resolved, and tries to distinguish between the two possible + causes of an undefined node and a directed cycle. + +Bug fixes +========= +* Unit tests for functions and distributions using CppUnit are now + included and can be activated by "make check" +* The qpar function in the bugs module was inverted. +* The not function in the base module was inverted. +* The ConjugateGamma sampler did not work correctly for the Chi Squared + distribution +* The parser accepts form feed as a white space character +* Fixes for lack of reproducibility (due to arbitrary ordering of + Nodes in a Graph) have been put in place. +* The log-density functions for the multivariate normal (DMNorm) and + Wishart (DWish) distributions now return zero for non-positive + definite precision matrices, instead of throwing an exception. This + allows flexible modelling of the precision matrix. +* The Windows installer no longer allows the same version of JAGS to + be installed in two different locations (leading to registry problems) +* The qdexp function was incorrect. + +Library changes +=============== +* All C++ objects and functions are in the namespace jags +* Automake 1.12.0 or above is required. The header file generated from + C++ yacc source is *.hh, not *.h for automake 1.12 and above. This is + incompatible with previous versions. +* The GraphView API has changed: stochasticChildren now returns a vector + of (non-const) pointers. This is necessary for collapsing in multi-level + models. +* The Graph interface is simplified as it now inherits from set +* Names of functions in libjrmath are remapped to avoid namespace clashes + with libR and libRmath. +* The Module.h header is moved into the module sub-directory +* The classes RScalarDist, DFunction, PFunction, QFunction are moved + from the bugs module into the main library. +* SingletonGraphView is a new subclass of GraphView to be used when + a single node is being sampled. +* Subclasses of Monitor no longer need to implement the reserve function. + They should instead re-allocate memory during each update as necessary, + ensuring that an update remains an amortized constant time operation. +* The ParallelSampler class is renamed MutableSampler. Similarly, + the SamplerMethod class is renamed MutableSampleMethod. The API of + both classes is also modified as described below. +* The MutableSampleMethod class does not need to implement the name method. + The name of a MutableSampler is now defined in the constructor. (In many + cases the SamplerFactory can pass its own name to the Samplers it constructs: + this allows us to get rid of a redundant level of names). +* A new class ImmutableSampler and corresponding class + ImmutableSampleMethod are added to the library for samplers that have + no internal state (e.g. base::FiniteSampler or bugs::ConjugateSampler). +* StochasticNode has a new member function setData, which sets the + value of the node to be the same across all chains and sets the + status of the StochasticNode to observed. The setObserved member + function is defunct. The change guarentees that observed + StochasticNodes have the same value across all chains. The Compiler + has been modified to use the new StochasticNode API. +* The VectorFunction class has a new subclass ScalarVectorFunction for + scalar-valued functions that take vector-valued arguments. +* The length of the return value of a VectorFunction and the dimension + of the value of an ArrayFunction may now depend on the values of + the arguments and not just the lengths/dimensions of the arguments. +* A new checkParameterDiscrete member function in the Function class + allows Functions to check that some of the parameters are discrete. +* A new checkParameterFixed member function in the Function class + allows Functions to check that some of the parameters have fixed + values. This check is necessary when creating a LogicalNode from + a Function that has a variable-sized return value depending on the + values of the arguments (and not just the dimensions of the arguments). + We can only permit this if the node has fixed length, and hence if + the relevant arguments are fixed. +* The Range class now allows representation of arbitrary index ranges + (e.g. indices that are not contiguous, nor increasing, or include + repeats). This change is in support of vector indexing. The old Range + class is now represented by a sub-class SimpleRange. +* The interface of the NodeArray class is simplified. Member functions + find and isEmpty are defunct. +* The new NodeArraySubset class is introduced for use by Monitors. + The BUGSModel::getNode and Model::addExtraNode functions are defunct. + These functions were only needed by Monitors. +* Calculation of Kullback-Leibler divergence is moved out of the dic + module and into the library. +* The Node destructor no longer removes "this" (the node + being destroyed) from its parents' list of children. A new member function + unlinkParents() is added for this purpose. +* A new class of closed functions DNODE_ADDITIVE is added to the + ClosedFuncClass enumeration, with new method Function#isAdditive to + support LogicalNode#isClosed. An additive function can be expressed as + f(x) = a + sum(x) and is fixed if a is fixed. +* The test for valid initial values for Stochastic Nodes is moved out of + the model class and replaced by calls to GraphView::checkFinite in + the constructor of each sample method. This change enables samplers + to correct initial values when they are not valid. + +Internal changes in modules +=========================== +* All module namespaces are nested inside namespace jags + +* The FLIBS flag is now passed to modules that use LAPACK and BLAS. + This allows static linking to LAPACK. + +* base module + - FiniteMethod no longer has a restriction on the length of the + nodes that it can sample. + - The sequence operator ":" is now defined as a function in the + base module. Previously it was handled by the compiler. + - The TraceMonitor and MeanMonitor classes take their values from a + NodeArraySubset instead of a Node, allowing them to be constructed + even when all elements of a NodeArray have not been defined. + +* bugs module + - The ConjugateDirichlet sampler is now much faster for mixture + models. This sampler contains some experimental features that may + eventually be folded into the GraphView class. + - The classes RScalarDist, DFunction, PFunction, QFunction are + moved into the main library + - The beta binomial distribution (DBetaBin) is moved to the mix + module. + - The logDensity function for the multivariate normal distribution + (DMNorm) now includes the correct normalizing constant for PDF_FULL. + This affects deviance statistics for multivariate normal nodes. + - All VectorFunctions with scalar return values now inherit from + the new ScalarVectorFunction class. + - New distribution SumDist provides an "observable function" version + of the sum function, and the associated sampling method SumMethodd + provides a sampler for its stochastic parents. + +* glm module + - Refactorization of samplers. The new Outcome class presents an + abstract normal approximation to the GLM engine. + +* mix module + - New sampler MixDirich for conjugate Dirichlet sampling in a mixture + model. + - New sampler LDA for Latent Dirichlet Allocation models. + - The beta binomial distribution (DBetaBin) is moved from the + bugs module. + Changes in JAGS 3.4.0 ===================== @@ -44,6 +214,7 @@ message. + Changes in JAGS 3.3.0 ===================== diff -Nru jags-3.4.0/src/include/compiler/Compiler.h jags-4.0.0/src/include/compiler/Compiler.h --- jags-3.4.0/src/include/compiler/Compiler.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/compiler/Compiler.h 2015-07-27 20:28:22.000000000 +0000 @@ -2,7 +2,6 @@ #define COMPILER_H_ #include -#include #include #include #include @@ -15,14 +14,19 @@ #include #include #include +#include +#include + +namespace jags { class ParseTree; class SymTab; class FuncTab; class DistTab; class NodeAlias; - +class SimpleRange; class Compiler; + typedef void (Compiler::*CompilerMemFn) (ParseTree const *); /** @@ -34,21 +38,22 @@ std::map const &_data_table; std::map > _constant_mask; unsigned int _n_resolved, _n_relations; - bool *_is_resolved; - bool _strict_resolution; + std::vector _is_resolved; + unsigned int _resolution_level; int _index_expression; std::vector _index_nodes; - ConstantFactory _constantfactory; LogicalFactory _logicalfactory; MixtureFactory _mixfactory1; MixtureFactory _mixfactory2; - std::map > > _node_array_ranges; - + std::map > _node_array_bounds; + std::map, std::set > _umap; + std::set _lhs_vars; + Node *getArraySubset(ParseTree const *t); Range VariableSubsetRange(ParseTree const *var); Range CounterRange(ParseTree const *var); Node* VarGetNode(ParseTree const *var); - Range getRange(ParseTree const *var, Range const &default_range); + Range getRange(ParseTree const *var, SimpleRange const &default_range); void traverseTree(ParseTree const *relations, CompilerMemFn fun, bool resetcounter=true); @@ -64,8 +69,13 @@ std::vector &parents); Node * constFromTable(ParseTree const *p); void addDevianceNode(); + Node *getConstant(double value, unsigned int nchain, bool observed); + Node *getConstant(std::vector const &dim, + std::vector const &value, + unsigned int nchain, bool observed); + void getLHSVars(ParseTree const *rel); public: - bool indexExpression(ParseTree const *t, int &value); + bool indexExpression(ParseTree const *t, std::vector &value); BUGSModel &model() const; Node * getParameter(ParseTree const *t); /** @@ -121,5 +131,7 @@ MixtureFactory &mixtureFactory2(); }; +} /* namespace jags */ + #endif /* COMPILER_H_ */ diff -Nru jags-3.4.0/src/include/compiler/ConstantFactory.h jags-4.0.0/src/include/compiler/ConstantFactory.h --- jags-3.4.0/src/include/compiler/ConstantFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/compiler/ConstantFactory.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,54 +0,0 @@ -#ifndef CONSTANT_FACTORY_H_ -#define CONSTANT_FACTORY_H_ - -#include -#include - -class ConstantNode; -class Model; - -/** - * @short STL function object for the map class using double as a key - */ -struct ltdouble -{ - bool operator()(double arg1, double arg2) const - { - return lt(arg1, arg2); - } -}; - -typedef std::pair, std::vector > constpair; - -/** - * @short Factory for ConstantNode objects - * - * The purpose of a ConstantFactory is to avoid unnecessary - * duplication of constant nodes by having a container class and - * factory for them that will create and/or lookup constant nodes - * based on their value. - */ -class ConstantFactory -{ - unsigned int _nchain; - std::map _constmap; - std::map _mv_constmap; -public: - ConstantFactory(unsigned int nchain); - /** - * Get a constant node with a given value. The results are cached, - * so if a request is repeated, the same node will be returned. - * If a node is newly allocated, it is added to the given model. - */ - ConstantNode *getConstantNode(double value, Model &graph); - /** - * Get a multivariate constant node. The results are cached - * so that if a request is repeated, the same node will be returned. - * If a node is newly allocated, it is added to the given model. - */ - ConstantNode *getConstantNode(std::vector const &dim, - std::vector const &value, - Model &graph); -}; - -#endif /* CONSTANT_FACTORY_H_ */ diff -Nru jags-3.4.0/src/include/compiler/Counter.h jags-4.0.0/src/include/compiler/Counter.h --- jags-3.4.0/src/include/compiler/Counter.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/compiler/Counter.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,8 @@ #include +namespace jags { + /** * @short Mutable index that traverses a BUGS-language "for" loop * @@ -26,5 +28,7 @@ Counter &next(); }; +} /* namespace jags */ + #endif /* COUNTER_H_ */ diff -Nru jags-3.4.0/src/include/compiler/CounterTab.h jags-4.0.0/src/include/compiler/CounterTab.h --- jags-3.4.0/src/include/compiler/CounterTab.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/compiler/CounterTab.h 2015-02-22 08:33:05.000000000 +0000 @@ -8,6 +8,8 @@ #include #include +namespace jags { + /** * @short Counter table * @@ -42,5 +44,7 @@ Counter *getCounter(std::string const &name) const; }; +} /* namespace jags */ + #endif /* COUNTERTAB_H_ */ diff -Nru jags-3.4.0/src/include/compiler/LogicalFactory.h jags-4.0.0/src/include/compiler/LogicalFactory.h --- jags-3.4.0/src/include/compiler/LogicalFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/compiler/LogicalFactory.h 2015-04-19 15:09:24.000000000 +0000 @@ -7,6 +7,9 @@ #include #include +#include + +namespace jags { class Function; class Node; @@ -20,7 +23,7 @@ typedef std::pair > LogicalPair; /** - * @short "Less than" operator for LogicalPair objects. + * @short "Less than" function for LogicalPair objects. * * Two LogicalPairs A and B are considered to be equivalent * (i.e. lt(A,B) and lt(B,A) are both false) if they have the same @@ -35,17 +38,6 @@ bool lt(LogicalPair const &arg1, LogicalPair const &arg2); /** - * @short STL function object for the map class using LogicalPair as a key - */ -struct ltlogical -{ - bool operator()(LogicalPair const &arg1, LogicalPair const &arg2) const - { - return lt(arg1, arg2); - } -}; - -/** * @short Factory object for logical nodes * * The value of a logical node is determined uniquely by its function @@ -56,7 +48,7 @@ */ class LogicalFactory { - std::map _logicalmap; + std::map > _logicalmap; public: /** @@ -65,14 +57,17 @@ * node will be returned. If a newly allocated node is returned, * it is also added to the given Model. */ - Node *getNode(FunctionPtr const &func, + Node *getNode(FunctionPtr const &func, std::vector const ¶m, Model &model); /** * Returns a newly allocated LogicalNode. */ static LogicalNode* newNode(FunctionPtr const &func, - std::vector const &parents); + std::vector const &parents, + unsigned int nchain); }; +} /* namespace jags */ + #endif /* LOGICAL_FACTORY_H_ */ diff -Nru jags-3.4.0/src/include/compiler/Makefile.am jags-4.0.0/src/include/compiler/Makefile.am --- jags-3.4.0/src/include/compiler/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/compiler/Makefile.am 2015-02-22 08:33:05.000000000 +0000 @@ -1,6 +1,5 @@ compilerincludedir = $(pkgincludedir)/compiler compilerinclude_HEADERS = Compiler.h LogicalFactory.h ParseTree.h \ -Counter.h CounterTab.h ConstantFactory.h MixtureFactory.h \ -NodeFactory.h ObsFuncTab.h +Counter.h CounterTab.h MixtureFactory.h NodeFactory.h ObsFuncTab.h diff -Nru jags-3.4.0/src/include/compiler/Makefile.in jags-4.0.0/src/include/compiler/Makefile.in --- jags-3.4.0/src/include/compiler/Makefile.in 2013-08-30 13:23:26.000000000 +0000 +++ jags-4.0.0/src/include/compiler/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/include/compiler -DIST_COMMON = $(compilerinclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -63,10 +98,24 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(compilerinclude_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -103,11 +152,30 @@ } am__installdirs = "$(DESTDIR)$(compilerincludedir)" HEADERS = $(compilerinclude_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -121,6 +189,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -190,10 +261,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -261,8 +328,7 @@ top_srcdir = @top_srcdir@ compilerincludedir = $(pkgincludedir)/compiler compilerinclude_HEADERS = Compiler.h LogicalFactory.h ParseTree.h \ -Counter.h CounterTab.h ConstantFactory.h MixtureFactory.h \ -NodeFactory.h ObsFuncTab.h +Counter.h CounterTab.h MixtureFactory.h NodeFactory.h ObsFuncTab.h all: all-am @@ -279,7 +345,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/include/compiler/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/include/compiler/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -325,26 +390,15 @@ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(compilerincludedir)'; $(am__uninstall_files_from_dir) -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -356,15 +410,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -373,6 +423,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -512,10 +577,10 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ install-compilerincludeHEADERS install-data install-data-am \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ @@ -523,9 +588,11 @@ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am tags uninstall uninstall-am \ + ps ps-am tags tags-am uninstall uninstall-am \ uninstall-compilerincludeHEADERS +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru jags-3.4.0/src/include/compiler/MixtureFactory.h jags-4.0.0/src/include/compiler/MixtureFactory.h --- jags-3.4.0/src/include/compiler/MixtureFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/compiler/MixtureFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -7,6 +7,8 @@ #include +namespace jags { + class NodeArray; class Model; @@ -56,4 +58,6 @@ MixMap const ¶meters, Model &model); }; +} /* namespace jags */ + #endif /* MIXTURE_FACTORY_H_ */ diff -Nru jags-3.4.0/src/include/compiler/NodeFactory.h jags-4.0.0/src/include/compiler/NodeFactory.h --- jags-3.4.0/src/include/compiler/NodeFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/compiler/NodeFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -4,17 +4,67 @@ #include #include -class Node; +namespace jags { -inline bool lt(double value1, double value2) -{ - return value1 < value2 - 16 * DBL_EPSILON; -} - -bool lt(std::vector const &value1, std::vector const &value2); -bool lt(double const *value1, double const *value2, unsigned int length); -bool lt(Node const *node1, Node const *node2); -bool lt(std::vector const &par1, - std::vector const &par2); + class Node; + + /** + * @short Fuzzy less than function for doubles + * + * Gives an ordering for doubles allowing for some numerical + * tolerance. Values that are "nearly equal" are considered to be + * equal. + */ + inline bool lt(double value1, double value2) + { + return value1 < value2 - 16 * DBL_EPSILON; + } + + /** + * @short Fuzzy less than function for arrays of doubles + * + * Gives an ordering for two arrays of doubles of the same length. + * Values that are numerically "nearly equal" are considered to + * be equal. + */ + bool lt(double const *value1, double const *value2, unsigned int length); + + /** + * @short Fuzzy less than function for Nodes + * + * Gives an ordering for Nodes that is arbitrary, but reproducible + * within the same process. This is all that is required by the + * various Node factories. + * + * In this ordering fixed nodes come before non-fixed nodes. Fixed + * nodes are ordered within themselves using the fuzzy less than + * operator for their values. Non-fixed nodes are sorted by their + * pointer values (which gives an arbitrary, but strict ordering). + */ + bool lt(Node const *node1, Node const *node2); + + /** + * @short Fuzzy less than function for vectors of Nodes + * + * Extends the fuzzy less than operator for Nodes to vectors of + * Nodes. Vectors are first sorted by length, then an element-wise + * comparison of each Node in the vector. + */ + bool lt(std::vector const &par1, + std::vector const &par2); + + + /** + * Template that constructs a function object from any of the + * above less than functions. + */ + template struct fuzzy_less + { + bool operator()(T const &arg1, T const &arg2) const { + return lt(arg1, arg2); + } + }; + +} /* namespace jags */ #endif /* NODE_FACTORY_H_ */ diff -Nru jags-3.4.0/src/include/compiler/ObsFuncTab.h jags-4.0.0/src/include/compiler/ObsFuncTab.h --- jags-3.4.0/src/include/compiler/ObsFuncTab.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/compiler/ObsFuncTab.h 2015-09-10 05:42:23.000000000 +0000 @@ -7,6 +7,8 @@ #include #include +namespace jags { + /** * @short Look-up table for observable functions * @@ -26,6 +28,10 @@ FunctionPtr const _nullfun; public: /** + * Constructs a new empty table + */ + ObsFuncTab(); + /** * Inserts an observable function into the table. The distribution * and function must have the same name in the BUGS language. A * given pair can only be inserted into the table once @@ -53,4 +59,6 @@ void erase(DistPtr const &dist, FunctionPtr const &func); }; +} /* namespace jags */ + #endif /* OBS_FUNC_TAB_H_ */ diff -Nru jags-3.4.0/src/include/compiler/ParseTree.h jags-4.0.0/src/include/compiler/ParseTree.h --- jags-3.4.0/src/include/compiler/ParseTree.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/compiler/ParseTree.h 2015-02-22 08:33:05.000000000 +0000 @@ -4,6 +4,8 @@ #include #include +namespace jags { + enum TreeClass { P_VAR, P_RANGE, P_BOUNDS, P_DENSITY, P_LINK, P_COUNTER, P_VALUE, P_STOCHREL, P_DETRMREL, P_FOR, P_FUNCTION, P_RELATIONS, @@ -92,6 +94,8 @@ int line() const; }; +} /* namespace jags */ + #endif /* PARSE_TREE_H_ */ diff -Nru jags-3.4.0/src/include/Console.h jags-4.0.0/src/include/Console.h --- jags-3.4.0/src/include/Console.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/Console.h 2015-09-13 20:17:05.000000000 +0000 @@ -1,228 +1,246 @@ -#ifndef CONSOLE_H_ -#define CONSOLE_H_ + #ifndef CONSOLE_H_ + #define CONSOLE_H_ -#include - -#include -#include -#include -#include -#include -#include - -class BUGSModel; -class ParseTree; -class RNG; -class Module; - -/** - * @short Flags for the function Console#dumpState - */ -enum DumpType {DUMP_DATA, DUMP_PARAMETERS, DUMP_ALL}; -/** - * @short Enumerates factory types in a model - */ -enum FactoryType {SAMPLER_FACTORY, MONITOR_FACTORY, RNG_FACTORY}; - -/** - * @short Interface to the JAGS library - */ -class Console -{ - std::ostream &_out; - std::ostream &_err; - BUGSModel *_model; - ParseTree *_pdata; - ParseTree *_prelations; - std::vector *_pvariables; - std::vector _array_names; -public: - /** - * Constructor - * - * @param out Output stream to which information messages will be printed. - * - * @param err Output stream to which error messages will be printed. - * - */ - Console(std::ostream &out, std::ostream &err); - ~Console(); - /** - * Checks syntactic correctness of model - * - * @param file containing BUGS-language description of the model - * - * @param varnames vector of of strings that contains the names of - * all variables in the model on exit. - * - * @return true on success or false on error. - */ - bool checkModel(std::FILE *file); - /** - * Compiles the model. - * - * @param data Map relating the names of the observed variables to - * their values. - * - * @param nchain Number of chains in the model. - * - * @param gendata Boolean flag indicating whether the data generation - * sub-model should be run, if there is one. - * - * @return true on success or false on error. - */ - bool compile(std::map &data_table, unsigned int nchain, - bool gendata); - /** - * @short Sets the parameters (unobserved variables) of the model. - * - * This is normally done to supply initial values to the model but - * may also be done at any point in the chain. - * - * @param param_table Map relating the names of the parameters to - * their values - * - * @param chain Number of chain (starting from 1) to apply parameter - * values to - * - * @return true on success, false on failure. - */ - bool setParameters(std::map const ¶m_table, - unsigned int chain); - /** - * Sets the name of the RNG for the given chain. The Console searches - * through all loaded RNGFactories to find one that will generate an - * RNG object with the given name. - * - * @return true on success, false on failure. - */ - bool setRNGname(std::string const &name, unsigned int chain); - /** - * @short Initializes the model. - * - * Any uninitialized parameters are given values by deterministic forward - * sampling. Then default RNGs are chosen for all chains that have not - * already had their RNG set, based on the list of RNGFactory objects. - * Finally, the samplers are chosen based for the unobserved - * stochastic nodes based on the list of sampler factories. - * - * @returns true on success, false on failure. - * - * @see Model#samplerFactories, Model#rngFactories - */ - bool initialize(); - /** - * @short Updates the Markov chain generated by the model. - * - * @param n Number of iterations of the Markov chain. - * - * @returns true on success, false on failure. - */ - bool update (unsigned int n); - /** - * Sets a monitor for a subset of the given node array - * - * @param name Name of array containing nodes to be monitored - * - * @param range Range describing subset of named array to monitor. - * A NULL range may be given, in which case, the whole array is - * monitored. - * - * @param thin Thinning interval for the monitor - * - * @param type Name of the monitor type. - * - */ - bool setMonitor(std::string const &name, Range const &range, - unsigned int thin, std::string const &type); - /** - * @short Clears a monitor. - * - * The arguments name, range and type must correspond exactly to - * a previous call to setMonitor. - */ - bool clearMonitor(std::string const &name, Range const &range, - std::string const &type); - /** - * @short Dumps the state of the model. - * - * Writes the current values of the variables to the data table. - * - * @param data_table Data table to receive values. This must be - * initially empty. - * - * @param rng_name String which will be overwritten with the name - * of the RNG for this chain. - * - * @param type Flag describing which values in the model to dump. - * DUMP_DATA dumps the observed stochastic nodes, DUMP_PARAMETERS - * dumps the unobserved stochastic nodes, and DUMP_ALL, dumps the values - * of all named nodes in the model. - * - * @param chain Number of the chain for which to dump values (starting - * from 1). - */ - bool dumpState(std::map &data_table, - std::string &rng_name, - DumpType type, unsigned int chain); - /** - * Returns the iteration number of the model. - */ - unsigned int iter() const; - /** - * Returns a vector of variable names used by the model. This vector - * excludes any counters used by the model within a for loop. - */ - std::vector const &variableNames() const; - /** - * Dump the contants of monitored node in CODA format - * - * @param node Vector of monitored nodes to be dumped, each node - * is described by the variable name and index range. If the vector - * is empty then ALL monitored nodes will be dumped. - * - * @param prefix Prefix to be prepended to the output file names - */ - bool coda(std::vector > const &nodes, - std::string const &prefix); - bool coda(std::string const &prefix); - BUGSModel const *model(); - unsigned int nchain() const; - bool dumpMonitors(std::map &data_table, - std::string const &type, bool flat); - bool dumpSamplers(std::vector > &sampler_list); - /** Turns off adaptive mode of the model */ - bool adaptOff(); - /** Checks whether adaptation is complete */ - bool checkAdaptation(bool &status); - /** Indicates whether model is in adaptive mode */ - bool isAdapting() const; - /** Clears the model */ - void clearModel(); - /** - * Loads a module by name - */ - static bool loadModule(std::string const &name); - /** - * Unloads a module by name - */ - static bool unloadModule(std::string const &name); - /** - * Returns a vector containing the names of loaded modules - */ - static std::vector listModules(); - /** - * Returns a vector containing the names of currently loaded factories - * and whether or not they are active. - */ - static std::vector > - listFactories(FactoryType type); - /** - * Sets a factory to be active or inactive - */ - static bool setFactoryActive(std::string const &name, FactoryType type, - bool active); + #include + #include + #include + #include + #include + #include + #include + + namespace jags { + + class BUGSModel; + class ParseTree; + struct RNG; + class Module; + + /** + * @short Flags for the function Console#dumpState + */ + enum DumpType {DUMP_DATA, DUMP_PARAMETERS, DUMP_ALL}; + /** + * @short Enumerates factory types in a model + */ + enum FactoryType {SAMPLER_FACTORY, MONITOR_FACTORY, RNG_FACTORY}; + + /** + * @short Interface to the JAGS library + */ + class Console + { + std::ostream &_out; + std::ostream &_err; + BUGSModel *_model; + ParseTree *_pdata; + ParseTree *_prelations; + std::vector *_pvariables; + std::vector _array_names; + static unsigned int &rngSeed(); + public: + /** + * Constructor + * + * @param out Output stream to which information messages will be printed. + * + * @param err Output stream to which error messages will be printed. + * + */ + Console(std::ostream &out, std::ostream &err); + ~Console(); + /** + * Checks syntactic correctness of model + * + * @param file containing BUGS-language description of the model + * + * @param varnames vector of of strings that contains the names of + * all variables in the model on exit. + * + * @return true on success or false on error. + */ + bool checkModel(std::FILE *file); + /** + * Compiles the model. + * + * @param data Map relating the names of the observed variables to + * their values. + * + * @param nchain Number of chains in the model. + * + * @param gendata Boolean flag indicating whether the data generation + * sub-model should be run, if there is one. + * + * @return true on success or false on error. + */ + bool compile(std::map &data_table, unsigned int nchain, + bool gendata); + /** + * @short Sets the parameters (unobserved variables) of the model. + * + * This is normally done to supply initial values to the model but + * may also be done at any point in the chain. + * + * @param param_table Map relating the names of the parameters to + * their values + * + * @param chain Number of chain (starting from 1) to apply parameter + * values to + * + * @return true on success, false on failure. + */ + bool setParameters(std::map const ¶m_table, + unsigned int chain); + /** + * Sets the name of the RNG for the given chain. The Console searches + * through all loaded RNGFactories to find one that will generate an + * RNG object with the given name. + * + * @return true on success, false on failure. + */ + bool setRNGname(std::string const &name, unsigned int chain); + /** + * @short Initializes the model. + * + * Any uninitialized parameters are given values by deterministic forward + * sampling. Then default RNGs are chosen for all chains that have not + * already had their RNG set, based on the list of RNGFactory objects. + * Finally, the samplers are chosen based for the unobserved + * stochastic nodes based on the list of sampler factories. + * + * @returns true on success, false on failure. + * + * @see Model#samplerFactories, Model#rngFactories + */ + bool initialize(); + /** + * @short Updates the Markov chain generated by the model. + * + * @param n Number of iterations of the Markov chain. + * + * @returns true on success, false on failure. + */ + bool update (unsigned int n); + /** + * Sets a monitor for a subset of the given node array + * + * @param name Name of array containing nodes to be monitored + * + * @param range Range describing subset of named array to monitor. + * A NULL range may be given, in which case, the whole array is + * monitored. + * + * @param thin Thinning interval for the monitor + * + * @param type Name of the monitor type. + * + */ + bool setMonitor(std::string const &name, Range const &range, + unsigned int thin, std::string const &type); + /** + * @short Clears a monitor. + * + * The arguments name, range and type must correspond exactly to + * a previous call to setMonitor. + */ + bool clearMonitor(std::string const &name, Range const &range, + std::string const &type); + /** + * @short Dumps the state of the model. + * + * Writes the current values of the variables to the data table. + * + * @param data_table Data table to receive values. This must be + * initially empty. + * + * @param rng_name String which will be overwritten with the name + * of the RNG for this chain. + * + * @param type Flag describing which values in the model to dump. + * DUMP_DATA dumps the observed stochastic nodes, DUMP_PARAMETERS + * dumps the unobserved stochastic nodes, and DUMP_ALL, dumps the values + * of all named nodes in the model. + * + * @param chain Number of the chain for which to dump values (starting + * from 1). + */ + bool dumpState(std::map &data_table, + std::string &rng_name, + DumpType type, unsigned int chain); + /** + * Returns the iteration number of the model. + */ + unsigned int iter() const; + /** + * Returns a vector of variable names used by the model. This vector + * excludes any counters used by the model within a for loop. + */ + std::vector const &variableNames() const; + /** + * Dump the contants of monitored node in CODA format + * + * @param node Vector of monitored nodes to be dumped, each node + * is described by the variable name and index range. If the vector + * is empty then ALL monitored nodes will be dumped. + * + * @param prefix Prefix to be prepended to the output file names + */ + bool coda(std::vector > const &nodes, + std::string const &prefix); + bool coda(std::string const &prefix); + BUGSModel const *model(); + unsigned int nchain() const; + bool dumpMonitors(std::map &data_table, + std::string const &type, bool flat); + bool dumpSamplers(std::vector > &sampler_list); + /** Turns off adaptive mode of the model */ + bool adaptOff(); + /** Checks whether adaptation is complete */ + bool checkAdaptation(bool &status); + /** Indicates whether model is in adaptive mode */ + bool isAdapting() const; + /** Clears the model */ + void clearModel(); + /** + * Loads a module by name + */ + static bool loadModule(std::string const &name); + /** + * Unloads a module by name + */ + static bool unloadModule(std::string const &name); + /** + * Returns a vector containing the names of loaded modules + */ + static std::vector listModules(); + /** + * Returns a vector containing the names of currently loaded factories + * and whether or not they are active. + */ + static std::vector > + listFactories(FactoryType type); + /** + * Sets a factory to be active or inactive + */ + static bool setFactoryActive(std::string const &name, FactoryType type, + bool active); + /** + * Sets the seed for all RNG factories. + * + * Sets the seed for all currently loaded RNGFactory objects, + * including the ones that are currently active. After a call to + * setSeed, all RNGFactory objects in subsequently loaded Modules + * will have their seeds set to the given value. + * + * @param seed Unsigned integer giving a random seed. The seed must + * be positive: a zero seed will have no effect. + * + * @see RNGFactory#setSeed + */ + static void setRNGSeed(unsigned int seed); }; +} /* namespace jags */ + #endif /* CONSOLE_H_ */ diff -Nru jags-3.4.0/src/include/distribution/ArrayDist.h jags-4.0.0/src/include/distribution/ArrayDist.h --- jags-3.4.0/src/include/distribution/ArrayDist.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/distribution/ArrayDist.h 2015-04-26 21:25:14.000000000 +0000 @@ -6,6 +6,8 @@ #include #include +namespace jags { + struct RNG; /** @@ -144,6 +146,44 @@ support(double *lower, double *upper, unsigned int length, std::vector const &support, std::vector > const &dims) const = 0; + /** + * Returns a Monte Carlo estimate of the Kullback-Leibler + * divergence between distributions with two different parameter + * values. This is done by drawing random samples from the + * distribution with the first set of parameters and then + * calculating the log-likelihood ratio with respect to the second + * set of parameters. + * + * A subclass of ArrayDist can overload this function if the + * Kullback-Leibler divergence for the distribution it represents + * can be expressed in closed form. + * + * @param par1 First set of parameters + * @param par2 Second set of parameter values + * @param dims Vector of parameter dimensions, common to both par1 and par2 + * @param rng Random number generator + * @param nrep Number of replicates on which to base the estimate + */ + double KL(std::vector const &par1, + std::vector const &par2, + std::vector > const &dims, + double const *lower, double const *upper, + RNG *rng, unsigned int nrep) const; + /** + * Returns the Kullback-Leibler divergence between distributions + * with two different parameter values. + * + * This is a virtual function that must be overloaded for any + * distribution that allows exact Kullback-Leibler divergence + * calculations. The default method returns JAGS_NA, indicating that + * the method is not implemented. + */ + virtual double KL(std::vector const &par1, + std::vector const &par2, + std::vector > const &dims) + const; }; +} /* namespace jags */ + #endif /* ARRAY_DIST_H_ */ diff -Nru jags-3.4.0/src/include/distribution/DistError.h jags-4.0.0/src/include/distribution/DistError.h --- jags-3.4.0/src/include/distribution/DistError.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/distribution/DistError.h 2015-02-22 08:33:05.000000000 +0000 @@ -4,6 +4,8 @@ #include #include +namespace jags { + class Distribution; /** @@ -18,4 +20,6 @@ DistError(Distribution const *dist, std::string const &msg); }; +} /* namespace jags */ + #endif /* DIST_ERROR_H_ */ diff -Nru jags-3.4.0/src/include/distribution/DistPtr.h jags-4.0.0/src/include/distribution/DistPtr.h --- jags-3.4.0/src/include/distribution/DistPtr.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/distribution/DistPtr.h 2015-02-22 08:33:05.000000000 +0000 @@ -5,6 +5,8 @@ #include #include +namespace jags { + /** * @short Polymorphic pointer to Distribution * @@ -31,4 +33,6 @@ friend bool isNULL(DistPtr const &p); }; +} /* namespace jags */ + #endif /* DIST_POINTER_H_ */ diff -Nru jags-3.4.0/src/include/distribution/Distribution.h jags-4.0.0/src/include/distribution/Distribution.h --- jags-3.4.0/src/include/distribution/Distribution.h 2011-12-21 10:01:00.000000000 +0000 +++ jags-4.0.0/src/include/distribution/Distribution.h 2015-02-27 21:43:38.000000000 +0000 @@ -4,6 +4,8 @@ #include #include +namespace jags { + struct RNG; /** @@ -73,10 +75,9 @@ */ virtual bool isSupportFixed(std::vector const &fixmask) const = 0; /** - * Checks that a vector of parameters of length npar is consistent - * with the distribution. + * Returns the number of parameters of the distribution */ - bool checkNPar(unsigned int npar) const; + unsigned int npar() const; /** * Some distributions require some of the parameters to be discrete * valued. As most distributions do not require discrete valued paremeters, @@ -140,4 +141,14 @@ virtual bool canBound() const; }; +/** + * Checks that the distribution accepts npar parameters + */ +inline bool checkNPar(Distribution const *dist, unsigned int npar) +{ + return (dist->npar() == 0 && npar > 0) || dist->npar() == npar; +} + +} /* namespace jags */ + #endif /* DISTRIBUTION_H_ */ diff -Nru jags-3.4.0/src/include/distribution/DistTab.h jags-4.0.0/src/include/distribution/DistTab.h --- jags-3.4.0/src/include/distribution/DistTab.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/distribution/DistTab.h 2015-09-10 05:42:23.000000000 +0000 @@ -6,6 +6,8 @@ #include +namespace jags { + /** * @short Look-up table for Distribution objects * @@ -19,6 +21,7 @@ std::list _dlist; DistPtr const _nulldist; public: + DistTab(); /** * Inserts a dist into the table. */ @@ -36,4 +39,6 @@ void erase(DistPtr const &dist); }; +} /* namespace jags */ + #endif /* DIST_TAB_H_ */ diff -Nru jags-3.4.0/src/include/distribution/Makefile.am jags-4.0.0/src/include/distribution/Makefile.am --- jags-3.4.0/src/include/distribution/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/distribution/Makefile.am 2015-02-22 08:33:05.000000000 +0000 @@ -1,4 +1,4 @@ distribincludedir = $(pkgincludedir)/distribution -distribinclude_HEADERS = Distribution.h ScalarDist.h \ -VectorDist.h ArrayDist.h DistPtr.h DistTab.h DistError.h +distribinclude_HEADERS = Distribution.h ScalarDist.h VectorDist.h \ +ArrayDist.h DistPtr.h DistTab.h DistError.h RScalarDist.h diff -Nru jags-3.4.0/src/include/distribution/Makefile.in jags-4.0.0/src/include/distribution/Makefile.in --- jags-3.4.0/src/include/distribution/Makefile.in 2013-08-30 13:23:26.000000000 +0000 +++ jags-4.0.0/src/include/distribution/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/include/distribution -DIST_COMMON = $(distribinclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -63,10 +98,24 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(distribinclude_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -103,11 +152,30 @@ } am__installdirs = "$(DESTDIR)$(distribincludedir)" HEADERS = $(distribinclude_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -121,6 +189,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -190,10 +261,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -260,8 +327,8 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ distribincludedir = $(pkgincludedir)/distribution -distribinclude_HEADERS = Distribution.h ScalarDist.h \ -VectorDist.h ArrayDist.h DistPtr.h DistTab.h DistError.h +distribinclude_HEADERS = Distribution.h ScalarDist.h VectorDist.h \ +ArrayDist.h DistPtr.h DistTab.h DistError.h RScalarDist.h all: all-am @@ -278,7 +345,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/include/distribution/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/include/distribution/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -324,26 +390,15 @@ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(distribincludedir)'; $(am__uninstall_files_from_dir) -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -355,15 +410,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -372,6 +423,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -511,18 +577,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-distribincludeHEADERS install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-distribincludeHEADERS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-distribincludeHEADERS \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-distribincludeHEADERS + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/include/distribution/RScalarDist.h jags-4.0.0/src/include/distribution/RScalarDist.h --- jags-3.4.0/src/include/distribution/RScalarDist.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/distribution/RScalarDist.h 2015-02-22 14:54:26.000000000 +0000 @@ -0,0 +1,117 @@ +#ifndef R_SCALAR_DIST_H_ +#define R_SCALAR_DIST_H_ + +#include + +namespace jags { + +struct RNG; + +/** + * @short Scalar Distribution using R math library infrastructure. + * + * A subclass of RScalarDist has to implement the d,p,q, and r virtual + * member functions. These are based on the d-p-q-r functions provided + * by libRmath. + * + * The JAGS versions of most (but not all) scalar distributions extend + * the distribution families in libRmath by allowing the distribution + * to be bounded. + */ +class RScalarDist : public ScalarDist +{ + const bool _discrete; + double calPlower(double, std::vector const &) const; + double calPupper(double, std::vector const &) const; +public: + /** + * Constructor + * + * @param name BUGS language name of distribution + * + * @param npar Number of parameters, excluding upper and lower bound + * + * @param support Support of distribution + * + * @param discrete Boolean flag indicating whether the distribution is + * discrete valued. + */ + RScalarDist(std::string const &name, unsigned int npar, Support support, + bool discrete=false); + double logDensity(double x, PDFType type, + std::vector const ¶meters, + double const *lower, double const *upper) const; + double randomSample(std::vector const ¶meters, + double const *lower, double const *upper, + RNG *rng) const; + /** + * Returns the median. Note that this function can be overloaded + * by a subclass if necessary. + */ + double typicalValue(std::vector const ¶meters, + double const *lower, double const *upper) const; + /** + * Density function, ignoring bounds + * @param x value at which to evaluate the density + * @param type Type of density calculation required. + * @param parameters Array of parameters + * @param give_log Indicates whether to return log density. + */ + virtual double d(double x, PDFType type, + std::vector const ¶meters, + bool give_log) const = 0; + /** + * Distribution function, ignoring bounds + * @param x quantile at which to evaluate the distribution function + * @param parameters Array of parameters + * @param lower If true, return value is P[X <= x]. Otherwise + * P[X > x] + * @param give_log Indicates whether to return log probabability + */ + virtual double p(double x, std::vector const ¶meters, + bool lower, bool give_log) const = 0; + /** + * Quantile function, ignoring bounds + * @param p probability for which to evaluate quantile + * @param parameters Array of parameters + * @param log_p Indicates whether p is given as log(p). + */ + virtual double q(double p, std::vector const ¶meters, + bool lower, bool log_p) const = 0; + /** + * Random number generation, ignoring bounds + * @param parameters Array of parameters + */ + virtual double + r(std::vector const ¶meters, RNG *rng) const = 0; + /** + * All RScalarDist distributions can be bounded + */ + bool canBound() const; + /** + * RScalarDist distributions are defined to have support on the integers + * or on the real line by the constructor + */ + bool isDiscreteValued(std::vector const &mask) const; + /** + * Alternative function for determining whether the distribution is + * discrete-valued. + */ + bool discrete() const; +}; + + /** + * Convenience function that calculates x * log(0) as the limit of + * x * log(p) as p tends to zero. This is required for calculation + * of some density functions. + * + * @param x coefficient of log(0) + * @param give_log logical flag. If true then the limit of x*log(p) + * is returned, otherwise the limit of p^x. + */ + double xlog0(double x, bool give_log); + +} + +#endif /* SCALAR_DIST_RMATH_H_ */ + diff -Nru jags-3.4.0/src/include/distribution/ScalarDist.h jags-4.0.0/src/include/distribution/ScalarDist.h --- jags-3.4.0/src/include/distribution/ScalarDist.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/distribution/ScalarDist.h 2015-04-26 21:04:39.000000000 +0000 @@ -3,6 +3,8 @@ #include +namespace jags { + struct RNG; /** @@ -98,11 +100,44 @@ * deterministic functions of the parameters, this must be overridden. */ virtual unsigned int df() const; - /* + /** + * Returns a Monte Carlo estimate of the Kullback-Leibler divergence + * between distributions with two different parameter values. This + * is done by drawing random samples from the distribution with the + * first set of parameters and then calculating the log-likelihood + * ratio with respect to the second set of parameters. + * + * Only one lower and one upper bound is required, which is assumed + * common to both sets of parameters. This is because the + * Kullback-Leibler divergence is infinite between two bounded + * distributions if they do not share the same bounds. + * + * @param par1 First set of parameters + * @param par2 Second set of parameter values + * @param lower Pointer to lower bound (NULL if there is no lower bound) + * @param upper Pointer to upper bound (NULL if there is no upper bound) + * @param rng Random number generator + * @param nrep Number of replicates on which to base the estimate + */ + double KL(std::vector const &par1, + std::vector const &par2, + double const *lower, double const *upper, + RNG *rng, unsigned int nrep) const; + /** + * Returns the Kullback-Leibler divergence between distributions + * with two different parameter values. + * + * This is a virtual function that must be overloaded for any + * distribution that allows exact Kullback-Leibler divergence + * calculations. The default method returns JAGS_NA, indicating that + * the method is not implemented. + */ virtual double KL(std::vector const &par1, - std::vector const &par2, - bool symmetric, RNG *rng, unsigned int nrep); - */ + std::vector const &par2) const; + }; +} /* namespace jags */ + #endif /* SCALAR_DIST_H_ */ + diff -Nru jags-3.4.0/src/include/distribution/VectorDist.h jags-4.0.0/src/include/distribution/VectorDist.h --- jags-3.4.0/src/include/distribution/VectorDist.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/distribution/VectorDist.h 2015-04-26 21:09:47.000000000 +0000 @@ -6,6 +6,8 @@ #include #include +namespace jags { + struct RNG; /** @@ -148,6 +150,47 @@ * case, the df member function must be overrideen. */ virtual unsigned int df(std::vector const &lengths) const; + /** + * Returns a Monte Carlo estimate of the Kullback-Leibler + * divergence between distributions with two different parameter + * values. This is done by drawing random samples from the + * distribution with the first set of parameters and then + * calculating the log-likelihood ratio with respect to the second + * set of parameters. + * + * Only one lower and one upper bound is required, which is + * assumed common to both sets of parameters. This is because the + * Kullback-Leibler divergence is infinite between two bounded + * distributions if they do not share the same bounds. + * + * @param par1 First set of parameters + * @param par2 Second set of parameter values + * @param lengths Vector of parameter lengths, common to both par1 and par2 + * @param lower Pointer to lower bound (NULL if unbounded) + * @param upper Pointer to upper bound (NULL if unbounded) + * @param rng Random number generator + * @param nrep Number of replicates on which to base the estimate + */ + double KL(std::vector const &par1, + std::vector const &par2, + std::vector const &lengths, + double const *lower, double const *upper, + RNG *rng, unsigned int nrep) const; + /** + * Returns the Kullback-Leibler divergence between distributions + * with two different parameter values. + * + * This is a virtual function that must be overloaded for any + * distribution that allows exact Kullback-Leibler divergence + * calculations. The default method returns JAGS_NA, indicating that + * the method is not implemented. + */ + virtual double KL(std::vector const &par1, + std::vector const &par2, + std::vector const &lengths) const; }; +} /* namespace jags */ + #endif /* VECTOR_DISTRIBUTION_H_ */ + diff -Nru jags-3.4.0/src/include/function/ArrayFunction.h jags-4.0.0/src/include/function/ArrayFunction.h --- jags-3.4.0/src/include/function/ArrayFunction.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/function/ArrayFunction.h 2015-02-22 08:33:05.000000000 +0000 @@ -6,12 +6,14 @@ #include #include +namespace jags { + /** * @short Matrix- or array-valued function * * Array-valued functions are the most general class of function. The - * arguments of an array-valued function, and the value, may be - * scalars, vector, matrices or arrays. + * arguments of an array-valued function, and the value may be a + * scalar, vector, or array. * */ class ArrayFunction : public Function @@ -52,16 +54,19 @@ const; /** * Calculates what the dimension of the return value should be, - * based on the dimensions of the arguments. The dimension of the - * return value cannot depend on the value of any of the arguments, - * only their dimensions. + * based on the arguments. * * @param dims Vector of Indices denoting the dimensions of the * parameters. This vector must return true when passed to * checkParameterDim. + * + * @param values Vector of pointers to parameter values. */ virtual std::vector - dim(std::vector > const &dims) const = 0; + dim(std::vector > const &dims, + std::vector const &values) const = 0; }; +} /* namespace jags */ + #endif /* ARRAY_FUNCTION_H_ */ diff -Nru jags-3.4.0/src/include/function/ArrayLogDensity.h jags-4.0.0/src/include/function/ArrayLogDensity.h --- jags-3.4.0/src/include/function/ArrayLogDensity.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/function/ArrayLogDensity.h 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,34 @@ +#ifndef ARRAY_LOG_DENSITY_H_ +#define ARRAY_LOG_DENSITY_H_ + +#include + +namespace jags { + + class ArrayDist; + + /** + * @short Log density function for an array-valued Distribution + */ + class ArrayLogDensity : public ArrayFunction + { + ArrayDist const *_dist; + public: + ArrayLogDensity(ArrayDist const *dist); + std::vector dim( + std::vector > const &dims, + std::vector const &values) const; + bool checkParameterDim( + std::vector > const &dims) const; + bool checkParameterValue( + std::vector const &args, + std::vector > const &dims) const; + void evaluate( + double *value, + std::vector const &args, + std::vector > const &dims) const; + }; + +} + +#endif /* ARRAY_LOG_DENSITY_H_ */ diff -Nru jags-3.4.0/src/include/function/DFunction.h jags-4.0.0/src/include/function/DFunction.h --- jags-3.4.0/src/include/function/DFunction.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/function/DFunction.h 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,21 @@ +#ifndef D_FUNCTION_H_ +#define D_FUNCTION_H_ + +#include "DPQFunction.h" + +namespace jags { + + /** + * @short Density function for an R Scalar Distribution + */ + class DFunction : public DPQFunction + { + public: + DFunction(RScalarDist const *dist); + bool checkParameterValue(std::vector const &args) const; + double evaluate(std::vector const &args) const; + }; + +} + +#endif /* D_FUNCTION_H_ */ diff -Nru jags-3.4.0/src/include/function/DPQFunction.h jags-4.0.0/src/include/function/DPQFunction.h --- jags-3.4.0/src/include/function/DPQFunction.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/function/DPQFunction.h 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,43 @@ +#ifndef DPQ_FUNCTION_H_ +#define DPQ_FUNCTION_H_ + +#include + +namespace jags { + + class RScalarDist; + + /** + * @short Functions derived from R Scalar distributions + * + * The DPQFunction class exposes member functions of the class + * RScalarDist as BUGS functions so that they can be called by the + * user. These are the density (D), cumulative probability (P), + * and quantile (Q) functions. + * + * D-P-Q functions are generated automatically when an + * RScalarFunction is inserted into the Module. + * + * @seealso Module#insert + */ + class DPQFunction : public ScalarFunction + { + RScalarDist const *_dist; + public: + DPQFunction(std::string const &name, RScalarDist const *dist); + /** + * Returns the distribution from which the function is derived + */ + RScalarDist const *dist() const; + /** + * If an RScalarDist has m parameters, then a DPQFunction + * derived from it will have (m+1) arguments. To check the + * validity of the arguments, we strip off the first one and + * then pass the rest to ScalarDist#checkParameterValue + */ + bool checkArgs(std::vector const &args) const; + }; + +} + +#endif /* DPQ_FUNCTION_H_ */ diff -Nru jags-3.4.0/src/include/function/FuncError.h jags-4.0.0/src/include/function/FuncError.h --- jags-3.4.0/src/include/function/FuncError.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/function/FuncError.h 2015-02-22 08:33:05.000000000 +0000 @@ -4,6 +4,8 @@ #include #include +namespace jags { + class Function; /** @@ -18,4 +20,6 @@ FuncError(Function const *func, std::string const &msg); }; +} /* namespace jags */ + #endif /* FUNC_ERROR_H_ */ diff -Nru jags-3.4.0/src/include/function/FuncTab.h jags-4.0.0/src/include/function/FuncTab.h --- jags-3.4.0/src/include/function/FuncTab.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/function/FuncTab.h 2015-09-10 05:42:23.000000000 +0000 @@ -6,6 +6,8 @@ #include +namespace jags { + /** * @short Look-up table for Function objects * @@ -20,6 +22,10 @@ FunctionPtr const _nullfun; public: /** + * Constructs a new empty FuncTab + */ + FuncTab(); + /** * Inserts a function into the table. */ void insert (FunctionPtr const &func); @@ -45,4 +51,6 @@ void erase(FunctionPtr const &func); }; +} /* namespace jags */ + #endif /* FUNC_TAB_H_ */ diff -Nru jags-3.4.0/src/include/function/Function.h jags-4.0.0/src/include/function/Function.h --- jags-3.4.0/src/include/function/Function.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/function/Function.h 2015-07-02 19:53:25.000000000 +0000 @@ -4,6 +4,8 @@ #include #include +namespace jags { + class Range; /** @@ -44,10 +46,9 @@ */ virtual std::string alias() const; /** - * Checks that a vector of parameters of length npar is consistent - * with the function. + * Returns the number of parameters. A variadic function returns 0. */ - bool checkNPar(unsigned int npar) const; + unsigned int npar() const; /** * Returns true if the function returns integer values. The * default implementation returns false. A function that returns @@ -58,8 +59,17 @@ */ virtual bool isDiscreteValued(std::vector const &mask) const; /** + * Checks whether the required arguments are discrete-valued. + * Most functions do not require discrete-valued arguments, so + * a default implementation is provided which always returns true. + * + * @param mask Boolean vector indicating which parameters are + * discrete valued. + */ + virtual bool checkParameterDiscrete(std::vector const &mask) const; + /** * Tests whether the function preserves scale transformations, i.e. - * it can be represented in the form f(x) = B %*% x. + * it can be represented element-wise in the form f(x)[i] = B[i] * x[i]. * * It is permitted for the isScale function to return false * negatives, i.e. to return false when the function does preserve @@ -68,16 +78,17 @@ * * @param mask boolean vector of length equal to the number of * parameters. The mask indicates a subset of parameters (those - * with value true) that are themselves scale transformations of x - * (the others are not functions of x). At least one element of + * with value true) that are themselves scale transformations of + * x. The others are not functions of x. At least one element of * mask must be true. * * @param isfixed boolean vector. This may be empty, in which case * it is ignored. A non-empty vector must have length equal to * mask, and denotes the parameters whose values are fixed. In * this case the test is more restrictive, and returns true only - * if the coefficient B is fixed, assuming that the parameters for - * which mask is true are themselves fixed scale transformations. + * if the coefficient B[i] is fixed for all i, assuming that the + * parameters for which mask is true are themselves fixed scale + * transformations. * * @see DeterministicNode#isClosed */ @@ -105,6 +116,14 @@ virtual bool isPower(std::vector const &mask, std::vector const &isfixed) const; /** + * Tests whether the function is additive, i.e. a function of the + * form f(x) = A + sum(x) where sum(x) is the sum of all elements of x. + * + * The default method returns false + */ + virtual bool isAdditive(std::vector const &mask, + std::vector const &isfixed) const; + /** * Returns a BUGS-language expression representing the function call. * The default behaviour for a function named "foo" is to return * "foo(arg1,arg2)". Functions that are represented as prefix or infix @@ -113,6 +132,32 @@ * @param par Vector of parameter names for the function */ virtual std::string deparse(std::vector const &par) const; + /** + * Checks that the required parameters are fixed. Most functions + * do not require any fixed parameters, so the default + * implementation returns true. However, for some ArrayFunctions + * the dimension of the return value depends on the values of some of + * the parameters. These parameters must be fixed so that the + * dimension can be determined at compile time. Hence the default + * function must be overridden for any function with a return + * value whose dimension cannot be determined purely from the + * dimensions of its arguments. + * + * @param mask Boolean vector indicating which parameters have + * fixed values + */ + virtual bool checkParameterFixed(std::vector const &mask) const; }; +/** + * Checks that a vector of parameters of length npar is consistent + * with the function. + */ +inline bool checkNPar(Function const *func, unsigned int npar) +{ + return (func->npar() == 0 && npar > 0) || func->npar() == npar; +} + +} /* namespace jags */ + #endif /* FUNCTION_H_ */ diff -Nru jags-3.4.0/src/include/function/FunctionPtr.h jags-4.0.0/src/include/function/FunctionPtr.h --- jags-3.4.0/src/include/function/FunctionPtr.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/function/FunctionPtr.h 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,8 @@ #include #include +namespace jags { + /** * @short Polymorphic pointer to Function * @@ -36,4 +38,6 @@ friend bool isNULL(FunctionPtr const &p); }; +} /* namespace jags */ + #endif /* FUNCTION_POINTER_H_ */ diff -Nru jags-3.4.0/src/include/function/LinkFunction.h jags-4.0.0/src/include/function/LinkFunction.h --- jags-3.4.0/src/include/function/LinkFunction.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/function/LinkFunction.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,8 @@ #include +namespace jags { + /** * @short Inverse link functions. * @@ -35,4 +37,6 @@ virtual double grad(double eta) const = 0; }; +} /* namespace jags */ + #endif /* LINK_FUNCTION_H_ */ diff -Nru jags-3.4.0/src/include/function/Makefile.am jags-4.0.0/src/include/function/Makefile.am --- jags-3.4.0/src/include/function/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/function/Makefile.am 2015-02-22 08:33:05.000000000 +0000 @@ -2,4 +2,8 @@ funcinclude_HEADERS = FuncTab.h Function.h ScalarFunction.h \ VectorFunction.h ArrayFunction.h LinkFunction.h FunctionPtr.h \ -FuncError.h +FuncError.h DPQFunction.h DFunction.h PFunction.h QFunction.h \ +ScalarLogDensity.h VectorLogDensity.h ArrayLogDensity.h \ +ScalarVectorFunction.h + +noinst_HEADERS = testfun.h diff -Nru jags-3.4.0/src/include/function/Makefile.in jags-4.0.0/src/include/function/Makefile.in --- jags-3.4.0/src/include/function/Makefile.in 2013-08-30 13:23:26.000000000 +0000 +++ jags-4.0.0/src/include/function/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/include/function -DIST_COMMON = $(funcinclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -63,10 +98,24 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(funcinclude_HEADERS) \ + $(noinst_HEADERS) $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -102,12 +151,31 @@ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(funcincludedir)" -HEADERS = $(funcinclude_HEADERS) +HEADERS = $(funcinclude_HEADERS) $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -121,6 +189,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -190,10 +261,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -262,8 +329,11 @@ funcincludedir = $(pkgincludedir)/function funcinclude_HEADERS = FuncTab.h Function.h ScalarFunction.h \ VectorFunction.h ArrayFunction.h LinkFunction.h FunctionPtr.h \ -FuncError.h +FuncError.h DPQFunction.h DFunction.h PFunction.h QFunction.h \ +ScalarLogDensity.h VectorLogDensity.h ArrayLogDensity.h \ +ScalarVectorFunction.h +noinst_HEADERS = testfun.h all: all-am .SUFFIXES: @@ -279,7 +349,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/include/function/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/include/function/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -325,26 +394,15 @@ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(funcincludedir)'; $(am__uninstall_files_from_dir) -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -356,15 +414,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -373,6 +427,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -512,18 +581,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-funcincludeHEADERS install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-funcincludeHEADERS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-funcincludeHEADERS \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-funcincludeHEADERS + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/include/function/PFunction.h jags-4.0.0/src/include/function/PFunction.h --- jags-3.4.0/src/include/function/PFunction.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/function/PFunction.h 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,21 @@ +#ifndef P_FUNCTION_H_ +#define P_FUNCTION_H_ + +#include "DPQFunction.h" + +namespace jags { + + /** + * @short Cumulative distribution function for an R Scalar distribution + */ + class PFunction : public DPQFunction + { + public: + PFunction(RScalarDist const *dist); + bool checkParameterValue(std::vector const &args) const; + double evaluate(std::vector const &args) const; + }; + +} + +#endif /* P_FUNCTION_H_ */ diff -Nru jags-3.4.0/src/include/function/QFunction.h jags-4.0.0/src/include/function/QFunction.h --- jags-3.4.0/src/include/function/QFunction.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/function/QFunction.h 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,21 @@ +#ifndef Q_FUNCTION_H_ +#define Q_FUNCTION_H_ + +#include "DPQFunction.h" + +namespace jags { + + /** + * @short Quantile function for an R Scalar Distribution + */ + class QFunction : public DPQFunction + { + public: + QFunction(RScalarDist const *dist); + bool checkParameterValue(std::vector const &args) const; + double evaluate(std::vector const &args) const; + }; + +} + +#endif /* Q_FUNCTION_H_ */ diff -Nru jags-3.4.0/src/include/function/ScalarFunction.h jags-4.0.0/src/include/function/ScalarFunction.h --- jags-3.4.0/src/include/function/ScalarFunction.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/function/ScalarFunction.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,10 +3,12 @@ #include +namespace jags { + /** * @short Scalar-valued Function with scalar arguments * - * ScalarFunc represents scalar-valued functions whose parameters are + * ScalarFunction represents scalar-valued functions whose parameters are * also scalars. */ class ScalarFunction : public Function @@ -42,4 +44,6 @@ std::vector const &isfixed) const; }; +} /* namespace jags */ + #endif /* SCALAR_FUNCTION_H_ */ diff -Nru jags-3.4.0/src/include/function/ScalarLogDensity.h jags-4.0.0/src/include/function/ScalarLogDensity.h --- jags-3.4.0/src/include/function/ScalarLogDensity.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/function/ScalarLogDensity.h 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,24 @@ +#ifndef SCALAR_LOG_DENSITY_H_ +#define SCALAR_LOG_DENSITY_H_ + +#include + +namespace jags { + + class ScalarDist; + + /** + * @short Log density function for a scalar-valued Distribution + */ + class ScalarLogDensity : public ScalarFunction + { + ScalarDist const *_dist; + public: + ScalarLogDensity(ScalarDist const *dist); + bool checkParameterValue(std::vector const &args) const; + double evaluate(std::vector const &args) const; + }; + +} + +#endif /* SCALAR_LOG_DENSITY_H_ */ diff -Nru jags-3.4.0/src/include/function/ScalarVectorFunction.h jags-4.0.0/src/include/function/ScalarVectorFunction.h --- jags-3.4.0/src/include/function/ScalarVectorFunction.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/function/ScalarVectorFunction.h 2015-09-10 05:42:23.000000000 +0000 @@ -0,0 +1,44 @@ +#ifndef SCALAR_VECTOR_FUNCTION_H_ +#define SCALAR_VECTOR_FUNCTION_H_ + +#include + +namespace jags { + + /** + * @short Scalar-valued function with vector arguments + * + * ScalarVectorFunction represents scalar-valued functions whose + * parameters are vectors. + */ + class ScalarVectorFunction : public VectorFunction + { + public: + ScalarVectorFunction(std::string const &name, unsigned int npar); + /** + * Evaluates the function and returns the scalar result + * @param args Vector of arguments + * @param lengths Vector of argument lengths: the length of the array + * of doubles pointed to by args[i] is lengths[i]. + */ + virtual double + scalarEval (std::vector const &args, + std::vector const &lengths) const = 0; + /** + * Implements VectorFunction#evaluate in terms of + * ScalarVectorFunction#eval. + */ + void evaluate(double *value, + std::vector const &args, + std::vector const &lengths) const; + /** + * Implements VectorFunction#length, returning the value 1 + */ + unsigned int + length(std::vector const &arglengths, + std::vector const &argvalues) const; + }; + +} /* namespace jags */ + +#endif /* SCALAR_VECTOR_FUNCTION_H_ */ diff -Nru jags-3.4.0/src/include/function/testfun.h jags-4.0.0/src/include/function/testfun.h --- jags-3.4.0/src/include/function/testfun.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/function/testfun.h 2015-09-25 18:37:34.000000000 +0000 @@ -0,0 +1,182 @@ +#ifndef FUNC_TEST_H_ +#define FUNC_TEST_H_ + +#include "ScalarFunction.h" +#include "VectorFunction.h" + +/* + Function in JAGS are set up to take vectors of pointers as + arguments, with additional arguments for lengths or dimensions of + the arguments when necessary. This is not a good choice for the + testing framework. + + These are wrappers to the members of Function and its subclasses + that take care of setting up the arguments in the right way. We + use these to simplify the testing framework. + + The most important functions are "eval" and "veval" for functions + returning a scalar and a vector, respectively. + + The eval function can be used to test a ScalarFunction taking from 1 + to 3 arguments. It takes doubles as arguments and returns a double. + + The veval function can be used to test a VectorFunction taking from + 1 to 4 arguments. Through the use of templates, veval accepts as + arguments any of the following: an STL vector of doubles, a double, + or a static array of doubles. + + The eval function is also overlaoded to allow evaluation of a + VectorFunction returning a scalar value. +*/ + +/* Testing functions valid for all functions */ + +//Check all possible values of mask using a predicate (see below) +bool isdiscrete(jags::Function const *f, unsigned int npar, + bool (*predicate) (std::vector const &)); + +//suitable predicates for isdiscrete +bool always(std::vector const &); //returns true +bool never(std::vector const &); //returns false +bool all(std::vector const &); //returns true if all arguments are true +bool any(std::vector const &); //returns true if any argyments are true + +//Returns true if f is never an additive function +bool neveradditive(jags::Function const *f, unsigned int npar); +//Returns true if f is never a scale function +bool neverscale(jags::Function const *f, unsigned int npar); +//Returns true if f is never a linear function +bool neverlinear(jags::Function const *f, unsigned int npar); +//Returns true if f is never a power function +bool neverpow(jags::Function const *f, unsigned int npar); +//Returns true if f is never an additive, linear, scale, or power function +bool neverclosed(jags::Function const *f, unsigned int npar); + +/* Tests for scalar functions */ + +//Check that the limits of a scalar function are valid +void checkLimits(jags::ScalarFunction const *f, double lower, double upper); + +//Evaluate a scalar function taking a single argument. +double eval(jags::ScalarFunction const *f, const double x); + +//Evaluate a scalar function taking two arguments +double eval(jags::ScalarFunction const *f, double x, double y); + +//Evaluate a scalare function taking three arguments +double eval(jags::ScalarFunction const *f, double x, double y, double z); + +/* Tests for vector functions */ + +//Convert a double to a vector of length 1 +inline std::vector mkVec(double const &x) +{ + return std::vector(1, x); +} + +//Convert a static array of length N to a vector of length N +template +std::vector mkVec(double const (&x)[N]) +{ + std::vector y(N); + copy(x, x + N, y.begin()); + return y; +} + +//An apparently trivial conversion function that allows us to mix STL +//vectors with scalars and static arrays as arguments +inline std::vector mkVec(std::vector const &x) +{ + return x; +} + +//Safely evaluate a vector function taking a single argument +std::vector veval(jags::VectorFunction const *f, + std::vector const &x); + +//Templated version that allows you to pass any argument that can be +//coerced to an STL vector via mkVec +template +std::vector veval(jags::VectorFunction const *f, T const &x) +{ + return veval(f, mkVec(x)); +} + +//Safely evaluate a vector function taking two arguments +std::vector veval(jags::VectorFunction const *f, + std::vector const &x, + std::vector const &y); + +//Templated version +template +std::vector veval(jags::VectorFunction const *f, + T const &x, U const &y) +{ + return veval(f, mkVec(x), mkVec(y)); +} + +//Three arguments +std::vector veval(jags::VectorFunction const *f, + std::vector const &x, + std::vector const &y, + std::vector const &z); + +//Three arguments, template +template +std::vector veval(jags::VectorFunction const *f, + T const &x, U const &y, V const &z) +{ + return veval(f, mkVec(x), mkVec(y), mkVec(z)); +} + +//Four arguments +std::vector veval(jags::VectorFunction const *f, + std::vector const &x, + std::vector const &y, + std::vector const &z, + std::vector const &w); + +//Four arguments, template +template +std::vector veval(jags::VectorFunction const *f, T1 const &x1, + T2 const &x2, T3 const &x3, T4 const &x4) +{ + return veval(f, mkVec(x1), mkVec(x2), mkVec(x3), mkVec(x4)); +} + + +/* Vector functions returning a scalar */ + +//Single argument +double eval(jags::VectorFunction const *f, std::vector const &x); + +//Template version +template +double eval(jags::VectorFunction const *f, T const &x) +{ + return eval(f, mkVec(x)); +} + +//Two arguments +double eval(jags::VectorFunction const *f, std::vector const &x, + std::vector const &y); + +//Template version +template +double eval(jags::VectorFunction const *f, T const &x, U const &y) +{ + return eval(f, mkVec(x), mkVec(y)); +} + +//Three arguments +double eval(jags::VectorFunction const *f, std::vector const &x, + std::vector const &y, std::vector const &z); + +//Template version +template +double eval(jags::VectorFunction const *f, T const &x, U const &y, V const &z) +{ + return eval(f, mkVec(x), mkVec(y), mkVec(z)); +} + +#endif /* FUNC_TEST_H_ */ diff -Nru jags-3.4.0/src/include/function/VectorFunction.h jags-4.0.0/src/include/function/VectorFunction.h --- jags-3.4.0/src/include/function/VectorFunction.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/function/VectorFunction.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,10 +3,12 @@ #include +namespace jags { + /** * @short Vector-valued function with vector arguments * - * VectorFunc represents vector-valued functions whose parameters are + * VectorFunction represents vector-valued functions whose parameters are * also vectors. */ class VectorFunction : public Function @@ -26,26 +28,38 @@ std::vector const &args, std::vector const &lengths) const = 0; /** - * Calculates the length of the return value based on the lengths of - * the arguments. The argument must return true when passed to - * checkParameterLength. The default member function assumes that - * the VectorFunction returns a scalar value. + * Calculates the length of the return value based on the arguments. + * + * @param arglengths Vector of argument lengths. This must return + * true when passed to checkParameterLength + * + * @param argvalues Vector of pointers to argument values. + * */ virtual unsigned int - length(std::vector const &arglengths) const; + length(std::vector const &arglengths, + std::vector const &argvalues) const = 0; /** * Checks that the lengths of all the arguments are consistent. - * The default implementation returns true. + * The default implementation returns true if all the arguments + * have non-zero length. + * + * This should be overridden by any sub-class that either has + * additional restrictions on the lengths of the arguments, or may + * allow zero-length arguments. */ virtual bool checkParameterLength(std::vector const &args) const; /** * Checks that the values of the arguments are in the domain of - * the function. The default implementation returns true. + * the function. The default implementation always returns true + * (i.e. assumes there are no restrictions on parameters). */ virtual bool checkParameterValue(std::vector const &args, - std::vector const &lengths) const; + std::vector const &lengths) const; }; +} /* namespace jags */ + #endif /* VECTOR_FUNCTION_H_ */ diff -Nru jags-3.4.0/src/include/function/VectorLogDensity.h jags-4.0.0/src/include/function/VectorLogDensity.h --- jags-3.4.0/src/include/function/VectorLogDensity.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/function/VectorLogDensity.h 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,30 @@ +#ifndef VECTOR_LOG_DENSITY_H_ +#define VECTOR_LOG_DENSITY_H_ + +#include + +namespace jags { + + class VectorDist; + + /** + * @short Log density function for a vector-valued Distribution + */ + class VectorLogDensity : public VectorFunction + { + VectorDist const *_dist; + public: + VectorLogDensity(VectorDist const *dist); + unsigned int length(std::vector const &lengths, + std::vector const &values) const; + bool checkParameterLength(std::vector const &lens) const; + bool checkParameterValue(std::vector const &args, + std::vector const &lens) const; + void evaluate(double *value, + std::vector const &args, + std::vector const &lens) const; + }; + +} + +#endif /* VECTOR_LOG_DENSITY_H_ */ diff -Nru jags-3.4.0/src/include/graph/AggNode.h jags-4.0.0/src/include/graph/AggNode.h --- jags-3.4.0/src/include/graph/AggNode.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/graph/AggNode.h 2015-07-02 20:00:06.000000000 +0000 @@ -2,6 +2,9 @@ #define AGGREGATE_NODE_H_ #include +#include + +namespace jags { /** * @short Aggregate Node combining values from other nodes @@ -22,11 +25,13 @@ /** * The value vector of an AggNode satisfies the equality. *
-     * value(chain)[i] == parents[i]->value(chain)[parents[i]]
+     * value(chain)[i] == parents[i]->value(chain)[offsets[i]]
      * 
* * @param dim Dimension of the Node. * + * @param nchain Number of chains + * * @param parents Vector of parent Nodes. This vector should have * the same size as the value array of the AggNode to be * constructed (or a length_error exception is thrown). Each @@ -44,6 +49,7 @@ * @exception length_error out_of_range */ AggNode(std::vector const &dim, + unsigned int nchain, std::vector const &parents, std::vector const &offsets); ~AggNode(); @@ -73,8 +79,9 @@ * Returns the vector of offsets */ std::vector const &offsets() const; - DeterministicNode *clone(std::vector const &parents) const; + //DeterministicNode *clone(std::vector const &parents) const; }; +} /* namespace jags */ #endif /* AGGREGATE_NODE_H */ diff -Nru jags-3.4.0/src/include/graph/ArrayLogicalNode.h jags-4.0.0/src/include/graph/ArrayLogicalNode.h --- jags-3.4.0/src/include/graph/ArrayLogicalNode.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/graph/ArrayLogicalNode.h 2015-04-19 13:39:28.000000000 +0000 @@ -4,6 +4,8 @@ #include #include +namespace jags { + class ArrayFunction; /** @@ -17,7 +19,7 @@ * A logical node is defined by a function (which may be an inline * operator in the BUGS language) and its parameters. */ - ArrayLogicalNode(ArrayFunction const *func, + ArrayLogicalNode(ArrayFunction const *func, unsigned int nchain, std::vector const ¶meters); /** * Calculates the value of the node based on the parameters. @@ -27,7 +29,9 @@ * @see ArrayFunction#checkParameterValue. */ bool checkParentValues(unsigned int chain) const; - DeterministicNode *clone(std::vector const &parents) const; + //DeterministicNode *clone(std::vector const &parents) const; }; +} /* namespace jags */ + #endif /* ARRAY_LOGICAL_NODE_H_ */ diff -Nru jags-3.4.0/src/include/graph/ArrayStochasticNode.h jags-4.0.0/src/include/graph/ArrayStochasticNode.h --- jags-3.4.0/src/include/graph/ArrayStochasticNode.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/graph/ArrayStochasticNode.h 2015-04-21 19:35:59.000000000 +0000 @@ -3,6 +3,8 @@ #include +namespace jags { + class ArrayDist; /** @@ -15,23 +17,27 @@ unsigned int chain) const; public: /** - * Constructs a new StochasticNode given an array-valued + * Construct * distribution and an array of parent nodes, considered as * parameters to the distribution. */ - ArrayStochasticNode(ArrayDist const *dist, + ArrayStochasticNode(ArrayDist const *dist, unsigned int nchain, std::vector const ¶meters, - Node const *lower, Node const *upper); + Node const *lower, Node const *upper, + double const *data=0, unsigned int length=0); double logDensity(unsigned int chain, PDFType type) const; void randomSample(RNG *rng, unsigned int chain); void truncatedSample(RNG *rng, unsigned int chain, double const *lower, double const *upper); void deterministicSample(unsigned int chain); bool checkParentValues(unsigned int chain) const; - StochasticNode *clone(std::vector const &parents, - Node const *lower, Node const *upper) const; + //StochasticNode *clone(std::vector const &parents, + //Node const *lower, Node const *upper) const; unsigned int df() const; + double KL(unsigned int chain1, unsigned int chain2, RNG *rng, unsigned int nrep) const; }; +} /* namespace jags */ + #endif /* ARRAY_STOCHASTIC_NODE_H_ */ diff -Nru jags-3.4.0/src/include/graph/ConstantNode.h jags-4.0.0/src/include/graph/ConstantNode.h --- jags-3.4.0/src/include/graph/ConstantNode.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/graph/ConstantNode.h 2015-06-14 21:14:55.000000000 +0000 @@ -3,40 +3,46 @@ #include +namespace jags { + /** - * @short Top-level Node representing data + * @short Top-level Node with constant value * - * Constant nodes are the top-level nodes in any directed acyclic graph. + * Constant nodes are the top-level nodes in any directed acyclic + * graph (i.e. they have no parents). They have a fixed value that is + * defined when they are constructed and which is shared across all + * chains. * - * In the BUGS language. Constant nodes appear only on the right hand - * side of a relation. They are considered to represent observed - * random variables. + * JAGS distinguishes between two classes of ConstantNode. Those + * defined explicitly as constants in the BUGS language description of + * the model are constructed with the parameter observed=false, and + * are not considered random variables. Constant nodes that are + * implicitly defined (i.e. they only appear on the left hand side of + * any relation and their values are determined by the user-supplied + * data) are constructed with the parameter observed=true and are + * considered to represent observed randmo variables. */ class ConstantNode : public Node { + const bool _observed; public: /** - * Constructs a scalar constant node and sets its value. The value is - * fixed and is shared between all chains. + * Constructs a scalar constant node and sets its value. The value + * is fixed and is shared between all chains. */ - ConstantNode(double value, unsigned int nchain); + ConstantNode(double value, unsigned int nchain, bool observed); /** * Constructs a multi-dimensional constant node */ ConstantNode(std::vector const &dim, std::vector const &value, - unsigned int nchain); - ~ConstantNode(); - /** - * A ConstantNode is always observed - */ - bool isObserved() const; + unsigned int nchain, bool observed); /** * Indicates whether a ConstantNode is discrete-valued */ bool isDiscreteValued() const; /** - * This function does nothing. It exists only so that objects of - * class ConstantNode can be instantiated. + * This function does nothing. It exists only so that objects + * inheriting from ConstantNode can be instantiated. */ void deterministicSample(unsigned int); /** @@ -53,12 +59,19 @@ */ std::string deparse(std::vector const &parents) const; /** - * Constant nodes are observed random variables. This function - * returns true. + * A constant node is always fixed. */ - bool isRandomVariable() const; + bool isFixed() const; + /** + * The RVStatus of a ConstantNode is determined by the parameter + * "observed" passed to the constructor. + */ + RVStatus randomVariableStatus() const; + void unlinkParents(); }; +} /* namespace jags */ + #endif /* CONSTANT_NODE_H_ */ diff -Nru jags-3.4.0/src/include/graph/DeterministicNode.h jags-4.0.0/src/include/graph/DeterministicNode.h --- jags-3.4.0/src/include/graph/DeterministicNode.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/graph/DeterministicNode.h 2015-06-23 21:09:19.000000000 +0000 @@ -3,6 +3,10 @@ #include +#include + +namespace jags { + /** * @short Closed classes of deterministic nodes * @@ -12,6 +16,10 @@ * g(f()). This property is used by some Samplers to determine whether * a node, or block of nodes, can be sampled. * + * DNODE_ADDITIVE denotes a function f of the single ancestor nodes X + * such that sum(f(X)) = a + sum(X), where sum() denotes the sum of + * all the elements of the given node. + * * DNODE_LINEAR denotes a linear function of the ancestor nodes X = * (X1, ... XN). A linear function takes the form A + B %*% X1 + B2 * %*% X2 + ... * + BN %*% * XN. @@ -34,18 +42,20 @@ * * @see DeterministicNode#isClosed */ -enum ClosedFuncClass {DNODE_LINEAR, DNODE_SCALE, DNODE_SCALE_MIX, DNODE_POWER}; +enum ClosedFuncClass {DNODE_ADDITIVE, DNODE_LINEAR, DNODE_SCALE, + DNODE_SCALE_MIX, DNODE_POWER}; /** - * @short Base class for deterministic Node objects + * @short Base class for deterministic Nodes * * The value of a deterministic node is determined exactly by the * values of its parents. */ class DeterministicNode : public Node { - bool _observed; + bool _fixed; public: DeterministicNode(std::vector const &dim, + unsigned int nchain, std::vector const &parents); ~DeterministicNode(); /** @@ -55,14 +65,13 @@ */ void randomSample(RNG*, unsigned int nchain); /** - * Deterministic nodes are not random variables. This function - * always returns false. + * Deterministic nodes are not random variables. */ - bool isRandomVariable() const; + RVStatus randomVariableStatus() const; /** - * A deterministic node is observed if all its parents are + * A deterministic node is fixed if all its parents are fixed. */ - bool isObserved() const; + bool isFixed() const; /** * Tests whether the node belongs to a closed class when * considered as a function of a given ancestor node X, or nodes @@ -89,14 +98,18 @@ */ virtual bool isClosed(std::set const &ancestors, ClosedFuncClass fc, bool fixed) const = 0; - /** + /* * Creates a copy of the deterministic node. Supplying the parents * of this node as the argument creates an identical copy. * * @param parents Parents of the cloned node. - */ + * virtual DeterministicNode * clone(std::vector const &parents) const = 0; + */ + void unlinkParents(); }; +} /* namespace jags */ + #endif /* DETERMINISTIC_NODE_H_ */ diff -Nru jags-3.4.0/src/include/graph/Graph.h jags-4.0.0/src/include/graph/Graph.h --- jags-3.4.0/src/include/graph/Graph.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/graph/Graph.h 2015-02-22 08:33:05.000000000 +0000 @@ -4,6 +4,8 @@ #include #include +namespace jags { + class Node; /** @@ -13,67 +15,21 @@ * * @short Container class for nodes */ -class Graph { - std::set _nodes; - +class Graph : public std::set { /* forbid copying */ Graph(Graph const &orig); Graph &operator=(Graph const &rhs); public: /** - * Constructs an empty graph. + * Creates an empty graph */ Graph(); /** - * Adds node to graph. - */ - void add(Node *node); - /** - * Removes node from graph. - */ - void remove(Node *node); - /** * Checks to see whether the node is contained in the Graph. */ bool contains(Node const *node) const; - /** - * Removes all nodes from the graph - */ - void clear(); - /** - * The number of nodes in the graph. - */ - unsigned int size() const; - /** - * Checks if the parents and children of every node in the - * graph are also contained in the graph. - */ - bool isClosed() const; - /** - * The set of nodes contained in the graph - */ - std::set const &nodes() const; - /** - * Adds all nodes in the graph to the given vector - */ - void getNodes(std::vector &nodes) const; - /** - * Adds all nodes in the graph to the given vector with partial - * ordering, so that if A is an ancestor of B, then B never appears - * before A in the vector (Note that if there is a path from A to B - * outside of the graph, then this is ignored). - * - * The graph must be acyclic. - * - * @param sorted Empty vector of Node pointers. On exit - * this vector will contain the sorted nodes. - */ - void getSortedNodes(std::vector &sorted) const; - /** - * Static version of the getSortedNodes function which works with - * a set instead of a graph. - */ - static void getSortedNodes(std::set &nodes, std::vector &sorted); }; +} /* namespace jags */ + #endif /* GRAPH_H_ */ diff -Nru jags-3.4.0/src/include/graph/GraphMarks.h jags-4.0.0/src/include/graph/GraphMarks.h --- jags-3.4.0/src/include/graph/GraphMarks.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/graph/GraphMarks.h 2015-02-22 08:33:05.000000000 +0000 @@ -5,6 +5,8 @@ #include #include +namespace jags { + class Node; class Graph; @@ -25,12 +27,8 @@ */ class GraphMarks { Graph const &_graph; - int _default_mark; std::map _marks; - - void do_mark_ancestors(Node const *, int, std::set &); - void do_mark_descendants(Node *, int, std::set &); -public: + public: /** * Constructor. Each node in the graph initially has mark zero */ @@ -64,27 +62,13 @@ */ void markParents(Node const *node, bool (*test)(Node const*), int m); /** - * Marks the children of node that are in the graph. - */ - //void markChildren(Node *node, int m); - /** - * Marks the children of a node in the sub-graph obtained by - * marginalizing over all nodes for which the function test - * returns false. - */ - //void markChildren(Node *node, bool (*test)(Node const*), int m); - /** * Marks the ancestors of the node in the graph, i.e. every node N * for which there is a directed path from N to node within the * graph. */ void markAncestors(std::vector const &nodes, int m); - /** - * Marks the descendants of the node in the graph, i.e. every node - * N for which there is a directed path from the given node to N - * within the graph. - */ - //void markDescendants(Node *node, int m); }; +} /* namespace jags */ + #endif /* GRAPH_MARKS_H_ */ diff -Nru jags-3.4.0/src/include/graph/LinkNode.h jags-4.0.0/src/include/graph/LinkNode.h --- jags-3.4.0/src/include/graph/LinkNode.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/graph/LinkNode.h 2015-04-19 14:01:46.000000000 +0000 @@ -4,6 +4,8 @@ #include #include +namespace jags { + class LinkFunction; /** @@ -16,7 +18,7 @@ * A link node is defined by an inverse link function and a single * parent node, which must be scalar */ - LinkNode(LinkFunction const *func, + LinkNode(LinkFunction const *func, unsigned int nchain, std::vector const &parents); /** * Calculates the value of the node based on the parameters. @@ -40,7 +42,9 @@ * Returns the name of the link function */ std::string const &linkName() const; - DeterministicNode *clone(std::vector const &parents) const; + //DeterministicNode *clone(std::vector const &parents) const; }; +} /* namespace jags */ + #endif /* LINK_NODE_H_ */ diff -Nru jags-3.4.0/src/include/graph/LogicalNode.h jags-4.0.0/src/include/graph/LogicalNode.h --- jags-3.4.0/src/include/graph/LogicalNode.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/graph/LogicalNode.h 2015-04-19 13:22:21.000000000 +0000 @@ -4,6 +4,8 @@ #include #include +namespace jags { + class Function; /** @@ -23,7 +25,8 @@ * A logical node is defined by a function (which may be an inline * operator in the BUGS language) and its parameters. */ - LogicalNode(std::vector const &dim, + LogicalNode(std::vector const &dim, + unsigned int nchain, std::vector const ¶meters, Function const *func); /** @@ -42,4 +45,6 @@ std::string deparse(std::vector const &) const; }; +} /* namespace jags */ + #endif /* LOGICAL_NODE_H_ */ diff -Nru jags-3.4.0/src/include/graph/Makefile.am jags-4.0.0/src/include/graph/Makefile.am --- jags-3.4.0/src/include/graph/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/graph/Makefile.am 2015-02-22 08:33:05.000000000 +0000 @@ -1,7 +1,8 @@ graphincludedir = $(pkgincludedir)/graph -graphinclude_HEADERS = AggNode.h MixtureNode.h Node.h ConstantNode.h \ -LogicalNode.h StochasticNode.h Graph.h DeterministicNode.h \ -GraphMarks.h NodeError.h ScalarLogicalNode.h VectorLogicalNode.h \ -ArrayLogicalNode.h LinkNode.h VSLogicalNode.h ScalarStochasticNode.h \ -VectorStochasticNode.h ArrayStochasticNode.h \ No newline at end of file +graphinclude_HEADERS = AggNode.h MixtureNode.h MixTab.h Node.h \ +ConstantNode.h LogicalNode.h StochasticNode.h Graph.h \ +DeterministicNode.h GraphMarks.h NodeError.h ScalarLogicalNode.h \ +VectorLogicalNode.h ArrayLogicalNode.h LinkNode.h VSLogicalNode.h \ +ScalarStochasticNode.h VectorStochasticNode.h ArrayStochasticNode.h \ +ParentError.h diff -Nru jags-3.4.0/src/include/graph/Makefile.in jags-4.0.0/src/include/graph/Makefile.in --- jags-3.4.0/src/include/graph/Makefile.in 2013-08-30 13:23:26.000000000 +0000 +++ jags-4.0.0/src/include/graph/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/include/graph -DIST_COMMON = $(graphinclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -63,10 +98,24 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(graphinclude_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -103,11 +152,30 @@ } am__installdirs = "$(DESTDIR)$(graphincludedir)" HEADERS = $(graphinclude_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -121,6 +189,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -190,10 +261,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -260,11 +327,12 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ graphincludedir = $(pkgincludedir)/graph -graphinclude_HEADERS = AggNode.h MixtureNode.h Node.h ConstantNode.h \ -LogicalNode.h StochasticNode.h Graph.h DeterministicNode.h \ -GraphMarks.h NodeError.h ScalarLogicalNode.h VectorLogicalNode.h \ -ArrayLogicalNode.h LinkNode.h VSLogicalNode.h ScalarStochasticNode.h \ -VectorStochasticNode.h ArrayStochasticNode.h +graphinclude_HEADERS = AggNode.h MixtureNode.h MixTab.h Node.h \ +ConstantNode.h LogicalNode.h StochasticNode.h Graph.h \ +DeterministicNode.h GraphMarks.h NodeError.h ScalarLogicalNode.h \ +VectorLogicalNode.h ArrayLogicalNode.h LinkNode.h VSLogicalNode.h \ +ScalarStochasticNode.h VectorStochasticNode.h ArrayStochasticNode.h \ +ParentError.h all: all-am @@ -281,7 +349,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/include/graph/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/include/graph/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -327,26 +394,15 @@ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(graphincludedir)'; $(am__uninstall_files_from_dir) -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -358,15 +414,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -375,6 +427,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -514,18 +581,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-graphincludeHEADERS install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-graphincludeHEADERS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-graphincludeHEADERS \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-graphincludeHEADERS + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/include/graph/MixTab.h jags-4.0.0/src/include/graph/MixTab.h --- jags-3.4.0/src/include/graph/MixTab.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/graph/MixTab.h 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,43 @@ +#ifndef MIX_MAP_H_ +#define MIX_MAP_H_ + +#include + +#include +#include + +namespace jags { + + class Node; + + /** + * @short Helper class for MixtureNode + * + * Evaluation of a MixtureNode uses a MixTab, which takes the + * current map value (a vector of integers) and returns a + * pointer to the parent node from which the MixtureNode takes its + * current value. + */ + class MixTab { + const SimpleRange _range; + std::vector _nodes; + public: + /** + * Constructs a MixTab from a MixMap + */ + MixTab(std::map, Node const *> const &mixmap); + /** + * Returns a pointer to the node corresponding to the given + * index. If there is no node matching the index, a NULL + * pointer is returned. + */ + Node const * getNode(std::vector const &index) const; + /** + * Returns the range covered by the indices + */ + Range const &range() const; + }; + +} /* namespace jags */ + +#endif /* MIX_MAP_H_ */ diff -Nru jags-3.4.0/src/include/graph/MixtureNode.h jags-4.0.0/src/include/graph/MixtureNode.h --- jags-3.4.0/src/include/graph/MixtureNode.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/graph/MixtureNode.h 2015-04-19 13:16:21.000000000 +0000 @@ -5,14 +5,17 @@ #include #include -class Node; +namespace jags { + + class Node; + class MixTab; + + /** + * A MixMap is an STL map that associates an index value (a vector + * of unsigned integers) with a node. + */ + typedef std::map, Node const *> MixMap; -/** - * A MixMap is an STL map object. The key represents an integer-valued - * index, and the value is the corresponding Node from which a - * MixtureNode will copy its values when its indices take that value. - */ -typedef std::map , Node const *> MixMap; /** * @short Node for mixture models. @@ -30,9 +33,11 @@ * x[1], ... x[M]. */ class MixtureNode : public DeterministicNode { - MixMap const &_map; + MixTab const *_table; unsigned int _Nindex; bool _discrete; + std::vector _active_parents; + void updateActive(unsigned int chain); public: /** * Constructs a MixtureNode. @@ -40,27 +45,32 @@ * @param index Vector of index nodes. These must be discrete-valued, * scalar, and unobserved. * - * @param mixmap STL map object which associates a possible value - * of the index nodes with a single parent. Each possible index - * value, denoted by a vector of integers, must have the correct - * size (matching the size of the index parameter), and the - * corresponding parents must all have the same dimension. + * @param nchain Number of chains + * + * @param map a MixMap object which associates each possible value + * of the index nodes with a single parent. */ MixtureNode(std::vector const &index, - std::map, Node const *> const &mixmap); + unsigned int nchain, MixMap const &mixmap); ~MixtureNode(); /** - * Calculates the value of the mixture node by looking up the - * parent node corresponding to the current value of the index - * nodes (in the map supplied to the constructor). The mixture node - * copies its value from that parent. + * Copies the value of the active parent */ void deterministicSample(unsigned int chain); /** + * Returns a pointer to the currently active parent (i.e. the one + * determined by the current index values) in the given chain. + */ + Node const *activeParent(unsigned int chain) const; + /** * Returns the number of index nodes. */ unsigned int index_size() const; /** + * Returns a pointer to the MixTab + */ + MixTab const *mixTab() const; + /** * A MixtureNode is discrete valued if all of its possible * parents are discrete */ @@ -91,11 +101,13 @@ * of its BUGS-language definition. */ std::string deparse(std::vector const &parents) const; - DeterministicNode *clone(std::vector const &parents) const; + //DeterministicNode *clone(std::vector const &parents) const; }; bool isMixture(Node const *); MixtureNode const * asMixture(Node const *); +} /* namespace jags */ + #endif /* MIXTURE_NODE_H_ */ diff -Nru jags-3.4.0/src/include/graph/NodeError.h jags-4.0.0/src/include/graph/NodeError.h --- jags-3.4.0/src/include/graph/NodeError.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/graph/NodeError.h 2015-09-12 10:12:46.000000000 +0000 @@ -2,16 +2,23 @@ #define NODE_ERROR_H_ #include +#include -class Node; +namespace jags { -/** - * @short Exception class for Nodes - */ -class NodeError : public std::runtime_error { -public: - Node const * node; - NodeError(Node const *enode, std::string const &msg); -}; + class Node; + class SymTab; + + /** + * @short Exception class for Nodes + */ + class NodeError : public std::runtime_error { + Node const * _node; + public: + NodeError(Node const *node, std::string const &msg); + void printMessage(std::ostream &out, SymTab const &symtab) const; + }; + +} /* namespace jags */ #endif /* NODE_ERROR_H_ */ diff -Nru jags-3.4.0/src/include/graph/Node.h jags-4.0.0/src/include/graph/Node.h --- jags-3.4.0/src/include/graph/Node.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/graph/Node.h 2015-06-14 18:51:03.000000000 +0000 @@ -1,22 +1,36 @@ #ifndef NODE_H_ #define NODE_H_ -#include +#include #include #include -class RNG; +namespace jags { + +struct RNG; class StochasticNode; class DeterministicNode; class Graph; /** + * @short Random variable status of nodes + * + * This enumeration is used by Node#randomVariableStatus to classify + * nodes into one of three categories. + * + * Some nodes are considered as random variables, and among those that + * are, they may be observed or unobserved. Conversely, a node that is + * not a random variable may not be observed. + */ +enum RVStatus {RV_FALSE, RV_TRUE_UNOBSERVED, RV_TRUE_OBSERVED}; + +/** * @short Node in a directed acyclic graph */ class Node { std::vector _parents; - std::set *_stoch_children; - std::set *_dtrm_children; + std::list *_stoch_children; + std::list *_dtrm_children; /* Forbid copying of Node objects */ Node(Node const &orig); @@ -24,7 +38,7 @@ protected: std::vector const &_dim; - unsigned int _length; + const unsigned int _length; const unsigned int _nchain; double *_data; @@ -45,7 +59,7 @@ * @param parents vector of parent nodes. A node may not be its own * parent. */ - Node(std::vector const &dim, + Node(std::vector const &dim, unsigned int nchain, std::vector const &parents); /** * Destructor. @@ -77,11 +91,11 @@ /** * Returns the stochastic children of the node */ - std::set const *stochasticChildren(); + std::list const *stochasticChildren(); /** * Returns the deterministic children of the node */ - std::set const *deterministicChildren(); + std::list const *deterministicChildren(); /** * Initializes the node for the given chain. The value array of a * newly constructed Node consists of missing values (denoted by @@ -103,15 +117,16 @@ * * @param parents Vector of names of parent nodes */ - virtual std::string deparse(std::vector const &parents) const = 0; + virtual std::string + deparse(std::vector const &parents) const = 0; /** - * Returns true if the node represents a random variable. + * Returns the random variable status of a node. */ - virtual bool isRandomVariable() const = 0; + virtual RVStatus randomVariableStatus() const = 0; /** - * Indicates whether the node is observed. + * Indicates whether the value of the node is fixed. */ - virtual bool isObserved() const = 0; + virtual bool isFixed() const = 0; /** * Sets the value of the node for a given chain * @param value Array of values to be assigned @@ -143,10 +158,12 @@ * Swaps the values in the given chains */ void swapValue(unsigned int chain1, unsigned int chain2); + void addChild(StochasticNode *node) const; void removeChild(StochasticNode *node) const; void addChild(DeterministicNode *node) const; void removeChild(DeterministicNode *node) const; + virtual void unlinkParents() = 0; }; /** @@ -155,4 +172,6 @@ */ unsigned int countChains(std::vector const ¶meters); +} /* namespace jags */ + #endif /* NODE_H_ */ diff -Nru jags-3.4.0/src/include/graph/ParentError.h jags-4.0.0/src/include/graph/ParentError.h --- jags-3.4.0/src/include/graph/ParentError.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/graph/ParentError.h 2015-09-12 10:12:36.000000000 +0000 @@ -0,0 +1,25 @@ +#ifndef PARENT_ERROR_H_ +#define PARENT_ERROR_H_ + +#include +#include + +namespace jags { + + class Node; + class SymTab; + + /** + * @short Exception class for invalid parent values + */ + class ParentError : public std::runtime_error { + Node const * _node; + unsigned int _chain; + public: + ParentError(Node const *node, unsigned int chain); + void printMessage(std::ostream &out, SymTab const &symtab) const; + }; + +} /* namespace jags */ + +#endif /* PARENT_ERROR_H_ */ diff -Nru jags-3.4.0/src/include/graph/ScalarLogicalNode.h jags-4.0.0/src/include/graph/ScalarLogicalNode.h --- jags-3.4.0/src/include/graph/ScalarLogicalNode.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/graph/ScalarLogicalNode.h 2015-04-19 13:45:19.000000000 +0000 @@ -4,6 +4,8 @@ #include #include +namespace jags { + class ScalarFunction; /** @@ -20,7 +22,7 @@ * may be an inline operator in the BUGS language) and its * parameters. */ - ScalarLogicalNode(ScalarFunction const *func, + ScalarLogicalNode(ScalarFunction const *func, unsigned int nchain, std::vector const ¶meters); /** * Calculates the value of the node based on the parameters. @@ -30,7 +32,9 @@ * @see ScalarFunction#checkParameterValue. */ bool checkParentValues(unsigned int chain) const; - DeterministicNode *clone(std::vector const &parents) const; + //DeterministicNode *clone(std::vector const &parents) const; }; +} /* namespace jags */ + #endif /* SCALAR_LOGICAL_NODE_H_ */ diff -Nru jags-3.4.0/src/include/graph/ScalarStochasticNode.h jags-4.0.0/src/include/graph/ScalarStochasticNode.h --- jags-3.4.0/src/include/graph/ScalarStochasticNode.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/graph/ScalarStochasticNode.h 2015-04-21 19:33:45.000000000 +0000 @@ -3,6 +3,8 @@ #include +namespace jags { + class ScalarDist; /** @@ -14,13 +16,9 @@ unsigned int chain) const; public: /** - * Constructs a new StochasticNode given a distribution, a vector - * of parent nodes, considered as parameters to the distribution, - * and, optionally, upper and lower bounds. If bounds are given - * then the distribution of the constructed StochasticNode is - * truncated at the value of the bounds. + * Constructs a new ScalarStochasticNode */ - ScalarStochasticNode(ScalarDist const *dist, + ScalarStochasticNode(ScalarDist const *dist, unsigned int nchain, std::vector const ¶meters, Node const *lower, Node const *upper); double logDensity(unsigned int chain, PDFType type) const; @@ -29,10 +27,14 @@ double const *lower, double const *upper); void deterministicSample(unsigned int chain); bool checkParentValues(unsigned int chain) const; - StochasticNode *clone(std::vector const &parents, - Node const *lower, Node const *upper) const; + //StochasticNode *clone(std::vector const &parents, + //Node const *lower, Node const *upper) const; unsigned int df() const; + double KL(unsigned int ch1, unsigned int ch2, RNG *rng, + unsigned int nrep) const; }; +} /* namespace jags */ + #endif /* SCALAR_STOCHASTIC_NODE_H_ */ diff -Nru jags-3.4.0/src/include/graph/StochasticNode.h jags-4.0.0/src/include/graph/StochasticNode.h --- jags-3.4.0/src/include/graph/StochasticNode.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/graph/StochasticNode.h 2015-06-14 21:14:46.000000000 +0000 @@ -4,7 +4,9 @@ #include #include -class RNG; +namespace jags { + +struct RNG; /** * @short Node defined by the BUGS-language operator ~ @@ -21,9 +23,11 @@ * last two parameters, defined by the T(,) construct, are optional. If * they are supplied, then the distribution of the node is truncated * to lie in the range (L, U). Not all distributions can be truncated. + * Distributions that are only bounded on one side may be specified by + * T(L,) or T(,U). * - * JAGS allows you to define stochastic nodes that are, in fact, - * not random at all, but are deterministic functions of their parameters. + * JAGS allows you to define stochastic nodes that are, in fact, not + * random at all, but are deterministic functions of their parameters. * A common example is the dinterval distribution * *
group[i] ~ dinterval(true[i], cutpoints[1:N])
@@ -40,23 +44,29 @@ */ class StochasticNode : public Node { Distribution const * const _dist; - Node const *_lower; - Node const *_upper; + Node const * const _lower; + Node const * const _upper; bool _observed; - bool _discrete; + const bool _discrete; virtual void sp(double *lower, double *upper, unsigned int length, unsigned int chain) const = 0; protected: std::vector > _parameters; public: /** - * Constructs a new StochasticNode given a distribution, a vector - * of parent nodes, considered as parameteres to the distribution, - * and, optionally, upper and lower bounds. If bounds are given - * then the distribution of the constructed StochasticNode is - * truncated at the value of the bounds. + * Constructs a new StochasticNode + * + * @param dim Dimensions of the node + * @param nchain Number of chains + * @param dist Pointer to the distribution + * @param parameters Vector of parameters + * @param lower Pointer to node defining the lower bound. A NULL + * pointer denotes no lower bound. + * @param upper Pointer to node defining the lower bound. A NULL + * pointer denotes no upper bound. */ StochasticNode(std::vector const &dim, + unsigned int nchain, Distribution const *dist, std::vector const ¶meters, Node const *lower, Node const *upper); @@ -133,27 +143,47 @@ double const *upperLimit(unsigned int chain) const; std::string deparse(std::vector const ¶meters) const; bool isDiscreteValued() const; - bool isObserved() const; - void setObserved(); + /** + * A stochastic node is fixed if the setData member function + * has been called. + */ + bool isFixed() const; + /** + * Sets the value of the node to be the same in all chains. + * After setData is called, the stochastic node is considered + * observed. + * + * @param data Pointer to an array of data values. + * + * @param length Length of the array containing the data values. + * + * @see Node#setValue + */ + void setData(double const *value, unsigned int length); + /** + * A stochastic node is always a random variable, and is observed + * if its value has been set with setData. + */ + RVStatus randomVariableStatus() const; Node const *lowerBound() const; Node const *upperBound() const; - /** + /* * Creates a copy of the stochastic node. Supplying the parents * of this node as the argument creates an identical copy. * * @param parents Parents of the cloned node. - */ + StochasticNode * clone(std::vector const &parents) const; virtual StochasticNode * clone(std::vector const ¶meters, Node const *lower, Node const *upper) const = 0; + */ virtual unsigned int df() const = 0; - //Required for KL in dic - std::vector const ¶meters(unsigned int chain) const; + virtual double KL(unsigned int chain1, unsigned int chain2, RNG *rng, + unsigned int nrep) const = 0; + void unlinkParents(); }; - - /** * Returns true if the upper and lower limits of the support of * the stochastic node are fixed. Upper and lower bounds are taken @@ -167,6 +197,12 @@ */ bool isBounded(StochasticNode const *node); +/** + * For stochastic nodes, this is a synonym of isFixed + */ +inline bool isObserved(StochasticNode const *s) { return s->isFixed(); } + +} /* namespace jags */ #endif /* STOCHASTIC_NODE_H_ */ diff -Nru jags-3.4.0/src/include/graph/VectorLogicalNode.h jags-4.0.0/src/include/graph/VectorLogicalNode.h --- jags-3.4.0/src/include/graph/VectorLogicalNode.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/graph/VectorLogicalNode.h 2015-04-19 14:02:43.000000000 +0000 @@ -5,6 +5,8 @@ #include +namespace jags { + class VectorFunction; /** @@ -22,7 +24,7 @@ * A logical node is defined by a function (which may be an inline * operator in the BUGS language) and its parameters. */ - VectorLogicalNode(VectorFunction const *func, + VectorLogicalNode(VectorFunction const *func, unsigned int nchain, std::vector const ¶meters); /** * Calculates the value of the node based on the parameters. @@ -32,7 +34,9 @@ * @see VectorFunction#checkParameterValue. */ bool checkParentValues(unsigned int chain) const; - DeterministicNode *clone(std::vector const &parents) const; + //DeterministicNode *clone(std::vector const &parents) const; }; +} /* namespace jags */ + #endif /* VECTOR_LOGICAL_NODE_H_ */ diff -Nru jags-3.4.0/src/include/graph/VectorStochasticNode.h jags-4.0.0/src/include/graph/VectorStochasticNode.h --- jags-3.4.0/src/include/graph/VectorStochasticNode.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/graph/VectorStochasticNode.h 2015-04-21 19:35:40.000000000 +0000 @@ -3,6 +3,8 @@ #include +namespace jags { + class VectorDist; /** @@ -19,7 +21,7 @@ * a vector of parent nodes, considered as parameters to the * distribution. */ - VectorStochasticNode(VectorDist const *dist, + VectorStochasticNode(VectorDist const *dist, unsigned int nchain, std::vector const ¶meters, Node const *lower, Node const *upper); double logDensity(unsigned int chain, PDFType type) const; @@ -28,10 +30,14 @@ double const *lower, double const *upper); void deterministicSample(unsigned int chain); bool checkParentValues(unsigned int chain) const; - StochasticNode *clone(std::vector const &parents, - Node const *lower, Node const *upper) const; + //StochasticNode *clone(std::vector const &parents, + //Node const *lower, Node const *upper) const; unsigned int df() const; + double KL(unsigned int chain1, unsigned int chain2, RNG *rng, + unsigned int nrep) const; }; +} /* namespace jags */ + #endif /* VECTOR_STOCHASTIC_NODE_H_ */ diff -Nru jags-3.4.0/src/include/graph/VSLogicalNode.h jags-4.0.0/src/include/graph/VSLogicalNode.h --- jags-3.4.0/src/include/graph/VSLogicalNode.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/graph/VSLogicalNode.h 2015-04-19 14:21:13.000000000 +0000 @@ -4,6 +4,8 @@ #include #include +namespace jags { + class ScalarFunction; /** @@ -21,7 +23,7 @@ * may be an inline operator in the BUGS language) and its * parameters. */ - VSLogicalNode(ScalarFunction const *func, + VSLogicalNode(ScalarFunction const *func, unsigned int nchain, std::vector const ¶meters); /** * Calculates the value of the node based on the parameters. @@ -31,7 +33,9 @@ * @see ScalarFunction#checkParameterValue. */ bool checkParentValues(unsigned int chain) const; - DeterministicNode *clone(std::vector const &parents) const; + //DeterministicNode *clone(std::vector const &parents) const; }; +} /* namespace jags */ + #endif /* V_SCALAR_LOGICAL_NODE_H_ */ diff -Nru jags-3.4.0/src/include/JRmath.h jags-4.0.0/src/include/JRmath.h --- jags-3.4.0/src/include/JRmath.h 2013-08-22 15:44:58.000000000 +0000 +++ jags-4.0.0/src/include/JRmath.h 2015-02-24 21:33:36.000000000 +0000 @@ -2,7 +2,7 @@ /* -*- C -*- * Mathlib : A C Library of Special Functions - * Copyright (C) 1998-2003 The R Development Core Team + * Copyright (C) 1998-2013 The R Core Team * Copyright (C) 2004 The R Foundation * * This program is free software; you can redistribute it and/or modify @@ -16,8 +16,8 @@ * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ * * Rmath.h should contain ALL headers from R's C code in `src/nmath' @@ -26,58 +26,34 @@ ``#include '' and nothing else. + + It is part of the API and supports 'standalone Rmath'. + */ #ifndef RMATH_H #define RMATH_H -#ifdef __cplusplus -extern "C" { -#endif - -/*-- Mathlib as part of R -- define this for standalone : */ -/* #undef MATHLIB_STANDALONE */ - -#define R_VERSION_STRING "2.3.0" - -#ifndef HAVE_LOG1P -# define HAVE_LOG1P 1 -#endif - -#ifndef HAVE_EXPM1 -# define HAVE_EXPM1 1 -#endif - -#ifndef HAVE_WORKING_LOG1P -# define HAVE_WORKING_LOG1P 1 -#endif - -#ifndef HAVE_WORKING_LOG -# define HAVE_WORKING_LOG 1 -#endif - -#include -#include -#include -#include - -#if defined(HAVE_LOG1P) && !defined(HAVE_WORKING_LOG1P) -/* remap to avoid problems with getting the right entry point */ -double Rlog1p(double); -#define log1p Rlog1p +/* Note that on some systems we need to include math.h before the + defines below. */ +#ifndef NO_C_HEADERS +# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 +# include #endif -#include +#define R_VERSION_STRING "3.1.1" /* Undo SGI Madness */ -#ifdef ftrunc -# undef ftrunc -#endif -#ifdef qexp -# undef qexp -#endif -#ifdef qgamma -# undef qgamma +#ifdef __sgi +# ifdef ftrunc +# undef ftrunc +# endif +# ifdef qexp +# undef qexp +# endif +# ifdef qgamma +# undef qgamma +# endif #endif @@ -172,33 +148,42 @@ #endif +#ifndef M_LN_2PI +#define M_LN_2PI 1.837877066409345483560659472811 /* log(2*pi) */ +#endif + #ifndef M_LN_SQRT_PI -#define M_LN_SQRT_PI 0.572364942924700087071713675677 /* log(sqrt(pi)) */ +#define M_LN_SQRT_PI 0.572364942924700087071713675677 /* log(sqrt(pi)) + == log(pi)/2 */ #endif #ifndef M_LN_SQRT_2PI -#define M_LN_SQRT_2PI 0.918938533204672741780329736406 /* log(sqrt(2*pi)) */ +#define M_LN_SQRT_2PI 0.918938533204672741780329736406 /* log(sqrt(2*pi)) + == log(2*pi)/2 */ #endif #ifndef M_LN_SQRT_PId2 -#define M_LN_SQRT_PId2 0.225791352644727432363097614947 /* log(sqrt(pi/2)) */ +#define M_LN_SQRT_PId2 0.225791352644727432363097614947 /* log(sqrt(pi/2)) + == log(pi/2)/2 */ #endif -#ifdef MATHLIB_STANDALONE +# ifndef R_EXT_BOOLEAN_H_ +/* "copy-paste" R_ext/Boolean.h if not already included: */ + #define R_EXT_BOOLEAN_H_ #undef FALSE #undef TRUE typedef enum { FALSE = 0, TRUE } Rboolean; -#else -# include -#endif - +# endif -#ifndef MATHLIB_STANDALONE #define bessel_i jags_bessel_i #define bessel_j jags_bessel_j #define bessel_k jags_bessel_k #define bessel_y jags_bessel_y +#define bessel_i_ex jags_bessel_i_ex +#define bessel_j_ex jags_bessel_j_ex +#define bessel_k_ex jags_bessel_k_ex +#define bessel_y_ex jags_bessel_y_ex #define beta jags_beta #define choose jags_choose #define dbeta jags_dbeta @@ -215,6 +200,7 @@ #define dlogis jags_dlogis #define dnbeta jags_dnbeta #define dnbinom jags_dnbinom +#define dnbinom_mu jags_dnbinom_mu #define dnchisq jags_dnchisq #define dnf jags_dnf #define dnorm4 jags_dnorm4 @@ -259,6 +245,7 @@ #define plogis jags_plogis #define pnbeta jags_pnbeta #define pnbinom jags_pnbinom +#define pnbinom_mu jags_pnbinom_mu #define pnchisq jags_pnchisq #define pnf jags_pnf #define pnorm5 jags_pnorm5 @@ -287,6 +274,7 @@ #define qlogis jags_qlogis #define qnbeta jags_qnbeta #define qnbinom jags_qnbinom +#define qnbinom_mu jags_qnbinom_mu #define qnchisq jags_qnchisq #define qnf jags_qnf #define qnorm5 jags_qnorm5 @@ -325,44 +313,37 @@ #define sign jags_sign #define tetragamma jags_tetragamma #define trigamma jags_trigamma -#endif -#define rround fround -#define prec fprec -#undef trunc -#define trunc ftrunc - - -/* log(1 - exp(x)) in stable form: */ -#define R_Log1_Exp(x) ((x) > -M_LN2 ? log(-expm1(x)) : log1p(-exp(x))) - - /* R's versions with !R_FINITE checks */ +#define dnorm dnorm4 +#define pnorm pnorm5 +#define qnorm qnorm5 -#if defined(MATHLIB_STANDALONE) && defined(HAVE_WORKING_LOG) -#define R_log log +#ifdef __cplusplus +namespace jags { + struct RNG; +} +typedef jags::RNG JRNG; +extern "C" { #else -double R_log(double x); +typedef struct JRNG JRNG; #endif -double R_pow(double x, double y); -double R_pow_di(double, int); + /* R's versions with !R_FINITE checks */ + +double JR_pow(double x, double y); +double JR_pow_di(double, int); /* Random Number Generators */ -typedef struct RNG RNG; -double norm_rand(RNG*); -double unif_rand(RNG*); -double exp_rand(RNG*); +double norm_rand(JRNG*); +double unif_rand(JRNG*); +double exp_rand(JRNG*); /* Normal Distribution */ -#define pnorm pnorm5 -#define qnorm qnorm5 -#define dnorm dnorm4 - double dnorm(double, double, double, int); double pnorm(double, double, double, int, int); double qnorm(double, double, double, int, int); -double rnorm(double, double, RNG*); +double rnorm(double, double, JRNG*); void pnorm_both(double, double *, double *, int, int);/* both tails */ /* Uniform Distribution */ @@ -370,16 +351,17 @@ double dunif(double, double, double, int); double punif(double, double, double, int, int); double qunif(double, double, double, int, int); -double runif(double, double, RNG*); +double runif(double, double, JRNG*); /* Gamma Distribution */ double dgamma(double, double, double, int); double pgamma(double, double, double, int, int); double qgamma(double, double, double, int, int); -double rgamma(double, double, RNG*); +double rgamma(double, double, JRNG*); double log1pmx(double); +double log1pexp(double); // <-- ../nmath/plogis.c double lgamma1p(double); double logspace_add(double, double); double logspace_sub(double, double); @@ -389,119 +371,125 @@ double dbeta(double, double, double, int); double pbeta(double, double, double, int, int); double qbeta(double, double, double, int, int); -double rbeta(double, double, RNG*); +double rbeta(double, double, JRNG*); /* Lognormal Distribution */ double dlnorm(double, double, double, int); double plnorm(double, double, double, int, int); double qlnorm(double, double, double, int, int); -double rlnorm(double, double, RNG*); +double rlnorm(double, double, JRNG*); /* Chi-squared Distribution */ double dchisq(double, double, int); double pchisq(double, double, int, int); double qchisq(double, double, int, int); -double rchisq(double, RNG*); +double rchisq(double, JRNG*); /* Non-central Chi-squared Distribution */ double dnchisq(double, double, double, int); double pnchisq(double, double, double, int, int); double qnchisq(double, double, double, int, int); -double rnchisq(double, double, RNG*); +double rnchisq(double, double, JRNG*); /* F Distibution */ double dF(double, double, double, int); double pF(double, double, double, int, int); double qF(double, double, double, int, int); -double rF(double, double, RNG*); +double rF(double, double, JRNG*); /* Student t Distibution */ double dt(double, double, int); double pt(double, double, int, int); double qt(double, double, int, int); -double rt(double, RNG*); +double rt(double, JRNG*); /* Binomial Distribution */ double dbinom(double, double, double, int); double pbinom(double, double, double, int, int); double qbinom(double, double, double, int, int); -double rbinom(double, double, RNG*); +double rbinom(double, double, JRNG*); /* Multnomial Distribution */ -void rmultinom(int, double*, int, int*, RNG*); +void rmultinom(int, double*, int, int*, JRNG*); /* Cauchy Distribution */ double dcauchy(double, double, double, int); double pcauchy(double, double, double, int, int); double qcauchy(double, double, double, int, int); -double rcauchy(double, double, RNG*); +double rcauchy(double, double, JRNG*); /* Exponential Distribution */ double dexp(double, double, int); double pexp(double, double, int, int); double qexp(double, double, int, int); -double rexp(double, RNG*); +double rexp(double, JRNG*); /* Geometric Distribution */ double dgeom(double, double, int); double pgeom(double, double, int, int); double qgeom(double, double, int, int); -double rgeom(double, RNG*); +double rgeom(double, JRNG*); /* Hypergeometric Distibution */ double dhyper(double, double, double, double, int); double phyper(double, double, double, double, int, int); double qhyper(double, double, double, double, int, int); -double rhyper(double, double, double, RNG*); +double rhyper(double, double, double, JRNG*); /* Negative Binomial Distribution */ double dnbinom(double, double, double, int); double pnbinom(double, double, double, int, int); double qnbinom(double, double, double, int, int); -double rnbinom(double, double, RNG*); +double rnbinom(double, double, JRNG*); + +double dnbinom_mu(double, double, double, int); +double pnbinom_mu(double, double, double, int, int); +double qnbinom_mu(double, double, double, int, int); +double rnbinom_mu(double, double, JRNG*); /* Poisson Distribution */ double dpois(double, double, int); double ppois(double, double, int, int); double qpois(double, double, int, int); -double rpois(double, RNG*); +double rpois(double, JRNG*); /* Weibull Distribution */ double dweibull(double, double, double, int); double pweibull(double, double, double, int, int); double qweibull(double, double, double, int, int); -double rweibull(double, double, RNG*); +double rweibull(double, double, JRNG*); /* Logistic Distribution */ double dlogis(double, double, double, int); double plogis(double, double, double, int, int); double qlogis(double, double, double, int, int); -double rlogis(double, double, RNG*); +double rlogis(double, double, JRNG*); /* Non-central Beta Distribution */ double dnbeta(double, double, double, double, int); double pnbeta(double, double, double, double, int, int); double qnbeta(double, double, double, double, int, int); -double rnbeta(double, double, double, RNG*); +double rnbeta(double, double, double, JRNG*); /* Non-central F Distribution */ +double dnf(double, double, double, double, int); double pnf(double, double, double, double, int, int); double qnf(double, double, double, double, int, int); @@ -521,20 +509,19 @@ double dwilcox(double, double, double, int); double pwilcox(double, double, double, int, int); double qwilcox(double, double, double, int, int); -double rwilcox(double, double, RNG*); +double rwilcox(double, double, JRNG*); /* Wilcoxon Signed Rank Distribution */ double dsignrank(double, double, int); double psignrank(double, double, int, int); double qsignrank(double, double, int, int); -double rsignrank(double, RNG*); +double rsignrank(double, JRNG*); /* Gamma and Related Functions */ double gammafn(double); double lgammafn(double); -double lgammafn_sign(double, int*); - +double lgammafn_sign(double, int*); void dpsifn(double, int, int, int, double*, int*, int*); double psigamma(double, double); double digamma(double); @@ -554,17 +541,15 @@ double bessel_j(double, double); double bessel_k(double, double, double); double bessel_y(double, double); +double bessel_i_ex(double, double, double, double *); +double bessel_j_ex(double, double, double *); +double bessel_k_ex(double, double, double, double *); +double bessel_y_ex(double, double, double *); /* General Support Functions */ -double pythag(double, double); -#ifndef HAVE_EXPM1 -double expm1(double); /* = exp(x)-1 {care for small x} */ -#endif -#ifndef HAVE_LOG1P -double log1p(double); /* = log(1+x) {care for small x} */ -#endif +//double pythag(double, double); int imax2(int, int); int imin2(int, int); double fmax2(double, double); @@ -578,6 +563,18 @@ double log1pmx(double); /* Accurate log(1+x) - x, {care for small x} */ double lgamma1p(double);/* accurate log(gamma(x+1)), small x (0 < x < 0.5) */ +/* More accurate cos(pi*x), sin(pi*x), tan(pi*x) + + In future these declarations could clash with system headers if + someone had already included math.h with + __STDC_WANT_IEC_60559_TYPES_EXT__ defined. + We can add a check for that via the value of + __STDC_IEC_60559_FUNCS__ (>= 201ymmL, exact value not yet known). +*/ +double cospi(double); +double sinpi(double); +double tanpi(double); + /* Compute the log of a sum or difference from logs of terms, i.e., * * log (exp (logx) + exp (logy)) @@ -589,58 +586,45 @@ double logspace_sub(double logx, double logy); - - /* ----------------- Private part of the header file ------------------- */ /* old-R Compatibility */ -#define snorm norm_rand -#define sunif unif_rand -#define sexp exp_rand - -#ifdef MATHLIB_PRIVATE -#define d1mach jags_d1mach -#define i1mach jags_i1mach -#define gamma_cody jags_gamma_cody - -double gamma_cody(double); /* used in arithmetic.c */ - -#endif /* MATHLIB_PRIVATE */ - -double jags_d1mach(int); /* used in port.c in package stats */ -int jags_i1mach(int); /* used in port.c in package stats */ - -#ifdef MATHLIB_STANDALONE -#ifndef MATHLIB_PRIVATE_H +#ifdef OLD_RMATH_COMPAT +# define snorm norm_rand +# define sunif unif_rand +# define sexp exp_rand +#endif +#if !defined(MATHLIB_PRIVATE_H) /* defined by nmath.h */ /* If isnan is a macro, as C99 specifies, the C++ math header will undefine it. This happens on OS X */ -#ifdef __cplusplus - int R_isnancpp(double); /* in mlutils.c */ -# define ISNAN(x) R_isnancpp(x) -#else +# ifdef __cplusplus + int JR_isnancpp(double); /* in mlutils.c */ +# define ISNAN(x) JR_isnancpp(x) +# else # define ISNAN(x) (isnan(x)!=0) -#endif +# endif +# define R_FINITE(x) JR_finite(x) +int JR_finite(double); -/* We don't have config information available to do anything else */ -#define R_FINITE(x) R_finite(x) -int R_finite(double); - -#ifdef WIN32 /* not Win32 as no config information */ -# define NA_REAL (*_imp__NA_REAL) -# define R_NegInf (*_imp__R_NegInf) -# define R_PosInf (*_imp__R_PosInf) -# define N01_kind (*_imp__N01_kind) +# ifdef _WIN32 /* not Win32 as no config information */ +# ifdef RMATH_DLL +# define R_EXTERN extern __declspec(dllimport) +# else +# define R_EXTERN extern +# endif +R_EXTERN double NA_REAL; +R_EXTERN double R_PosInf; +R_EXTERN double R_NegInf; +R_EXTERN int N01_kind; +# undef R_EXTERN +#else +extern int N01_kind; # endif -#endif /* not MATHLIB_PRIVATE_H */ -#endif /* MATHLIB_STANDALONE */ - -#ifndef R_EXT_PRINT_H_ -void REprintf(char const*, ...); -#endif +#endif /* MATHLIB_PRIVATE_H */ #ifdef __cplusplus } diff -Nru jags-3.4.0/src/include/Makefile.am jags-4.0.0/src/include/Makefile.am --- jags-3.4.0/src/include/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/Makefile.am 2015-02-22 08:33:05.000000000 +0000 @@ -1,4 +1,6 @@ -pkginclude_HEADERS = Console.h Module.h JRmath.h version.h +pkginclude_HEADERS = Console.h JRmath.h version.h SUBDIRS = compiler distribution function graph model sampler sarray \ rng util module + +noinst_HEADERS = testlib.h diff -Nru jags-3.4.0/src/include/Makefile.in jags-4.0.0/src/include/Makefile.in --- jags-3.4.0/src/include/Makefile.in 2013-08-30 13:23:26.000000000 +0000 +++ jags-4.0.0/src/include/Makefile.in 2015-09-27 12:02:16.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/include -DIST_COMMON = $(pkginclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -63,19 +98,34 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(pkginclude_HEADERS) $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -109,15 +159,36 @@ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(pkgincludedir)" -HEADERS = $(pkginclude_HEADERS) +HEADERS = $(noinst_HEADERS) $(pkginclude_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ @@ -146,6 +217,7 @@ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -159,6 +231,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -228,10 +303,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -297,10 +368,11 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -pkginclude_HEADERS = Console.h Module.h JRmath.h version.h +pkginclude_HEADERS = Console.h JRmath.h version.h SUBDIRS = compiler distribution function graph model sampler sarray \ rng util module +noinst_HEADERS = testlib.h all: all-recursive .SUFFIXES: @@ -316,7 +388,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/include/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/include/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -363,22 +434,25 @@ dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -393,57 +467,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -459,12 +488,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -476,15 +500,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -493,6 +513,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -656,23 +691,23 @@ uninstall-am: uninstall-pkgincludeHEADERS -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-pkgincludeHEADERS install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am tags tags-recursive uninstall uninstall-am \ - uninstall-pkgincludeHEADERS +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pkgincludeHEADERS \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-pkgincludeHEADERS + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/include/model/BUGSModel.h jags-4.0.0/src/include/model/BUGSModel.h --- jags-3.4.0/src/include/model/BUGSModel.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/model/BUGSModel.h 2015-04-12 19:48:24.000000000 +0000 @@ -10,6 +10,8 @@ #include #include +namespace jags { + /** * @short Model with symbol table * @@ -30,25 +32,6 @@ */ SymTab &symtab(); /** - * Returns a node given a variable name and a range of indices. The - * name is used to look up a NodeArray in the symbol table, and - * a subset of the Nodearray corresponding to the given index range - * is taken. - * - * If the requested Node cannot be returned, a NULL pointer is - * returned. - * - * @param name String giving the BUGS-language name of a variable - * - * @param range Range representing the lower and upper limits of the - * subset. A NULL range corresponds to the whole range of the - * NodeArray. - * - * @param message If the requested Node does not exist, an - * informative error message is copied to this string. - */ - Node *getNode(std::string const &name, Range const &range); - /** * Writes out selected monitors in CODA format. * * @param nodes Vector of nodes to write out. Each node is @@ -151,4 +134,6 @@ }; +} /* namespace jags */ + #endif /* BUGS_MODEL_H_ */ diff -Nru jags-3.4.0/src/include/model/Makefile.am jags-4.0.0/src/include/model/Makefile.am --- jags-3.4.0/src/include/model/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/model/Makefile.am 2015-04-11 15:19:19.000000000 +0000 @@ -1,4 +1,5 @@ modelincludedir = $(pkgincludedir)/model modelinclude_HEADERS = SymTab.h NodeArray.h Model.h Monitor.h \ -BUGSModel.h MonitorFactory.h MonitorControl.h MonitorInfo.h +BUGSModel.h MonitorFactory.h MonitorControl.h MonitorInfo.h \ +NodeArraySubset.h diff -Nru jags-3.4.0/src/include/model/Makefile.in jags-4.0.0/src/include/model/Makefile.in --- jags-3.4.0/src/include/model/Makefile.in 2013-08-30 13:23:26.000000000 +0000 +++ jags-4.0.0/src/include/model/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/include/model -DIST_COMMON = $(modelinclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -63,10 +98,24 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(modelinclude_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -103,11 +152,30 @@ } am__installdirs = "$(DESTDIR)$(modelincludedir)" HEADERS = $(modelinclude_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -121,6 +189,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -190,10 +261,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -261,7 +328,8 @@ top_srcdir = @top_srcdir@ modelincludedir = $(pkgincludedir)/model modelinclude_HEADERS = SymTab.h NodeArray.h Model.h Monitor.h \ -BUGSModel.h MonitorFactory.h MonitorControl.h MonitorInfo.h +BUGSModel.h MonitorFactory.h MonitorControl.h MonitorInfo.h \ +NodeArraySubset.h all: all-am @@ -278,7 +346,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/include/model/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/include/model/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -324,26 +391,15 @@ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(modelincludedir)'; $(am__uninstall_files_from_dir) -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -355,15 +411,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -372,6 +424,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -511,18 +578,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-modelincludeHEADERS \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-modelincludeHEADERS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man \ + install-modelincludeHEADERS install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-modelincludeHEADERS + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/include/model/Model.h jags-4.0.0/src/include/model/Model.h --- jags-3.4.0/src/include/model/Model.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/model/Model.h 2015-04-12 19:51:35.000000000 +0000 @@ -1,18 +1,20 @@ #ifndef MODEL_H_ #define MODEL_H_ -#include #include #include #include #include +namespace jags { + class Sampler; class SamplerFactory; -class RNG; +struct RNG; class RNGFactory; class MonitorFactory; +class Node; class StochasticNode; class DeterministicNode; class ConstantNode; @@ -30,11 +32,10 @@ unsigned int _nchain; std::vector _rng; unsigned int _iteration; - Graph _graph; - std::set _extra_nodes; + std::vector _nodes; + std::vector _extra_nodes; std::vector _sampled_extra; std::list _monitors; - std::list _default_monitors; std::vector _stochastic_nodes; bool _is_initialized; bool _adapt; @@ -50,11 +51,6 @@ Model(unsigned int nchain); virtual ~Model(); /** - * Returns the Graph associated with the model. This graph contains - * all the nodes in the model - */ - Graph const &graph(); - /** * Initializes the model. Initialization takes place in three steps. * * Firstly, random number generators are assigned to any chain that @@ -125,22 +121,10 @@ */ void addNode(ConstantNode *node); /** - * After the model is initialized, extra uninformative nodes may be - * added to the graph. The model takes responsibility for updating - * the extra node. - * - * The extra node cannot be observed, it must not already be in the - * model graph, it may not have any children, and all of its parents - * must be in the graph. - */ - void addExtraNode(Node *node); - /** * Access the list of sampler factories, which is common to all * models. This is used during initialization to choose samplers. * Each sampler factory is paired with a boolean flag which is used * to determine whether the factory is active or not - * - * @seealso Model#chooseSamplers */ static std::list > &samplerFactories(); /** @@ -200,6 +184,12 @@ * Returns a vector of all stochastic nodes in the model */ std::vector const &stochasticNodes() const; + /** + * Returns a vector of all nodes in the model + */ + std::vector const &nodes() const; }; +} /* namespace jags */ + #endif /* MODEL_H_ */ diff -Nru jags-3.4.0/src/include/model/MonitorControl.h jags-4.0.0/src/include/model/MonitorControl.h --- jags-3.4.0/src/include/model/MonitorControl.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/model/MonitorControl.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,8 @@ #include +namespace jags { + class Monitor; /** @@ -61,4 +63,6 @@ bool operator==(MonitorControl const &rhs) const; }; +} /* namespace jags */ + #endif /* MONITOR_CONTROL_H_ */ diff -Nru jags-3.4.0/src/include/model/MonitorFactory.h jags-4.0.0/src/include/model/MonitorFactory.h --- jags-3.4.0/src/include/model/MonitorFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/model/MonitorFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -4,6 +4,8 @@ #include #include +namespace jags { + class Monitor; class Node; class BUGSModel; @@ -47,4 +49,6 @@ virtual std::string name() const = 0; }; +} /* namespace jags */ + #endif /* MONITOR_FACTORY_H_ */ diff -Nru jags-3.4.0/src/include/model/Monitor.h jags-4.0.0/src/include/model/Monitor.h --- jags-3.4.0/src/include/model/Monitor.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/model/Monitor.h 2015-04-12 10:21:39.000000000 +0000 @@ -6,6 +6,8 @@ #include #include +namespace jags { + class Node; /** @@ -24,19 +26,23 @@ Monitor(std::string const &type, Node const *node); virtual ~Monitor(); /** - * Updates the monitor. If the iteration number coincides with - * the thinning interval, then the doUpdate function is called. + * Updates the monitor. + * + * Updating should be an ammortized constant time operation. + * Failure to guarantee this may cause long MCMC runs to slow down + * dramatically. This is particularly important if the monitor + * needs to allocate new memory for stored samples. */ virtual void update() = 0; /** - * Returns the vector of nodes from which the monitors value is + * Returns the vector of nodes from which the monitor's value is * derived. */ std::vector const &nodes() const; /** - * The type of monitor. Each subclass must define have a unique - * type, which is common to all Monitors of that class. The type - * is used by the user-interface to identify the subclass of Monitor. + * The type of monitor. Each subclass must have a unique type, + * which is common to all Monitors of that class. The type is used + * by the user-interface to identify the subclass of Monitor. */ std::string const &type() const; /** @@ -56,14 +62,6 @@ * The vector of monitored values for the given chain */ virtual std::vector const &value(unsigned int chain) const = 0; - /** - * Reserves memory for future updates. Sufficient memory is - * reserved for storage of future samples to avoid re-allocation - * of memory for the next niter iterations. - * - * @param niter number of future iterations to reserve. - */ - virtual void reserve(unsigned int niter) = 0; /** * Dumps the monitored values to an SArray. * @@ -97,4 +95,6 @@ void setElementNames(std::vector const &names); }; -#endif +} /* namespace jags */ + +#endif // MONITOR_H_ diff -Nru jags-3.4.0/src/include/model/MonitorInfo.h jags-4.0.0/src/include/model/MonitorInfo.h --- jags-3.4.0/src/include/model/MonitorInfo.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/model/MonitorInfo.h 2015-02-22 08:33:05.000000000 +0000 @@ -4,6 +4,8 @@ #include #include +namespace jags { + class Monitor; /** @@ -29,4 +31,6 @@ bool operator==(MonitorInfo const &rhs) const; }; +} + #endif /* MONITOR_INFO_H_ */ diff -Nru jags-3.4.0/src/include/model/NodeArray.h jags-4.0.0/src/include/model/NodeArray.h --- jags-3.4.0/src/include/model/NodeArray.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/model/NodeArray.h 2015-04-11 15:49:47.000000000 +0000 @@ -2,72 +2,67 @@ #define NODE_ARRAY_H_ #include -#include +#include #include #include +namespace jags { + class SArray; class Model; +class AggNode; /** * @short Multi-dimensional array that can be tiled with Node objects * - * A NodeArray is a container class for nodes with a dimension - * attribute. The array can be tiled with nodes using the insert - * function. Inserted nodes can be retrieved using the find - * function. Arbitrary subsets of the NodeArray can be returned with - * the getSubSet function. + * A NodeArray is a container class for nodes. A NodeArray may + * represent a scalar, vector, matrix or multi-dimensional container + * that can be tiled with Nodes using the insert member function. + * Subsets of the NodeArray can be retrieved with the getSubset + * function. */ class NodeArray { + friend class NodeArraySubset; std::string _name; - Range _range; + SimpleRange _range; Graph _member_graph; unsigned int _nchain; - Node **_node_pointers; - unsigned int *_offsets; - std::map _generated_nodes; + std::vector _node_pointers; + std::vector _offsets; + std::map _mv_nodes; + std::map _generated_nodes; /* Forbid copying */ NodeArray(NodeArray const &orig); NodeArray &operator=(NodeArray const &rhs); - bool findActiveIndices(std::vector &ind, unsigned int k, - std::vector const &lower, std::vector const &dim) const; public: /** * Constructor. Creates a NodeArray with the given name and dimension */ NodeArray(std::string const &name, std::vector const &dim, unsigned int nchain); - ~NodeArray(); /** * Inserts a node into the subset of the NodeArray defined by range. * The dimension of the node must conform with the given range. * The given range must not overlap any previously inserted node. + * Repeated indices in the given range are not allowed. * * The node is added to an internal graph. * * @exception runtime_error */ void insert(Node *node, Range const &range); + /** - * Determines whether the given range is empty of inserted nodes, - * and hence whether it can be used as an argument to insert - */ - bool isEmpty(Range const &range) const; - /** - * Returns a node corresponding to the given range. The range must - * have been used in a previous call to insert, otherwise a NULL - * pointer is returned. - */ - Node* find(Range const &range) const; - /** - * Returns an arbitrary subset of the NodeArray. If the range - * corresponds to a previously inserted node, this will be - * returned. Otherwise, an aggregate node will be created, and it - * will be added to the given model. If the range is not completely - * covered by inserted nodes, a NULL pointer will be returned. + * Returns a subset of the NodeArray. If the range corresponds to a + * previously inserted node, this will be returned. Otherwise, an + * aggregate node will be generated, and it will be added to the + * given model. Generated nodes are cached so a future call to + * getSubset will return the same node. If the range is not + * completely covered by inserted nodes, a NULL pointer will be + * returned. */ Node* getSubset(Range const &range, Model &model); /** @@ -111,7 +106,7 @@ /** * Returns the range of indices covered by the NodeArray */ - Range const &range() const; + SimpleRange const &range() const; /** * Returns the range corresponding to the given node, if it * belongs to the graph associated with the NodeArray. If it is @@ -124,5 +119,6 @@ unsigned int nchain() const; }; +} /* namespace jags */ #endif /* NODE_ARRAY_H */ diff -Nru jags-3.4.0/src/include/model/NodeArraySubset.h jags-4.0.0/src/include/model/NodeArraySubset.h --- jags-3.4.0/src/include/model/NodeArraySubset.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/model/NodeArraySubset.h 2015-04-12 14:29:12.000000000 +0000 @@ -0,0 +1,57 @@ +#ifndef NODE_ARRAY_SUBSET_H_ +#define NODE_ARRAY_SUBSET_H_ + +#include + +#include + +namespace jags { + + class Node; + class NodeArray; + class Range; + + /** + * @short Subset of a NodeArray + * + */ + class NodeArraySubset { + std::vector _dim; + unsigned int _nchain; + std::vector _node_pointers; + std::vector _offsets; + public: + /** + * Constructor. Creates a NodeArraySubset from a NodeArray + * and a given range + */ + NodeArraySubset(NodeArray const *array, Range const &range); + /** + * Returns the values of the nodes in the range covered by the + * NodeArraySubset in column major order. + * + * @param chain Index number of chain to read. + */ + std::vector value(unsigned int chain) const; + /** + * Returns the dimension of the subset + */ + std::vector const &dim() const; + /** + * Returns a vector containing the nodes that contribute + * values to the NodeArraySubset. Repeated values are removed.XS + */ + std::vector nodes() const; + /** + * Returns the number of chains + */ + unsigned int nchain() const; + /** + * Returns the number of values in the subset + */ + unsigned int length() const; + }; + +} /* namespace jags */ + +#endif /* NODE_ARRAY_SUBSET_H */ diff -Nru jags-3.4.0/src/include/model/SymTab.h jags-4.0.0/src/include/model/SymTab.h --- jags-3.4.0/src/include/model/SymTab.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/model/SymTab.h 2015-02-22 08:33:05.000000000 +0000 @@ -8,6 +8,8 @@ #include #include +namespace jags { + /** * @short Associates a NodeArray object with a BUGS-language name * @@ -24,7 +26,9 @@ public: /** * Constructs an empty symbol table + * * @param model Model to which newly allocated nodes are added. + * */ SymTab(Model *model); ~SymTab(); @@ -47,8 +51,8 @@ */ void insertNode(Node *node, std::string const &name, Range const &range); /** - * Creates constant nodes in all the NodeArrays in symbol table - * with values from the given data table. + * Creates constant nodes in all the arrays of the symbol table + * taking values from the given data table. * * @param data_table Data table from which values will be read. * @@ -56,7 +60,7 @@ */ void writeData(std::map const &data_table); /** - * Write values from the data table to the NodeArrays in the symbol + * Write values from the data table to the arrays in the symbol * table with the same name. Unlike the writeData function, the * Nodes are not permanently set to the supplied values, and values * are only written to the given chain. @@ -101,10 +105,8 @@ * If the node name is not found, an empty string is returned */ std::string getName(Node const *node) const; - /** - * Returns the number of chains that the symbol table can hold - */ - unsigned int nchain() const; }; +} /* namespace jags */ + #endif /* SYMTAB_H_ */ diff -Nru jags-3.4.0/src/include/module/Makefile.am jags-4.0.0/src/include/module/Makefile.am --- jags-3.4.0/src/include/module/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/module/Makefile.am 2015-02-22 08:33:05.000000000 +0000 @@ -1,4 +1,4 @@ moduleincludedir = $(pkgincludedir)/module -moduleinclude_HEADERS = ModuleError.h +moduleinclude_HEADERS = Module.h ModuleError.h diff -Nru jags-3.4.0/src/include/module/Makefile.in jags-4.0.0/src/include/module/Makefile.in --- jags-3.4.0/src/include/module/Makefile.in 2013-08-30 13:23:26.000000000 +0000 +++ jags-4.0.0/src/include/module/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/include/module -DIST_COMMON = $(moduleinclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -63,10 +98,24 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(moduleinclude_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -103,11 +152,30 @@ } am__installdirs = "$(DESTDIR)$(moduleincludedir)" HEADERS = $(moduleinclude_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -121,6 +189,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -190,10 +261,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -260,7 +327,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ moduleincludedir = $(pkgincludedir)/module -moduleinclude_HEADERS = ModuleError.h +moduleinclude_HEADERS = Module.h ModuleError.h all: all-am .SUFFIXES: @@ -276,7 +343,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/include/module/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/include/module/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -322,26 +388,15 @@ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(moduleincludedir)'; $(am__uninstall_files_from_dir) -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -353,15 +408,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -370,6 +421,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -509,18 +575,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-moduleincludeHEADERS \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-moduleincludeHEADERS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man \ + install-moduleincludeHEADERS install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-moduleincludeHEADERS + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/include/module/ModuleError.h jags-4.0.0/src/include/module/ModuleError.h --- jags-3.4.0/src/include/module/ModuleError.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/module/ModuleError.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,8 @@ #include +namespace jags { + class Node; class Distribution; class Function; @@ -13,4 +15,6 @@ void throwDistError(Distribution const *dist, std::string const &message); void throwFuncError(Function const *func, std::string const &message); +} /* namespace jags */ + #endif /* MODULE_ERROR_H_ */ diff -Nru jags-3.4.0/src/include/module/Module.h jags-4.0.0/src/include/module/Module.h --- jags-3.4.0/src/include/module/Module.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/module/Module.h 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,98 @@ +#ifndef _MODULE_H_ +#define _MODULE_H_ + +#include +#include +#include +#include + +#include +#include + +namespace jags { + +class SamplerFactory; +class RNGFactory; +class MonitorFactory; +class LinkFunctiontion; +class ScalarFunction; +class VectorFunction; +class ArrayFunction; +class ScalarDist; +class RScalarDist; +class VectorDist; +class ArrayDist; + +/** + * @short Memory management for dynamically loadable modules + * + * Dynamically loadable modules may extend the capabilities of the JAGS library + * by defining new subclasses of Function, Distribution, SamplerFactory, + * and RNGFactory. + * + * Each module must instantiate a subclass of Module. The constructor for + * this subcluass must dynamically allocate instances of the sub-classes + * defined by the module, and store them with the appropriate insert + * member function. + */ +class Module { + std::string _name; + bool _loaded; + std::vector _fp_list; + std::vector _functions; + std::vector > _obs_functions; + std::vector _dp_list; + std::vector _distributions; + std::vector _sampler_factories; + std::vector _rng_factories; + std::vector _monitor_factories; +public: + Module(std::string const &name); + virtual ~Module(); + + void insert(ScalarFunction*); + void insert(LinkFunction*); + void insert(VectorFunction*); + void insert(ArrayFunction*); + void insert(Distribution*); + + void insert(RScalarDist*); + void insert(ScalarDist*); + void insert(VectorDist*); + void insert(ArrayDist*); + + void insert(ScalarDist*, ScalarFunction*); + void insert(ScalarDist*, LinkFunction*); + void insert(ScalarDist*, VectorFunction*); + void insert(ScalarDist*, ArrayFunction*); + + void insert(VectorDist*, ScalarFunction*); + void insert(VectorDist*, LinkFunction*); + void insert(VectorDist*, VectorFunction*); + void insert(VectorDist*, ArrayFunction*); + + void insert(ArrayDist*, ScalarFunction*); + void insert(ArrayDist*, LinkFunction*); + void insert(ArrayDist*, VectorFunction*); + void insert(ArrayDist*, ArrayFunction*); + + void insert(SamplerFactory*); + void insert(RNGFactory*); + void insert(MonitorFactory*); + + std::vector const &functions() const; + std::vector const &distributions() const; + std::vector const &samplerFactories() const; + std::vector const &rngFactories() const; + std::vector const &monitorFactories() const; + + void load(); + void unload(); + std::string const &name() const; + static std::list &modules(); + static std::list &loadedModules(); +}; + +} /* namespace jags */ + +#endif /* _MODULE_H_ */ diff -Nru jags-3.4.0/src/include/Module.h jags-4.0.0/src/include/Module.h --- jags-3.4.0/src/include/Module.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/Module.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ -#ifndef _MODULE_H_ -#define _MODULE_H_ - -#include -#include -#include -#include - -#include -#include - -class SamplerFactory; -class RNGFactory; -class MonitorFactory; -class LinkFunctiontion; -class ScalarFunction; -class VectorFunction; -class ArrayFunction; -class ScalarDist; -class VectorDist; -class ArrayDist; - -/** - * @short Memory management for dynamically loadable modules - * - * Dynamically loadable modules may extend the capabilities of the JAGS library - * by defining new subclasses of Function, Distribution, SamplerFactory, - * and RNGFactory. - * - * Each module must instantiate a subclass of Module. The constructor for - * this subcluass must dynamically allocate instances of the sub-classes - * defined by the module, and store them with the appropriate insert - * member function. - */ -class Module { - std::string _name; - bool _loaded; - std::vector _fp_list; - std::vector _functions; - std::vector > _obs_functions; - std::vector _dp_list; - std::vector _distributions; - std::vector _sampler_factories; - std::vector _rng_factories; - std::vector _monitor_factories; -public: - Module(std::string const &name); - virtual ~Module(); - - void insert(ScalarFunction*); - void insert(LinkFunction*); - void insert(VectorFunction*); - void insert(ArrayFunction*); - void insert(Distribution*); - - void insert(ScalarDist*); - void insert(VectorDist*); - void insert(ArrayDist*); - - void insert(ScalarDist*, ScalarFunction*); - void insert(ScalarDist*, LinkFunction*); - void insert(ScalarDist*, VectorFunction*); - void insert(ScalarDist*, ArrayFunction*); - - void insert(VectorDist*, ScalarFunction*); - void insert(VectorDist*, LinkFunction*); - void insert(VectorDist*, VectorFunction*); - void insert(VectorDist*, ArrayFunction*); - - void insert(ArrayDist*, ScalarFunction*); - void insert(ArrayDist*, LinkFunction*); - void insert(ArrayDist*, VectorFunction*); - void insert(ArrayDist*, ArrayFunction*); - - void insert(SamplerFactory*); - void insert(RNGFactory*); - void insert(MonitorFactory*); - - std::vector const &functions() const; - std::vector const &distributions() const; - std::vector const &samplerFactories() const; - std::vector const &rngFactories() const; - std::vector const &monitorFactories() const; - - void load(); - void unload(); - std::string const &name() const; - static std::list &modules(); - static std::list &loadedModules(); -}; - -#endif /* _MODULE_H_ */ diff -Nru jags-3.4.0/src/include/rng/Makefile.in jags-4.0.0/src/include/rng/Makefile.in --- jags-3.4.0/src/include/rng/Makefile.in 2013-08-30 13:23:26.000000000 +0000 +++ jags-4.0.0/src/include/rng/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/include/rng -DIST_COMMON = $(rnginclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -63,10 +98,24 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(rnginclude_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -103,11 +152,30 @@ } am__installdirs = "$(DESTDIR)$(rngincludedir)" HEADERS = $(rnginclude_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -121,6 +189,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -190,10 +261,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -276,7 +343,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/include/rng/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/include/rng/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -322,26 +388,15 @@ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(rngincludedir)'; $(am__uninstall_files_from_dir) -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -353,15 +408,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -370,6 +421,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -509,18 +575,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-rngincludeHEADERS \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-rngincludeHEADERS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am \ + install-rngincludeHEADERS install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-rngincludeHEADERS + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/include/rng/RmathRNG.h jags-4.0.0/src/include/rng/RmathRNG.h --- jags-3.4.0/src/include/rng/RmathRNG.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/rng/RmathRNG.h 2015-02-22 08:33:06.000000000 +0000 @@ -3,6 +3,8 @@ #include +namespace jags { + enum NormKind {AHRENS_DIETER, BOX_MULLER, KINDERMAN_RAMAGE}; /** @@ -25,4 +27,6 @@ double exponential(); }; +} /* namespace jags */ + #endif /* RMATH_RNG_H_ */ diff -Nru jags-3.4.0/src/include/rng/RNGFactory.h jags-4.0.0/src/include/rng/RNGFactory.h --- jags-3.4.0/src/include/rng/RNGFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/rng/RNGFactory.h 2015-02-22 15:20:23.000000000 +0000 @@ -4,7 +4,9 @@ #include #include -class RNG; +namespace jags { + +struct RNG; /** * @short Factory for RNG objects @@ -19,6 +21,14 @@ */ virtual ~RNGFactory() {}; /** + * Sets the random seed of the RNG factory so that a reproducible + * sequence of RNGs can be produced. + * + * @param seed Seed that uniquely determines the sequence of RNGs + * produced by subsequent calls to makeRNGs. + */ + virtual void setSeed(unsigned int seed) = 0; + /** * Returns a vector of newly allocated RNG objects. * * @param n Number of RNGs requested. Note that an RNG factory have the @@ -40,4 +50,6 @@ virtual std::string name() const = 0; }; +} /* namespace jags */ + #endif /* RNG_FACTORY_H_ */ diff -Nru jags-3.4.0/src/include/rng/RNG.h jags-4.0.0/src/include/rng/RNG.h --- jags-3.4.0/src/include/rng/RNG.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/rng/RNG.h 2015-02-22 15:14:46.000000000 +0000 @@ -4,15 +4,17 @@ #include #include +namespace jags { + /** * Abstract class for a psuedo random number generator * * @short Random Number Generator */ -class RNG +struct RNG { const std::string _name; -public: + RNG(std::string const &name); virtual ~RNG(); /** @@ -61,6 +63,12 @@ * Returns the name of the RNG */ std::string const &name() const; + + static double uniform(void *); + static double normal(void *); + static double exponential(void *); }; +} /* namespace jags */ + #endif /* RNG_H_ */ diff -Nru jags-3.4.0/src/include/rng/TruncatedNormal.h jags-4.0.0/src/include/rng/TruncatedNormal.h --- jags-3.4.0/src/include/rng/TruncatedNormal.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/rng/TruncatedNormal.h 2015-02-22 15:19:46.000000000 +0000 @@ -1,7 +1,9 @@ #ifndef TRUNCATED_NORMAL_H_ #define TRUNCATED_NORMAL_H_ -class RNG; +namespace jags { + +struct RNG; /** * Draws a random sample from a left-truncated normal distribution. @@ -35,4 +37,6 @@ double inormal(double left, double right, RNG *rng, double mu = 0, double sigma = 1); +} /* namespace jags */ + #endif /* TRUNCATED_NORMAL_H_ */ diff -Nru jags-3.4.0/src/include/sampler/GraphView.h jags-4.0.0/src/include/sampler/GraphView.h --- jags-3.4.0/src/include/sampler/GraphView.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/sampler/GraphView.h 2015-07-15 20:24:06.000000000 +0000 @@ -5,11 +5,13 @@ #include #include +namespace jags { + class StochasticNode; class DeterministicNode; class Node; class Graph; -class RNG; +struct RNG; /** * @short Interface to a graph for Samplers. @@ -32,20 +34,19 @@ * are the children of S in the graph where all deterministic nodes * have been marginalized out. * - * A vector of nodes in an acyclic Graph is in "forward sampling - * order" if node B always appears after node A when there is a path - * from A to B. Note that forward sampling order is not uniquely - * determined. + * A vector of nodes in an acyclic Graph is in topological order if + * node B always appears after node A when there is a path from A to + * B. Note that topological order is not uniquely determined. */ class GraphView { unsigned int _length; std::vector _nodes; - std::vector _stoch_children; + std::vector _stoch_children; std::vector _determ_children; bool _multilevel; void classifyChildren(std::vector const &nodes, Graph const &graph, - std::vector &stoch_nodes, + std::vector &stoch_nodes, std::vector &dtrm_nodes, bool allow_multilevel); public: @@ -68,10 +69,6 @@ GraphView(std::vector const &nodes, Graph const &graph, bool allow_multilevel=false); /** - * Constructs a GraphView for a single node - */ - GraphView(StochasticNode * node, Graph const &graph); - /** * Returns the vector of sampled nodes. */ std::vector const &nodes() const; @@ -98,10 +95,10 @@ /** * Returns the marginal stochastic children of the sampled nodes. */ - std::vector const &stochasticChildren() const; + std::vector const &stochasticChildren() const; /** * Returns the immediate deterministic descendendants of the sampled - * nodes, in forward sampling order + * nodes, in topological order */ std::vector const &deterministicChildren() const; /** @@ -137,8 +134,20 @@ * to give the log full conditional density */ double logLikelihood(unsigned int chain) const; + /** + * Checks that the log density is finite for all sampled nodes and + * all stochastic children. If any log density value is negative + * infinite a NodeError exception is thrown. + * + * This utility function should be called by the constructor of any + * sample method that needs to ensure the graph is in a valid state + * before sampling. + */ + void checkFinite(unsigned int chain) const; }; -unsigned int nchain(GraphView const *updater); +unsigned int nchain(GraphView const *gv); + +} /* namespace jags */ #endif /* GRAPH_VIEW_H_ */ diff -Nru jags-3.4.0/src/include/sampler/ImmutableSampleMethod.h jags-4.0.0/src/include/sampler/ImmutableSampleMethod.h --- jags-3.4.0/src/include/sampler/ImmutableSampleMethod.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/sampler/ImmutableSampleMethod.h 2015-02-22 15:19:41.000000000 +0000 @@ -0,0 +1,23 @@ +#ifndef IMMUTABLE_SAMPLE_METHOD_H_ +#define IMMUTABLE_SAMPLE_METHOD_H_ + +namespace jags { + + struct RNG; + + /** + * @short Abstract class for immutable sampling methods + */ + class ImmutableSampleMethod + { + public: + virtual ~ImmutableSampleMethod(); + /** + * Draws another sample from the target distribution + */ + virtual void update(unsigned int chain, RNG *rng) const = 0; + }; + +} /* namespace jags */ + +#endif /* IMMUTABLE_SAMPLE_METHOD_H_ */ diff -Nru jags-3.4.0/src/include/sampler/ImmutableSampler.h jags-4.0.0/src/include/sampler/ImmutableSampler.h --- jags-3.4.0/src/include/sampler/ImmutableSampler.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/sampler/ImmutableSampler.h 2015-04-13 06:27:40.000000000 +0000 @@ -0,0 +1,68 @@ +#ifndef IMMUTABLE_SAMPLER_H_ +#define IMMUTABLE_SAMPLER_H_ + +#include + +namespace jags { + + struct RNG; + class ImmutableSampleMethod; + + /** + * @short Samples multiple chains in parallel + * + * Uses an ImmutableSampleMethod object to update each chain + * independently. + * + * In contrast to the MutableSampler, only one sample + * method is required to update all chains. + */ + class ImmutableSampler : public Sampler + { + ImmutableSampleMethod const * const _method; + const unsigned int _nchain; + const std::string _name; + public: + /** + * Constructor. + * + * @param gv View of the sample graph, passed directly to the + * parent class Sampler. + * + * @param methods Pointer to an ImmutableSampleMethod This + * must be dynamically allocated, as the + * ImmutableSampler will take ownership of it, and + * will delete it when the destructor is called. + * + * @param name Name of the sampler, which will be returned + * by the member function name. + */ + ImmutableSampler(GraphView *gv, ImmutableSampleMethod* method, + std::string const &name); + ~ImmutableSampler(); + /** + * Updates all chains in parallel using the update method + * provided to the constructor + */ + void update(std::vector const &rngs); + /** + * The sampler is not adaptive + */ + bool isAdaptive() const; + /** + * This does nothing + */ + void adaptOff(); + /** + * This always returns true + */ + bool checkAdaptation() const; + /** + * Returns the name of the sampler, as given to the constructor.b + */ + std::string name() const; + }; + +} /* namespace jags */ + +#endif /* IMMUTABLE_SAMPLER_H_ */ diff -Nru jags-3.4.0/src/include/sampler/Linear.h jags-4.0.0/src/include/sampler/Linear.h --- jags-3.4.0/src/include/sampler/Linear.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/sampler/Linear.h 2015-07-11 09:43:25.000000000 +0000 @@ -3,7 +3,43 @@ #include +namespace jags { + class GraphView; +class SingletonGraphView; +class Graph; +class StochasticNode; + +/** + * Helper function to check additivity. The function returns true if + * all deterministic descendants within the given SingletonGraphView + * are additive functions of the sampled node. + * + * @param gv GraphView to be tested. + * + * @param fixed Boolean flag. If true, the function checks for + * additive functions with a fixed intercept. + * + * @see Node#isClosed + */ +bool checkAdditive(SingletonGraphView const *gv, bool fixed); + +/** + * Helper function to check additivity. The function returns true if + * all deterministic descendants of the nodes within the graph are + * additive functions. + * + * @param snodes Vector of nodes to be tested. + * + * @param graph Enclosing graph for gv + * + * @param fixed Boolean flag. If true, the function checks for + * additive functions with a fixed intercept. + * + * @see Node#isClosed + */ +bool checkAdditive(std::vector const &snodes, + Graph const &graph, bool fixed); /** * Helper function to check linearity. The function returns true if @@ -53,4 +89,6 @@ */ bool checkPower(GraphView const *gv, bool fixed); +} /* namespace jags */ + #endif /* LINEAR_H_ */ diff -Nru jags-3.4.0/src/include/sampler/Makefile.am jags-4.0.0/src/include/sampler/Makefile.am --- jags-3.4.0/src/include/sampler/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/sampler/Makefile.am 2015-02-22 08:33:06.000000000 +0000 @@ -1,5 +1,7 @@ samplerincludedir = $(pkgincludedir)/sampler -samplerinclude_HEADERS = Sampler.h SamplerFactory.h SingletonFactory.h \ -Slicer.h Metropolis.h RWMetropolis.h ParallelSampler.h SampleMethod.h \ -Linear.h GraphView.h StepAdapter.h TemperedMetropolis.h +samplerinclude_HEADERS = Sampler.h SamplerFactory.h \ +SingletonFactory.h Slicer.h Metropolis.h RWMetropolis.h Linear.h \ +GraphView.h StepAdapter.h TemperedMetropolis.h SampleMethodNoAdapt.h \ +SingletonGraphView.h MutableSampleMethod.h ImmutableSampleMethod.h \ +MutableSampler.h ImmutableSampler.h diff -Nru jags-3.4.0/src/include/sampler/Makefile.in jags-4.0.0/src/include/sampler/Makefile.in --- jags-3.4.0/src/include/sampler/Makefile.in 2013-08-30 13:23:26.000000000 +0000 +++ jags-4.0.0/src/include/sampler/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/include/sampler -DIST_COMMON = $(samplerinclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -63,10 +98,24 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(samplerinclude_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -103,11 +152,30 @@ } am__installdirs = "$(DESTDIR)$(samplerincludedir)" HEADERS = $(samplerinclude_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -121,6 +189,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -190,10 +261,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -260,9 +327,11 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ samplerincludedir = $(pkgincludedir)/sampler -samplerinclude_HEADERS = Sampler.h SamplerFactory.h SingletonFactory.h \ -Slicer.h Metropolis.h RWMetropolis.h ParallelSampler.h SampleMethod.h \ -Linear.h GraphView.h StepAdapter.h TemperedMetropolis.h +samplerinclude_HEADERS = Sampler.h SamplerFactory.h \ +SingletonFactory.h Slicer.h Metropolis.h RWMetropolis.h Linear.h \ +GraphView.h StepAdapter.h TemperedMetropolis.h SampleMethodNoAdapt.h \ +SingletonGraphView.h MutableSampleMethod.h ImmutableSampleMethod.h \ +MutableSampler.h ImmutableSampler.h all: all-am @@ -279,7 +348,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/include/sampler/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/include/sampler/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -325,26 +393,15 @@ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(samplerincludedir)'; $(am__uninstall_files_from_dir) -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -356,15 +413,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -373,6 +426,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -512,18 +580,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-samplerincludeHEADERS \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-samplerincludeHEADERS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am \ + install-samplerincludeHEADERS install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-samplerincludeHEADERS + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/include/sampler/Metropolis.h jags-4.0.0/src/include/sampler/Metropolis.h --- jags-3.4.0/src/include/sampler/Metropolis.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/sampler/Metropolis.h 2015-02-22 08:33:06.000000000 +0000 @@ -1,9 +1,11 @@ #ifndef METROPOLIS_H_ #define METROPOLIS_H_ -#include +#include #include +namespace jags { + class StochasticNode; /** @@ -17,7 +19,7 @@ * calls to Metropolis#setValue, calculate the acceptance probability, * and then call the function Metropolis#accept. */ -class Metropolis : public SampleMethod +class Metropolis : public MutableSampleMethod { std::vector _last_value; bool _adapt; @@ -33,18 +35,13 @@ /** * Sets the value of the Metropolis object. * - * @param value Pointer to the beginning of an array of values - * - * @param length Length of the supplied value array + * @param value Vector of values */ virtual void setValue(std::vector const &value) = 0; /** - * Accept current value with probabilty p. If the current value is - * not accepted, the Metropolis object reverts to the value at the - * last successful call to accept. The first call to accept is - * always successful and neither rng nor prob is referenced. A - * subclass of Metropolis may therefore call accept in the - * constructor in order to store the initial value. + * Accept current value with probabilty prob. If the current value + * is not accepted, the Metropolis object reverts to the value at + * the last successful call to accept. * * @param rng Random number generator. * @@ -77,4 +74,6 @@ unsigned int length() const; }; +} /* namespace jags */ + #endif /* METROPOLIS_H_ */ diff -Nru jags-3.4.0/src/include/sampler/MutableSampleMethod.h jags-4.0.0/src/include/sampler/MutableSampleMethod.h --- jags-3.4.0/src/include/sampler/MutableSampleMethod.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/sampler/MutableSampleMethod.h 2015-02-22 15:19:36.000000000 +0000 @@ -0,0 +1,35 @@ +#ifndef MUTABLE_SAMPLE_METHOD_H_ +#define MUTABLE_SAMPLE_METHOD_H_ + +namespace jags { + +struct RNG; + +/** + * @short Abstract class for mutable sampling methods + */ +class MutableSampleMethod +{ +public: + virtual ~MutableSampleMethod(); + /** + * Draws another sample from the target distribution + */ + virtual void update(RNG *rng) = 0; + /** + * Indicates whether the sample method has an adaptive mode. + */ + virtual bool isAdaptive() const = 0; + /** + * Turns off adaptive mode + */ + virtual void adaptOff() = 0; + /** + * Checks adaptation + */ + virtual bool checkAdaptation() const = 0; +}; + +} /* namespace jags */ + +#endif /* MUTABLE_SAMPLE_METHOD_H_ */ diff -Nru jags-3.4.0/src/include/sampler/MutableSampler.h jags-4.0.0/src/include/sampler/MutableSampler.h --- jags-3.4.0/src/include/sampler/MutableSampler.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/sampler/MutableSampler.h 2015-02-22 15:20:03.000000000 +0000 @@ -0,0 +1,53 @@ +#ifndef MUTABLE_SAMPLER_H_ +#define MUTABLE_SAMPLER_H_ + +#include + +namespace jags { + + struct RNG; + class MutableSampleMethod; + + /** + * @short Samples multiple chains in parallel + * + * A vector of MutableSampleMethod objects is used to update each + * chain in parallel. + */ + class MutableSampler : public Sampler + { + std::vector _methods; + const std::string _name; + public: + /** + * Constructor. + * + * @param gv View of the sample graph, passed directly to the + * parent class Sampler, which takes ownership of it + * + * @param methods Vector of pointers to MutableSampleMethod + * objects, of length equal to the number of chains. These + * must be dynamically allocated, as the + * MutableSampler will take ownership of them, and + * will delete them when its destructor is called + * + * @param name The name of the sampler, which will be returned + * by the member function name. + */ + MutableSampler(GraphView *gv, + std::vector const &methods, + std::string const &name); + ~MutableSampler(); + void update(std::vector const &rngs); + bool isAdaptive() const; + void adaptOff(); + bool checkAdaptation() const; + /** + * Returns the name of the sampler, as given to the constructor + */ + std::string name() const; + }; + +} /* namespace jags */ + +#endif /* MUTABLE_SAMPLER_H_ */ diff -Nru jags-3.4.0/src/include/sampler/ParallelSampler.h jags-4.0.0/src/include/sampler/ParallelSampler.h --- jags-3.4.0/src/include/sampler/ParallelSampler.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/sampler/ParallelSampler.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -#ifndef PARALLEL_SAMPLER_H_ -#define PARALLEL_SAMPLER_H_ - -#include - -class RNG; -class SampleMethod; - -/** - * @short Samples multiple chains in parallel - * - * A ParallelSampler uses a vector of SampleMethod objects to update - * each chain independently. - */ -class ParallelSampler : public Sampler -{ - std::vector _methods; -public: - /** - * Constructor. - * - * @param methods Vector of pointers to SampleMethod objects, - * These must be dynamically allocated, as the ParallelSampler - * will take ownership of them, and will delete them when its - * destructor is called - */ - ParallelSampler(GraphView *gv, std::vector const &methods); - ~ParallelSampler(); - void update(std::vector const &rngs); - bool isAdaptive() const; - void adaptOff(); - bool checkAdaptation() const; - std::string name() const; -}; - -#endif /* PARALLEL_SAMPLER_H_ */ diff -Nru jags-3.4.0/src/include/sampler/RWMetropolis.h jags-4.0.0/src/include/sampler/RWMetropolis.h --- jags-3.4.0/src/include/sampler/RWMetropolis.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/sampler/RWMetropolis.h 2015-02-22 08:33:06.000000000 +0000 @@ -4,6 +4,8 @@ #include #include +namespace jags { + /** * @short Random Walk Metropolis-Hastings sampling method * @@ -75,4 +77,6 @@ virtual double logDensity() const = 0; }; +} /* namespace jags */ + #endif /* RW_METROPOLIS_H_ */ diff -Nru jags-3.4.0/src/include/sampler/SampleMethod.h jags-4.0.0/src/include/sampler/SampleMethod.h --- jags-3.4.0/src/include/sampler/SampleMethod.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/sampler/SampleMethod.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -#ifndef SAMPLE_METHOD_H_ -#define SAMPLE_METHOD_H_ - -#include - -class RNG; - -/** - * @short Abstract class for sampling methods - */ -class SampleMethod -{ -public: - virtual ~SampleMethod(); - /** - * Draws another sample from the target distribution - */ - virtual void update(RNG *rng) = 0; - /** - * Indicates whether the sample method has an adaptive mode. - */ - virtual bool isAdaptive() const = 0; - /** - * Turns off adaptive mode - */ - virtual void adaptOff() = 0; - /** - * Checks adaptation - */ - virtual bool checkAdaptation() const = 0; - /** - * Returns an informative name for the sample method. - */ - virtual std::string name() const = 0; -}; - -#endif /* SAMPLE_METHOD_H_ */ diff -Nru jags-3.4.0/src/include/sampler/SampleMethodNoAdapt.h jags-4.0.0/src/include/sampler/SampleMethodNoAdapt.h --- jags-3.4.0/src/include/sampler/SampleMethodNoAdapt.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/sampler/SampleMethodNoAdapt.h 2015-02-22 08:33:06.000000000 +0000 @@ -0,0 +1,24 @@ +#ifndef SAMPLE_METHOD_NO_ADAPT_H_ +#define SAMPLE_METHOD_NO_ADAPT_H_ + +#include + +namespace jags { + + /** + * @short Sampling methods with no adaptive phase + * + * Provides trivial implementations of member functions concerned + * with adaptation for sample methods that have no adaptive phase. + */ + class SampleMethodNoAdapt : public MutableSampleMethod + { + public: + bool isAdaptive() const { return false; }; + void adaptOff() {}; + bool checkAdaptation() const { return true; }; + }; + +} /* namespace jags */ + +#endif /* SAMPLE_METHOD_NON_ADAPT_H_ */ diff -Nru jags-3.4.0/src/include/sampler/SamplerFactory.h jags-4.0.0/src/include/sampler/SamplerFactory.h --- jags-3.4.0/src/include/sampler/SamplerFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/sampler/SamplerFactory.h 2015-02-22 08:33:06.000000000 +0000 @@ -2,9 +2,11 @@ #define SAMPLER_FACTORY_H_ #include -#include +#include #include +namespace jags { + class Sampler; class StochasticNode; class Graph; @@ -17,13 +19,13 @@ public: virtual ~SamplerFactory(); /** - * Finds nodes in the set of stochastic nodes that can be sampled + * Finds nodes in the list of stochastic nodes that can be sampled * within the given graph, and returns a vector of newly allocated * samplers for them. If no sampler can be created, an empty * vector is returned. */ virtual std::vector - makeSamplers(std::set const &nodes, + makeSamplers(std::list const &nodes, Graph const &graph) const = 0; /** * Returns the name of the sampler factory @@ -32,4 +34,6 @@ }; +} /* namespace jags */ + #endif /* SAMPLER_FACTORY_H_ */ diff -Nru jags-3.4.0/src/include/sampler/Sampler.h jags-4.0.0/src/include/sampler/Sampler.h --- jags-3.4.0/src/include/sampler/Sampler.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/sampler/Sampler.h 2015-02-22 15:19:32.000000000 +0000 @@ -5,14 +5,25 @@ #include #include -class RNG; +namespace jags { + +struct RNG; class StochasticNode; class GraphView; /** * @short Updates a set of stochastic nodes * - * A sampler updates a set of stochastic nodes. + * A sampler updates a set of stochastic nodes at each iteration. + * In addition, the sampler is responsible for updating the immediate + * deterministic descendants of the sampled nodes. + * + * The Sampler class is designed to be as abstract as possible to give + * maximum freedom in implementing samplers. In practice, all the + * Samplers in the modules distributed with JAGS are implementations + * of one of two subclasses -- MutableSampler or ImmutableSampler -- + * depending on whether the Sampler does or does not have a state that + * it must preserve between iterations. */ class Sampler { GraphView *_gv; @@ -21,8 +32,9 @@ * Constructor * * @param gv GraphView providing a view of the sampling graph for - * the sampler. The Sampler takes ownership of the GraphView and - * deletes it when the destructor is called. + * the sampler. This should be dynamically allocated by the + * SamplerFactory: the Sampler takes ownership of the GraphView + * and deletes it when the destructor is called. */ Sampler(GraphView *gv); virtual ~Sampler(); @@ -46,7 +58,7 @@ * sampler. */ virtual void adaptOff() = 0; - /* + /** * The adaptOff function may be called at any time. Premature * ending of adaptive mode may result in an extremely inefficient * sampler. Therefore the checkAdaptation function implements an @@ -66,4 +78,6 @@ virtual std::string name() const = 0; }; +} /* namespace jags */ + #endif /* SAMPLER_H_ */ diff -Nru jags-3.4.0/src/include/sampler/SingletonFactory.h jags-4.0.0/src/include/sampler/SingletonFactory.h --- jags-3.4.0/src/include/sampler/SingletonFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/sampler/SingletonFactory.h 2015-02-22 08:33:06.000000000 +0000 @@ -3,6 +3,8 @@ #include +namespace jags { + /** * @short Factory object for a Sampler that samples a single node * @@ -27,11 +29,13 @@ virtual Sampler *makeSampler(StochasticNode *node, Graph const &graph) const = 0; /** - * This traverses the graph, creating a Sampler, when possible, - * for each individual StochasticNode. + * This traverses the list of available nodes, creating a Sampler, + * when possible, for each individual StochasticNode. */ - std::vector makeSamplers(std::set const &nodes, + std::vector makeSamplers(std::list const &nodes, Graph const &graph) const; }; +} /* namespace jags */ + #endif /* SINGLETON_FACTORY_H */ diff -Nru jags-3.4.0/src/include/sampler/SingletonGraphView.h jags-4.0.0/src/include/sampler/SingletonGraphView.h --- jags-3.4.0/src/include/sampler/SingletonGraphView.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/sampler/SingletonGraphView.h 2015-02-22 08:33:06.000000000 +0000 @@ -0,0 +1,43 @@ +#ifndef SINGLETON_GRAPH_VIEW_H_ +#define SINGLETON_GRAPH_VIEW_H_ + +#include + +namespace jags { + + /** + * @short GraphView for a single stochastic node. + * + * The SingletonGraphView class provides a simplified interface to + * the GraphView class when there is only a single node to be + * sampled. It should be used in preference to GraphView by any + * Sampler that acts on a single node. + * + * Note that this class is not just syntactic sugar: it provides a + * compile-time guarantee that only one StochasticNode is being + * sampled. + */ + class SingletonGraphView : public GraphView { + public: + /** + * Constructor + * + * @param node Node to be sampled + * + * @param graph Graph within which sampling is to take place. + */ + SingletonGraphView(StochasticNode * node, Graph const &graph) + : GraphView(std::vector(1, node), graph, false) + {} + /** + * Returns the sampled node. + */ + inline StochasticNode * node() const + { + return nodes()[0]; + } + }; + +} /* namespace jags */ + +#endif /* SINGLETON_GRAPH_VIEW_H_ */ diff -Nru jags-3.4.0/src/include/sampler/Slicer.h jags-4.0.0/src/include/sampler/Slicer.h --- jags-3.4.0/src/include/sampler/Slicer.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/sampler/Slicer.h 2015-02-22 08:33:06.000000000 +0000 @@ -1,7 +1,9 @@ #ifndef SLICER_H_ #define SLICER_H_ -#include +#include + +namespace jags { /** * Enumerates different states of the sampler, SLICER_OK means there has @@ -16,8 +18,16 @@ * * The slice sampler is defined by Neal R (2003) Slice Sampling, * Ann. Statist. 31; 3: 705-767. + * + * This class provides basic infrastructure for slice sampling. + * + * The Slicer class provides no update method. A subclass must provide + * an update method that calls either updateStep or updateDouble, + * depending on whether the "stepping out" or "doubling" method is + * used. The subclass must also provide member functions value, + * setValue, getLimits and logDensity. */ -class Slicer : public SampleMethod +class Slicer : public MutableSampleMethod { double _width; bool _adapt; @@ -39,8 +49,8 @@ Slicer(double width, unsigned int max); /** * Update the current value using the "stepping" method. A Sampler - * that uses the Slicer DensityMethod can implement Sampler#update - * by calling this function. + * that uses a Slicer can implement Sampler#update by calling this + * function. * * @return Success indicator. If the return value is false, then * the slicer state is set to show the error that occurred. @@ -48,11 +58,11 @@ bool updateStep(RNG *rng); /** * Update the current value using the "doubling" method. A Sampler - * that uses the Slicer DensityMethod can implement Sampler#update - * by calling this function. + * that uses a Slicer can implement Sampler#update by calling this + * function. * * @return Success indicator. If the return value is false, then - * the slicer state is set to show the error that occurred. + * the Slicer state is set to show the error that occurred. */ bool updateDouble(RNG *rng); /** @@ -94,4 +104,6 @@ SlicerState state() const; }; +} /* namespace jags */ + #endif /* SLICER_H_ */ diff -Nru jags-3.4.0/src/include/sampler/StepAdapter.h jags-4.0.0/src/include/sampler/StepAdapter.h --- jags-3.4.0/src/include/sampler/StepAdapter.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/sampler/StepAdapter.h 2015-02-22 08:33:06.000000000 +0000 @@ -3,6 +3,8 @@ #include +namespace jags { + /** * @short Step size for Random Walk Metropolis-Hastings * @@ -41,4 +43,6 @@ double logitDeviation(double p) const; }; +} /* namespace jags */ + #endif /* STEP_ADAPTER_H_ */ diff -Nru jags-3.4.0/src/include/sampler/TemperedMetropolis.h jags-4.0.0/src/include/sampler/TemperedMetropolis.h --- jags-3.4.0/src/include/sampler/TemperedMetropolis.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/sampler/TemperedMetropolis.h 2015-02-22 08:33:06.000000000 +0000 @@ -5,6 +5,8 @@ #include #include +namespace jags { + class StepAdapter; /** @@ -121,4 +123,6 @@ virtual double logJacobian(std::vector const &value) const; }; +} /* namespace jags */ + #endif /* MIX_METHOD_H_ */ diff -Nru jags-3.4.0/src/include/sarray/Makefile.am jags-4.0.0/src/include/sarray/Makefile.am --- jags-3.4.0/src/include/sarray/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/sarray/Makefile.am 2015-02-22 08:33:06.000000000 +0000 @@ -1,4 +1,4 @@ sarrayincludedir = $(pkgincludedir)/sarray -sarrayinclude_HEADERS = RangeIterator.h SArray.h Range.h +sarrayinclude_HEADERS = RangeIterator.h SArray.h Range.h SimpleRange.h diff -Nru jags-3.4.0/src/include/sarray/Makefile.in jags-4.0.0/src/include/sarray/Makefile.in --- jags-3.4.0/src/include/sarray/Makefile.in 2013-08-30 13:23:26.000000000 +0000 +++ jags-4.0.0/src/include/sarray/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/include/sarray -DIST_COMMON = $(sarrayinclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -63,10 +98,24 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(sarrayinclude_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -103,11 +152,30 @@ } am__installdirs = "$(DESTDIR)$(sarrayincludedir)" HEADERS = $(sarrayinclude_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -121,6 +189,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -190,10 +261,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -260,7 +327,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ sarrayincludedir = $(pkgincludedir)/sarray -sarrayinclude_HEADERS = RangeIterator.h SArray.h Range.h +sarrayinclude_HEADERS = RangeIterator.h SArray.h Range.h SimpleRange.h all: all-am .SUFFIXES: @@ -276,7 +343,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/include/sarray/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/include/sarray/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -322,26 +388,15 @@ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(sarrayincludedir)'; $(am__uninstall_files_from_dir) -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -353,15 +408,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -370,6 +421,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -509,18 +575,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-sarrayincludeHEADERS \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-sarrayincludeHEADERS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am \ + install-sarrayincludeHEADERS install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-sarrayincludeHEADERS + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/include/sarray/Range.h jags-4.0.0/src/include/sarray/Range.h --- jags-3.4.0/src/include/sarray/Range.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/sarray/Range.h 2015-02-22 08:33:06.000000000 +0000 @@ -4,53 +4,57 @@ #include #include +namespace jags { + /** - * @short Represents a range of array indices + * @short Represents a collection of array indices + * + * A Range object represents a subset of indices in a multi + * dimensional array. For example, A[1:2,4,4:6] is a subset of the + * 3-dimensional array A defined by the range [1:2,4,4:6]. This range + * is itself defined as the outer product of 3 integer vectors: + * c(1,2), 4, and c(4,5,6) in the first, second, and third dimensions, + * respectively. * - * A Range object represents a range of indices used to take a subset - * of a multi-dimensional array. For example, A[1:2,4,4:5] is a subset - * of the array A defined by a range with lower boundary (1,4,4) and - * upper boundary (2,4,5). + * A Range may contain indices in any order and may include repeat + * indices. A Range is "simple" if its component vectors consist of + * contiguous elements in increasing order. For example, the Range + * given above is Simple. However, the Range [c(2,1,1,3,4)] is not + * simple. The SimpleRange class is used for a more efficient + * calculations on simple Ranges. + * + * @see SimpleRange + * */ class Range { - std::vector _lower, _upper; + std::vector > _scope; + protected: std::vector _dim, _dim_dropped; + std::vector_first, _last; unsigned int _length; -public: + public: /** - * Default constructor which constructs a NULL range, with zero-length - * upper and lower limits. + * Default constructor which creates a NULL range of zero length. */ Range(); /** - * Constructs a range based on given lower and upper limits - * A logic_error is thrown if these are of different lengths - * - * @param lower Lower limits. + * Constructs a Range. * - * @param upper Upper limits. A range_error is thrown if any - * element of upper is smaller than the corresponding - * element of lower. + * @param scope Vector of index vectors. The scope parameter is of + * length equal to the number of dimensions. Element i of the + * scope vector is the vector of indices for dimension i. Each + * element of scope must be non-empty (i.e. must contain at least + * one index) or a logic_error is thrown. * - * @exception range_error + * @exception logic_error */ - Range(std::vector const &lower, std::vector const &upper); + Range(std::vector > const &scope); /** - * Constructs a scalar range from an index. The upper and lower - * bounds are both equal to the supplied index. - */ - Range(std::vector const &index); - /** - * Constructs a range from a dimension. For each index, the lower - * limit is 1 and the upper limit is the corresponding element of - * dim (cast to a signed int). - * - * This constructor should not be confused with the constructor - * that creates a scalar range from a vector of signed integers. + * Virtual destructor */ - Range(std::vector const &dim); + virtual ~Range(); /** - *Equality operator + * Equality operator */ bool operator==(Range const &range) const; /** @@ -64,50 +68,22 @@ */ unsigned int length() const; /** - * Indicates whether the test range is completely contained inside this - * range. - * - * @param test_range Test range, which must have the correct number of - * dimensions, or an invalid_argument exception is thrown. - * - * @exception invalid_argument - */ - bool contains(Range const &test_range) const; - /** - * Returns the value of a RangeIterator constructed from this range, - * after n iterations of RangeIterator#nextLeft + * Returns the index in position n when the indices in the Range + * are put in column-major order (i.e. with the left hand index + * moving fastest). * * @see RangeIterator */ std::vector leftIndex(unsigned int n) const; /** - * The inverse of leftIndex. Returns the number of iterations of - * RangeIterator#nextLeft required to reach the given index. - * - * @param index Index vector to convert to offset. An out_of_range - * exception is thrown if the index is not contained in the range. - * @see RangeIterator - * @exception out_of_range - */ - unsigned int leftOffset(std::vector const &index) const; - /** - * Returns the value of a RangeIterator after n iterations of - * RangeIterator#nextRight + * Returns the index in position n when the indices in the Raneg + * are put in row-major order (i.e. with the right hand index + * moving fastest). * * @see RangeIterator */ std::vector rightIndex(unsigned int n) const; /** - * The inverse of rightIndex. Returns the number of iterations of - * RangeIterator#nextRight required to reach index. - * - * @param index Index vector to convert to offset. An out_of_range - * exception is thrown if the index is not contained in the range. - * @see RangeIterator - * @exception out_of_range - */ - unsigned int rightOffset(std::vector const &index) const; - /** * Dimension of the range. The range [1:4,2,3:5] has dimension * (4,1,3) if drop==false and (4,3) if drop==true. Dropping of * dimensions follows the S language convention. @@ -116,24 +92,34 @@ */ std::vector const &dim(bool drop) const; /** - * Number of dimensions covered by the Range + * Number of dimensions covered by the Range. The range [1:4, 2, + * 3:5] has 3 dimensions if drop==false and 2 dimensions if + * drop==true. * * @param drop Should dimensions of size 1 be counted? */ unsigned int ndim(bool drop) const; /** - * lower limit of range + * The first element of the Range (in either row-major or + * column-major order). */ - std::vector const & lower() const; + std::vector const & first() const; /** - * upper limit of range + * The last element of the Range (in either row-major or + * column-major order). */ - std::vector const & upper() const; + std::vector const & last() const; /** - * Less than operator based on lexicographic ordering of the - * upper bound, then the lower bound. + * Less than operator that gives a unique ordering of ranges + * Ranges are first sorted by the first element, then the last + * element and, if they are still equivalent by these criteria, a + * lexicographic ordering of the scope. */ bool operator<(Range const &rhs) const; + /** + * Returns the scope vector used to construct the Range. + */ + std::vector > const &scope() const; }; /** @@ -141,11 +127,23 @@ */ inline bool isNULL(Range const &range) { return range.length() == 0; } -/** - * Returns a string containing a BUGS language representation of the - * given range: e.g. a range with lower limit (1,2,3) and upper limit - * (3,3,3) will be printed as "[1:3,2:3,3]" - */ -std::string print(Range const &range); + /** + * Returns a string containing a BUGS language representation of + * the given range. + * + * Simple ranges, consisting of contiguous elements in increasing + * order, are represented as in R: e.g. a range with lower limit + * (1,2,3) and upper limit (3,3,3) will be printed as + * "[1:3,2:3,3]. + * + * Complex ranges, consisting of elements that are not contiguous + * or not in order, are not represented exactly when printed. The + * first and last indices in the range are given separated by + * ellipses, e.g. the range c(3,7,4,2,2,5) is represented as + * "[3...5]" + */ + std::string print(Range const &range); + +} /* namespace jags */ #endif /* RANGE_H_ */ diff -Nru jags-3.4.0/src/include/sarray/RangeIterator.h jags-4.0.0/src/include/sarray/RangeIterator.h --- jags-3.4.0/src/include/sarray/RangeIterator.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/sarray/RangeIterator.h 2015-02-22 08:33:06.000000000 +0000 @@ -5,53 +5,65 @@ #include -/** - * @short Mutable index that traverses a Range - * - * A RangeIterator is a numeric vector that is bound to be inside a given - * Range. It has operators to allow traversing the Range in row- or - * column-major order. - * - * @see Range - */ -class RangeIterator : public std::vector { - std::vector _lower, _upper; - unsigned int _atend; - //Forbid assignment - RangeIterator &operator=(std::vector const &); -public: +namespace jags { + /** - * Constructor. The initial value of a RangeIterator is - * the lower limit of the range argument. + * @short Mutable index that traverses a Range * - * @param range. Range to traverse - */ - RangeIterator(Range const &range); - /** - * Goes to the next index in column-major order, (i.e. moving the - * left hand index fastest). If the RangeIterator at the upper - * limit of the Range, then a call to nextLeft will move it to the - * lower limit. - * - * @return reference to self after incrementation - * @see nextRight - */ - RangeIterator &nextLeft(); - /** - * Goes to the next index in row-major order (i.e. moving the right - * hand index fastest) but otherwise behaves line nextLeft. + * A RangeIterator is a numeric vector that traverses a given + * Range in row- or column-major order. * - * @return reference to self after incrementation - * @see nextLeft + * @see Range */ - RangeIterator &nextRight(); - /** - * Returns a numeric counter of the number of times the - * RangeIterator has gone past the upper bound of the Range (and - * returned to the lower bound) in a call to nexLeft or nextRight. - * The initial value is zero. - */ - unsigned int atEnd() const; -}; + class RangeIterator : public std::vector { + std::vector > _scope; + std::vector _dim; + std::vector _index; + unsigned int _atend; + //Forbid assignment + RangeIterator &operator=(std::vector const &); + public: + /** + * Constructor. The initial value of a RangeIterator is the + * beginning of the range. + * + * It is not possible to construct a RangeIterator if any of + * the dimensions of the Range are zero because there can be + * no index value corresponding to a zero dimension. In this + * case a logic_error is thrown. + * + * @param range. Range to traverse + */ + RangeIterator(Range const &range); + /** + * Goes to the next index in column-major order, (i.e. moving + * the left hand index fastest). If the RangeIterator reaches + * the end of the Range, then a call to nextLeft will move it + * to the beginning again. + * + * @return reference to self after incrementation + * @see nextRight + */ + RangeIterator &nextLeft(); + /** + * Goes to the next index in row-major order (i.e. moving the + * right hand index fastest) but otherwise behaves like + * nextLeft. + * + * @return reference to self after incrementation + * @see nextLeft + */ + RangeIterator &nextRight(); + /** + * Returns a numeric counter of the number of times the + * RangeIterator has gone past the end of the Range (and + * returned to the beginning) in a call to nexLeft or + * nextRight. The initial value is zero. + */ + unsigned int atEnd() const; + }; + +} /* namespace jags */ #endif /* RANGE_ITERATOR_H_ */ + diff -Nru jags-3.4.0/src/include/sarray/SArray.h jags-4.0.0/src/include/sarray/SArray.h --- jags-3.4.0/src/include/sarray/SArray.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/sarray/SArray.h 2015-02-22 08:33:06.000000000 +0000 @@ -1,11 +1,13 @@ #ifndef SARRAY_H_ #define SARRAY_H_ -#include +#include #include #include +namespace jags { + /** * @short multi-dimensional real-valued array * @@ -13,7 +15,7 @@ */ class SArray { - Range const _range; + const SimpleRange _range; std::vector _value; bool _discrete; std::vector > _s_dimnames; @@ -77,7 +79,7 @@ /** * Returns the range associated with the SArray. */ - Range const &range() const; + SimpleRange const &range() const; /** * Returns the names of the dimensions. A newly created SArray has * no dimension names and this function returns an empty vector. @@ -118,4 +120,6 @@ dim(bool drop) const { return range().dim(drop); } }; +} /* namespace jags */ + #endif /* SARRAY_H_ */ diff -Nru jags-3.4.0/src/include/sarray/SimpleRange.h jags-4.0.0/src/include/sarray/SimpleRange.h --- jags-3.4.0/src/include/sarray/SimpleRange.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/sarray/SimpleRange.h 2015-07-27 20:28:22.000000000 +0000 @@ -0,0 +1,131 @@ +#ifndef SIMPLE_RANGE_H_ +#define SIMPLE_RANGE_H_ + +#include + +#include +#include + +namespace jags { + + /** + * @short Represents a contiguous ordered collection of array indices + * + * SimpleRange is used for a Range consisting of a contiguous + * block of indices. It is uniquely defined by its lower and upper + * bounds and contains every index in between. + */ + class SimpleRange : public Range { + public: + /** + * Default constructor which constructs a NULL range, with + * zero-length upper and lower limits. + */ + SimpleRange(); + /** + * Destructor + */ + ~SimpleRange(); + /** + * Constructs a simple range given lower and upper limits A + * logic_error is thrown if these are of different lengths + * + * @param lower Lower limits. + * + * @param upper Upper limits. A range_error is thrown if any + * element of upper is smaller than the corresponding + * element of lower. + * + * @exception range_error + */ + SimpleRange(std::vector const &lower, + std::vector const &upper); + /** + * Constructs a scalar range from an index. The upper and lower + * bounds are both equal to the supplied index. + */ + SimpleRange(std::vector const &index); + /** + * Constructs a range from a dimension. For each index, the lower + * limit is 1 and the upper limit is the corresponding element of + * dim (cast to a signed int). + * + * This constructor should not be confused with the constructor + * that creates a scalar range from a vector of signed integers. + */ + SimpleRange(std::vector const &dim); + /** + * Equality operator. A SimpleRange is uniquely defined by + * its lower and upper limits, so testing for equality is + * much quicker than for a Range object. + */ + bool operator==(SimpleRange const &range) const; + /** + * Inequality operator + */ + bool operator!=(SimpleRange const &range) const; + /** + * Indicates whether the test SimpleRange is completely + * contained inside this SimpleRange. + * + * @param test_range Test SimpleRange + */ + bool contains(SimpleRange const &test_range) const; + /** + * Indicates whether the test Range is completely contained + * inside this SimpleRange. + * + * @param test_range Test Range + */ + bool contains(Range const &test_range) const; + /** + * The inverse of leftIndex. The left offset is the position + * of the given index in the sequence when all indices in the + * Range are written out in column major order (i.e. with the + * left index moving fastest). + * + * @param index Index vector to convert to offset. An out_of_range + * exception is thrown if the index is not contained in the range. + * + * @exception out_of_range + */ + unsigned int leftOffset(std::vector const &index) const; + /** + * The inverse of rightIndex. The right offset is the position + * of the given index in the sequence when all indices in the + * range are given in row major order (i.e. with the right + * index moving fastest). + * + * @param index Index vector to convert to offset. An out_of_range + * exception is thrown if the index is not contained in the range. + * + * @exception out_of_range + */ + unsigned int rightOffset(std::vector const &index) const; + /** + * Less than operator. It defines the same ordering as + * Range#operator< among SimpleRange objects but the + * calculations are more efficient as a SimpleRange is + * uniquely defined by its first and last elements. + */ + bool operator<(SimpleRange const &rhs) const; + /** + * The lower bound of the Range (an alias for Range#first) + */ + inline std::vector const & lower() const { return first(); } + /** + * The upper bound of the Range (an alias for Range#last) + */ + inline std::vector const & upper() const { return last(); } + }; + + /** + * Returns a string containing a BUGS language representation of + * the given range: e.g. a simple range with lower limit (1,2,3) + * and upper limit (3,3,3) will be printed as "[1:3,2:3,3]" + */ + std::string print(SimpleRange const &range); + +} /* namespace jags */ + +#endif /* SIMPLE_RANGE_H_ */ diff -Nru jags-3.4.0/src/include/testlib.h jags-4.0.0/src/include/testlib.h --- jags-3.4.0/src/include/testlib.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/include/testlib.h 2015-02-22 08:33:06.000000000 +0000 @@ -0,0 +1,37 @@ +#ifndef TEST_LIB_H_ +#define TEST_LIB_H_ + +#include + +//A mix-in class for test fixtures that provides some useful constants +class JAGSFixture +{ + public: + JAGSFixture(); + + protected: + //tolerance for equality tests + double tol; + + //Logical vectors of length 1 + std::vector F; //False + std::vector T; //True + + //Logical vectors of length 2 + std::vector FF; //False, False + std::vector FT; + std::vector TF; + std::vector TT; + + //Logical vectors of length 3 + std::vector FFF; //False, False, False + std::vector FFT; + std::vector FTF; + std::vector FTT; + std::vector TFF; + std::vector TFT; + std::vector TTF; + std::vector TTT; +}; + +#endif /* TEST_LIB_H */ diff -Nru jags-3.4.0/src/include/util/dim.h jags-4.0.0/src/include/util/dim.h --- jags-3.4.0/src/include/util/dim.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/util/dim.h 2015-02-22 08:33:06.000000000 +0000 @@ -1,94 +1,138 @@ #ifndef DIM_H_ #define DIM_H_ -/** - * @short Some low-level utility functions. - */ #include #include -/** - * Tests whether the dimension represented by the vector "dim" - * corresponds to a scalar quantity. - * - * Note that isScalar, isVector, and isArray are mutually exclusive. - */ -inline bool isScalar(std::vector const &dim) -{ - return dim.size() == 1 && dim[0] == 1; -} - -/** - * Tests whether the dimension represented by the vector "dim" - * corresponds to a vector quantity. - - * Note that isScalar, isVector, and isArray are mutually exclusive. - */ -inline bool isVector(std::vector const &dim) -{ - return dim.size() == 1 && dim[0] > 1; -} - -/** - * Tests whether the dimension represented by the vector "dim" - * corresponds to an array. - * - * Note that isScalar, isVector, and isArray are mutually exclusive. - */ -inline bool isArray(std::vector const &dim) -{ - return dim.size() > 1; -} - -/** - * Tests whether the dimension represented by the vector "dim" - * corresponds to a two-dimensional array. - */ -inline bool isMatrix(std::vector const &dim) -{ - return dim.size() == 2; -} +namespace jags { -/** - * Tests whether the dimension represented by the vector "dim" - * corresponds to a matrix with the same number of rows as columns. - */ -inline bool isSquareMatrix(std::vector const &dim) -{ - return dim.size() == 2 && dim[0] == dim[1]; + /** + * @short Test for flat dimensions + * + * A vector "dim" representing a dimension is considered "flat" if + * it is either empty or it includes elements equal to zero. Flat + * dimensions are unsuitable + * + * Note that isFlat, isScalar, isVector and isArray are mutually + * exclusive. Exactly one of them will return true for any given + * input vector. + * + * @see isScalar, isVector, isArray + */ + inline bool isFlat(std::vector const &dim) + { + return dim.empty() || + std::find(dim.begin(), dim.end(), 0U) != dim.end(); + } + + /** + * @short Test for scalar dimensions + * + * Tests whether the dimension represented by the vector "dim" + * corresponds to a scalar quantity. + * + * @see isFlat, isVector, isArray + */ + inline bool isScalar(std::vector const &dim) + { + return dim.size() == 1 && dim[0] == 1; + } + + /** + * @short Test for vector dimensions + * + * Tests whether the dimension represented by the vector "dim" + * corresponds to a vector quantity. + * + * @see isFlat, isScalar, isArray + */ + inline bool isVector(std::vector const &dim) + { + return dim.size() == 1 && dim[0] > 1; + } + + /** + * @short Test for array dimensions + * + * Tests whether the dimension represented by the vector "dim" + * corresponds to a matrix or higher-dimensional array. + * + * @see isFlat, isScalar, isArray + */ + inline bool isArray(std::vector const &dim) + { + return dim.size() > 1 && + std::find(dim.begin(), dim.end(), 0U) == dim.end(); + } + + /** + * @short Test for matrices + * + * Tests whether the dimension represented by the vector "dim" + * corresponds to a matrix (i.e. a two-dimensional array). + */ + inline bool isMatrix(std::vector const &dim) + { + return dim.size() == 2 && dim[0] != 0 && dim[1] != 0; + } + + /** + * + * @short Test for square matrices + * + * Tests whether the dimension represented by the vector "dim" + * corresponds to a square matrix. + */ + inline bool isSquareMatrix(std::vector const &dim) + { + return isMatrix(dim) && dim[0] == dim[1]; + } + + /** + * Returns the product of the elements of a vector of unsigned + * integers. The most common usage of this function is to + * calculate the number of elements in an array given its + * dimensions. + */ + unsigned int product(std::vector const &arg); + + /** + * @short Drops redundant dimensions + * + * Given a vector representing a dimension, returns a reduced + * vector in which dimensions that have only one level are + * removed. If the vector consists of only scalar dimensions + * then the return value is a vector of length 1 and value 1. + * + * Flat dimensions (corresponding to elements with value + * zero) are not removed. + */ + std::vector drop(std::vector const &dims); + + /** + * @short Gets a constant reference to a unique dimension + * + * Vectors of unsigned integers are frequently repeated objects in + * the JAGS library, and are typically used to represent + * dimensions of Nodes and NodeArrays. This function creates a + * unique constant reference to the requested vector, avoiding + * redundant copies of the vector taking up memory. + */ + std::vector const & + getUnique(std::vector const &dim); + + /** + * @short Getst a constant reference to a unique vector of dimension + * + * Vectors of vectors of unsigned integers are frequently repeated + * objects in the JAGS library (Typically as dimensions of + * parameters for Functions and Distributions). This function + * returns a reference to a unique copy of the requested vector in + * order to save memory. + */ + std::vector > const & + getUnique(std::vector > const &dimvec); + } -/** - * Returns the product of the elements of a vector. The most common - * usage of this function in the JAGS library is to calculate the - * number of elements in an array, given its dimensions. - */ -unsigned int product(std::vector const &arg); - -/** - * Drops redundant dimensions - */ -std::vector drop(std::vector const &dims); - -/** - * Returns a constant reference to a unique vector - * - * Vectors of unsigned integers are frequently repeated objects in - * the JAGS library (Typically as dimensions of Nodes). This function - * creates a unique constant reference to the requested vector. This - * avoids redundant copies of the vector taking up memory. - */ -std::vector const &getUnique(std::vector const &dim); - -/** - * Returns a constant reference to a unique vector - * - * Vectors of parameter dimensions are frequently repeated objects - * in the JAGS library. This function returns a reference to a unique - * copy of the requested vector in order to save memory. - * - */ -std::vector > const & -getUnique(std::vector > const &dimvec); - #endif /* DIM_H_ */ diff -Nru jags-3.4.0/src/include/util/integer.h jags-4.0.0/src/include/util/integer.h --- jags-3.4.0/src/include/util/integer.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/util/integer.h 2015-02-22 08:33:06.000000000 +0000 @@ -1,7 +1,11 @@ #ifndef UTIL_INTEGER_H_ #define UTIL_INTEGER_H_ +namespace jags { + bool checkInteger(double); int asInteger(double); +} /* namespace jags */ + #endif /* UTIL_INTEGER_H_ */ diff -Nru jags-3.4.0/src/include/util/Makefile.in jags-4.0.0/src/include/util/Makefile.in --- jags-3.4.0/src/include/util/Makefile.in 2013-08-30 13:23:26.000000000 +0000 +++ jags-4.0.0/src/include/util/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/include/util -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(utilinclude_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -63,10 +98,24 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(utilinclude_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -103,11 +152,30 @@ } am__installdirs = "$(DESTDIR)$(utilincludedir)" HEADERS = $(utilinclude_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -121,6 +189,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -190,10 +261,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -276,7 +343,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/include/util/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/include/util/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -322,26 +388,15 @@ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(utilincludedir)'; $(am__uninstall_files_from_dir) -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -353,15 +408,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -370,6 +421,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -509,20 +575,22 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ install-utilincludeHEADERS installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am tags uninstall uninstall-am \ + ps ps-am tags tags-am uninstall uninstall-am \ uninstall-utilincludeHEADERS +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru jags-3.4.0/src/include/version.h jags-4.0.0/src/include/version.h --- jags-3.4.0/src/include/version.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/include/version.h 2015-10-01 05:36:11.000000000 +0000 @@ -1,6 +1,8 @@ #ifndef JAGS_VERSION_H_ #define JAGS_VERSION_H_ +#define JAGS_MAJOR 4 + extern "C" { char const * jags_version(); } diff -Nru jags-3.4.0/src/jrmath/bd0.c jags-4.0.0/src/jrmath/bd0.c --- jags-3.4.0/src/jrmath/bd0.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/bd0.c 2015-02-22 20:20:57.000000000 +0000 @@ -4,7 +4,7 @@ * October 23, 2000. * * Merge in to R: - * Copyright (C) 2000, The R Core Development Team + * Copyright (C) 2000-2014 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -30,7 +30,7 @@ * in a manner that should be stable (with small relative error) * for all x and M=np. In particular for x/np close to 1, direct * evaluation fails, and evaluation is based on the Taylor series - * of log((1+v)/(1-v)) with v = (x-np)/(x+np). + * of log((1+v)/(1-v)) with v = (x-M)/(x+M) = (x-np)/(x+np). */ #include "nmath.h" @@ -42,15 +42,17 @@ if(!R_FINITE(x) || !R_FINITE(np) || np == 0.0) ML_ERR_return_NAN; if (fabs(x-np) < 0.1*(x+np)) { - v = (x-np)/(x+np); + v = (x-np)/(x+np); /* might underflow to 0 */ s = (x-np)*v;/* s using v -- change by MM */ + if(fabs(s) < DBL_MIN) return s; ej = 2*x*v; v = v*v; - for (j=1; ; j++) { /* Taylor series */ - ej *= v; + for (j = 1; j < 1000; j++) { /* Taylor series; 1000: no infinite loop + as |v| < .1, v^2000 is "zero" */ + ej *= v; /* = v^(2j+1) */ s1 = s+ej/((j<<1)+1); - if (s1==s) /* last term was effectively 0 */ - return(s1); + if (s1 == s) /* last term was effectively 0 */ + return s1 ; s = s1; } } diff -Nru jags-3.4.0/src/jrmath/bessel.h jags-4.0.0/src/jrmath/bessel.h --- jags-3.4.0/src/jrmath/bessel.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/bessel.h 2015-02-24 21:11:07.000000000 +0000 @@ -0,0 +1,142 @@ +/* + * R : A Computer Language for Statistical Data Analysis + * Copyright (C) 2001-2014 R Core Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + */ + +/* Constants und Documentation that apply to several of the + * ./bessel_[ijky].c files */ + +/* ******************************************************************* + + Explanation of machine-dependent constants + + beta = Radix for the floating-point system + minexp = Smallest representable power of beta + maxexp = Smallest power of beta that overflows + it = p = Number of bits (base-beta digits) in the mantissa + (significand) of a working precision (floating-point) variable + NSIG = Decimal significance desired. Should be set to + INT(LOG10(2)*it+1). Setting NSIG lower will result + in decreased accuracy while setting NSIG higher will + increase CPU time without increasing accuracy. The + truncation error is limited to a relative error of + T=.5*10^(-NSIG). + ENTEN = 10 ^ K, where K is the largest int such that + ENTEN is machine-representable in working precision + ENSIG = 10 ^ NSIG + RTNSIG = 10 ^ (-K) for the smallest int K such that K >= NSIG/4 + ENMTEN = Smallest ABS(X) such that X/4 does not underflow + XINF = Largest positive machine number; approximately beta ^ maxexp + == DBL_MAX (defined in #include ) + SQXMIN = Square root of beta ^ minexp = sqrt(DBL_MIN) + + EPS = The smallest positive floating-point number such that 1.0+EPS > 1.0 + = beta ^ (-p) == DBL_EPSILON + + + For I : + + EXPARG = Largest working precision argument that the library + EXP routine can handle and upper limit on the + magnitude of X when IZE=1; approximately LOG(beta ^ maxexp) + + For I and J : + + xlrg_IJ = xlrg_BESS_IJ (was = XLARGE). Upper limit on the magnitude of X + (when IZE=2 for I()). Bear in mind that if floor(abs(x)) =: N, then + at least N iterations of the backward recursion will be executed. + The value of 10 ^ 4 was used till Feb.2009, when it was increased + to 10 ^ 5 (= 1e5). + + For j : + XMIN_J = Smallest acceptable argument for RBESY; approximately + max(2*beta ^ minexp, 2/XINF), rounded up + + For Y : + + xlrg_Y = (was = XLARGE). Upper bound on X; + approximately 1/DEL, because the sine and cosine functions + have lost about half of their precision at that point. + + EPS_SINC = Machine number below which sin(x)/x = 1; approximately SQRT(EPS). + THRESH = Lower bound for use of the asymptotic form; + approximately AINT(-LOG10(EPS/2.0))+1.0 + + + For K : + + xmax_k = (was = XMAX). Upper limit on the magnitude of X when ize = 1; + i.e. maximal x for UNscaled answer. + + Solution to equation: + W(X) * (1 -1/8 X + 9/128 X^2) = beta ^ minexp + where W(X) = EXP(-X)*SQRT(PI/2X) + + -------------------------------------------------------------------- + + Approximate values for some important machines are: + + beta minexp maxexp it NSIG ENTEN ENSIG RTNSIG ENMTEN EXPARG + IEEE (IBM/XT, + SUN, etc.) (S.P.) 2 -126 128 24 8 1e38 1e8 1e-2 4.70e-38 88 + IEEE (...) (D.P.) 2 -1022 1024 53 16 1e308 1e16 1e-4 8.90e-308 709 + CRAY-1 (S.P.) 2 -8193 8191 48 15 1e2465 1e15 1e-4 1.84e-2466 5677 + Cyber 180/855 + under NOS (S.P.) 2 -975 1070 48 15 1e322 1e15 1e-4 1.25e-293 741 + IBM 3033 (D.P.) 16 -65 63 14 5 1e75 1e5 1e-2 2.16e-78 174 + VAX (S.P.) 2 -128 127 24 8 1e38 1e8 1e-2 1.17e-38 88 + VAX D-Format (D.P.) 2 -128 127 56 17 1e38 1e17 1e-5 1.17e-38 88 + VAX G-Format (D.P.) 2 -1024 1023 53 16 1e307 1e16 1e-4 2.22e-308 709 + + +And routine specific : + + xlrg_IJ xlrg_Y xmax_k EPS_SINC XMIN_J XINF THRESH + IEEE (IBM/XT, + SUN, etc.) (S.P.) 1e4 1e4 85.337 1e-4 2.36e-38 3.40e38 8. + IEEE (...) (D.P.) 1e4 1e8 705.342 1e-8 4.46e-308 1.79e308 16. + CRAY-1 (S.P.) 1e4 2e7 5674.858 5e-8 3.67e-2466 5.45e2465 15. + Cyber 180/855 + under NOS (S.P.) 1e4 2e7 672.788 5e-8 6.28e-294 1.26e322 15. + IBM 3033 (D.P.) 1e4 1e8 177.852 1e-8 2.77e-76 7.23e75 17. + VAX (S.P.) 1e4 1e4 86.715 1e-4 1.18e-38 1.70e38 8. + VAX e-Format (D.P.) 1e4 1e9 86.715 1e-9 1.18e-38 1.70e38 17. + VAX G-Format (D.P.) 1e4 1e8 706.728 1e-8 2.23e-308 8.98e307 16. + +*/ +#define nsig_BESS 16 +#define ensig_BESS 1e16 +#define rtnsig_BESS 1e-4 +#define enmten_BESS 8.9e-308 +#define enten_BESS 1e308 + +#define exparg_BESS 709. +#define xlrg_BESS_IJ 1e5 +#define xlrg_BESS_Y 1e8 +#define thresh_BESS_Y 16. + +#define xmax_BESS_K 705.342/* maximal x for UNscaled answer */ + + +/* sqrt(DBL_MIN) = 1.491668e-154 */ +#define sqxmin_BESS_K 1.49e-154 + +/* x < eps_sinc <==> sin(x)/x == 1 (particularly "==>"); + Linux (around 2001-02) gives 2.14946906753213e-08 + Solaris 2.5.1 gives 2.14911933289084e-08 +*/ +#define M_eps_sinc 2.149e-8 diff -Nru jags-3.4.0/src/jrmath/bessel_i.c jags-4.0.0/src/jrmath/bessel_i.c --- jags-3.4.0/src/jrmath/bessel_i.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/bessel_i.c 2015-09-10 05:42:23.000000000 +0000 @@ -0,0 +1,533 @@ +/* + * Mathlib : A C Library of Special Functions + * Copyright (C) 1998-2014 Ross Ihaka and the R Core team. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + */ + +/* DESCRIPTION --> see below */ + + +/* From http://www.netlib.org/specfun/ribesl Fortran translated by f2c,... + * ------------------------------=#---- Martin Maechler, ETH Zurich + */ +#include "nmath.h" +#include "bessel.h" + +#ifndef MATHLIB_STANDALONE +#include +#endif + +#define min0(x, y) (((x) <= (y)) ? (x) : (y)) + +static void I_bessel(double *x, double *alpha, int *nb, + int *ize, double *bi, int *ncalc); + +/* .Internal(besselI(*)) : */ +double bessel_i(double x, double alpha, double expo) +{ + int nb, ncalc, ize; + double na, *bi; +#ifndef MATHLIB_STANDALONE + const void *vmax; +#endif + +#ifdef IEEE_754 + /* NaNs propagated correctly */ + if (ISNAN(x) || ISNAN(alpha)) return x + alpha; +#endif + if (x < 0) { + ML_ERROR(ME_RANGE, "bessel_i"); + return ML_NAN; + } + ize = (int)expo; + na = floor(alpha); + if (alpha < 0) { + /* Using Abramowitz & Stegun 9.6.2 & 9.6.6 + * this may not be quite optimal (CPU and accuracy wise) */ + return(bessel_i(x, -alpha, expo) + + ((alpha == na) ? /* sin(pi * alpha) = 0 */ 0 : + bessel_k(x, -alpha, expo) * + ((ize == 1)? 2. : 2.*exp(-2.*x))/M_PI * sinpi(-alpha))); + } + nb = 1 + (int)na;/* nb-1 <= alpha < nb */ + alpha -= (double)(nb-1); +#ifdef MATHLIB_STANDALONE + bi = (double *) calloc(nb, sizeof(double)); + if (!bi) MATHLIB_ERROR("%s", _("bessel_i allocation error")); +#else + vmax = vmaxget(); + bi = (double *) R_alloc((size_t) nb, sizeof(double)); +#endif + I_bessel(&x, &alpha, &nb, &ize, bi, &ncalc); + if(ncalc != nb) {/* error input */ + if(ncalc < 0) + MATHLIB_WARNING4(_("bessel_i(%g): ncalc (=%d) != nb (=%d); alpha=%g. Arg. out of range?\n"), + x, ncalc, nb, alpha); + else + MATHLIB_WARNING2(_("bessel_i(%g,nu=%g): precision lost in result\n"), + x, alpha+(double)nb-1); + } + x = bi[nb-1]; +#ifdef MATHLIB_STANDALONE + free(bi); +#else + vmaxset(vmax); +#endif + return x; +} + +/* modified version of bessel_i that accepts a work array instead of + allocating one. */ +double bessel_i_ex(double x, double alpha, double expo, double *bi) +{ + int nb, ncalc, ize; + double na; + +#ifdef IEEE_754 + /* NaNs propagated correctly */ + if (ISNAN(x) || ISNAN(alpha)) return x + alpha; +#endif + if (x < 0) { + ML_ERROR(ME_RANGE, "bessel_i"); + return ML_NAN; + } + ize = (int)expo; + na = floor(alpha); + if (alpha < 0) { + /* Using Abramowitz & Stegun 9.6.2 & 9.6.6 + * this may not be quite optimal (CPU and accuracy wise) */ + return(bessel_i_ex(x, -alpha, expo, bi) + + ((alpha == na) ? 0 : + bessel_k_ex(x, -alpha, expo, bi) * + ((ize == 1)? 2. : 2.*exp(-2.*x))/M_PI * sinpi(-alpha))); + } + nb = 1 + (int)na;/* nb-1 <= alpha < nb */ + alpha -= (double)(nb-1); + I_bessel(&x, &alpha, &nb, &ize, bi, &ncalc); + if(ncalc != nb) {/* error input */ + if(ncalc < 0) + MATHLIB_WARNING4(_("bessel_i(%g): ncalc (=%d) != nb (=%d); alpha=%g. Arg. out of range?\n"), + x, ncalc, nb, alpha); + else + MATHLIB_WARNING2(_("bessel_i(%g,nu=%g): precision lost in result\n"), + x, alpha+(double)nb-1); + } + x = bi[nb-1]; + return x; +} + +static void I_bessel(double *x, double *alpha, int *nb, + int *ize, double *bi, int *ncalc) +{ +/* ------------------------------------------------------------------- + + This routine calculates Bessel functions I_(N+ALPHA) (X) + for non-negative argument X, and non-negative order N+ALPHA, + with or without exponential scaling. + + + Explanation of variables in the calling sequence + + X - Non-negative argument for which + I's or exponentially scaled I's (I*EXP(-X)) + are to be calculated. If I's are to be calculated, + X must be less than exparg_BESS (IZE=1) or xlrg_BESS_IJ (IZE=2), + (see bessel.h). + ALPHA - Fractional part of order for which + I's or exponentially scaled I's (I*EXP(-X)) are + to be calculated. 0 <= ALPHA < 1.0. + NB - Number of functions to be calculated, NB > 0. + The first function calculated is of order ALPHA, and the + last is of order (NB - 1 + ALPHA). + IZE - Type. IZE = 1 if unscaled I's are to be calculated, + = 2 if exponentially scaled I's are to be calculated. + BI - Output vector of length NB. If the routine + terminates normally (NCALC=NB), the vector BI contains the + functions I(ALPHA,X) through I(NB-1+ALPHA,X), or the + corresponding exponentially scaled functions. + NCALC - Output variable indicating possible errors. + Before using the vector BI, the user should check that + NCALC=NB, i.e., all orders have been calculated to + the desired accuracy. See error returns below. + + + ******************************************************************* + ******************************************************************* + + Error returns + + In case of an error, NCALC != NB, and not all I's are + calculated to the desired accuracy. + + NCALC < 0: An argument is out of range. For example, + NB <= 0, IZE is not 1 or 2, or IZE=1 and ABS(X) >= EXPARG_BESS. + In this case, the BI-vector is not calculated, and NCALC is + set to MIN0(NB,0)-1 so that NCALC != NB. + + NB > NCALC > 0: Not all requested function values could + be calculated accurately. This usually occurs because NB is + much larger than ABS(X). In this case, BI[N] is calculated + to the desired accuracy for N <= NCALC, but precision + is lost for NCALC < N <= NB. If BI[N] does not vanish + for N > NCALC (because it is too small to be represented), + and BI[N]/BI[NCALC] = 10**(-K), then only the first NSIG-K + significant figures of BI[N] can be trusted. + + + Intrinsic functions required are: + + DBLE, EXP, gamma_cody, INT, MAX, MIN, REAL, SQRT + + + Acknowledgement + + This program is based on a program written by David J. + Sookne (2) that computes values of the Bessel functions J or + I of float argument and long order. Modifications include + the restriction of the computation to the I Bessel function + of non-negative float argument, the extension of the computation + to arbitrary positive order, the inclusion of optional + exponential scaling, and the elimination of most underflow. + An earlier version was published in (3). + + References: "A Note on Backward Recurrence Algorithms," Olver, + F. W. J., and Sookne, D. J., Math. Comp. 26, 1972, + pp 941-947. + + "Bessel Functions of Real Argument and Integer Order," + Sookne, D. J., NBS Jour. of Res. B. 77B, 1973, pp + 125-132. + + "ALGORITHM 597, Sequence of Modified Bessel Functions + of the First Kind," Cody, W. J., Trans. Math. Soft., + 1983, pp. 242-245. + + Latest modification: May 30, 1989 + + Modified by: W. J. Cody and L. Stoltz + Applied Mathematics Division + Argonne National Laboratory + Argonne, IL 60439 +*/ + + /*------------------------------------------------------------------- + Mathematical constants + -------------------------------------------------------------------*/ + const static double const__ = 1.585; + + /* Local variables */ + int nend, intx, nbmx, k, l, n, nstart; + double pold, test, p, em, en, empal, emp2al, halfx, + aa, bb, cc, psave, plast, tover, psavel, sum, nu, twonu; + + /*Parameter adjustments */ + --bi; + nu = *alpha; + twonu = nu + nu; + + /*------------------------------------------------------------------- + Check for X, NB, OR IZE out of range. + ------------------------------------------------------------------- */ + if (*nb > 0 && *x >= 0. && (0. <= nu && nu < 1.) && + (1 <= *ize && *ize <= 2) ) { + + *ncalc = *nb; + if(*ize == 1 && *x > exparg_BESS) { + for(k=1; k <= *nb; k++) + bi[k]=ML_POSINF; /* the limit *is* = Inf */ + return; + } + if(*ize == 2 && *x > xlrg_BESS_IJ) { + for(k=1; k <= *nb; k++) + bi[k]= 0.; /* The limit exp(-x) * I_nu(x) --> 0 : */ + return; + } + intx = (int) (*x);/* fine, since *x <= xlrg_BESS_IJ <<< LONG_MAX */ + if (*x >= rtnsig_BESS) { /* "non-small" x ( >= 1e-4 ) */ +/* ------------------------------------------------------------------- + Initialize the forward sweep, the P-sequence of Olver + ------------------------------------------------------------------- */ + nbmx = *nb - intx; + n = intx + 1; + en = (double) (n + n) + twonu; + plast = 1.; + p = en / *x; + /* ------------------------------------------------ + Calculate general significance test + ------------------------------------------------ */ + test = ensig_BESS + ensig_BESS; + if (intx << 1 > nsig_BESS * 5) { + test = sqrt(test * p); + } else { + test /= JR_pow_di(const__, intx); + } + if (nbmx >= 3) { + /* -------------------------------------------------- + Calculate P-sequence until N = NB-1 + Check for possible overflow. + ------------------------------------------------ */ + tover = enten_BESS / ensig_BESS; + nstart = intx + 2; + nend = *nb - 1; + for (k = nstart; k <= nend; ++k) { + n = k; + en += 2.; + pold = plast; + plast = p; + p = en * plast / *x + pold; + if (p > tover) { + /* ------------------------------------------------ + To avoid overflow, divide P-sequence by TOVER. + Calculate P-sequence until ABS(P) > 1. + ---------------------------------------------- */ + tover = enten_BESS; + p /= tover; + plast /= tover; + psave = p; + psavel = plast; + nstart = n + 1; + do { + ++n; + en += 2.; + pold = plast; + plast = p; + p = en * plast / *x + pold; + } + while (p <= 1.); + + bb = en / *x; + /* ------------------------------------------------ + Calculate backward test, and find NCALC, + the highest N such that the test is passed. + ------------------------------------------------ */ + test = pold * plast / ensig_BESS; + test *= .5 - .5 / (bb * bb); + p = plast * tover; + --n; + en -= 2.; + nend = min0(*nb,n); + for (l = nstart; l <= nend; ++l) { + *ncalc = l; + pold = psavel; + psavel = psave; + psave = en * psavel / *x + pold; + if (psave * psavel > test) { + goto L90; + } + } + *ncalc = nend + 1; +L90: + --(*ncalc); + goto L120; + } + } + n = nend; + en = (double)(n + n) + twonu; + /*--------------------------------------------------- + Calculate special significance test for NBMX > 2. + --------------------------------------------------- */ + test = fmax2(test,sqrt(plast * ensig_BESS) * sqrt(p + p)); + } + /* -------------------------------------------------------- + Calculate P-sequence until significance test passed. + -------------------------------------------------------- */ + do { + ++n; + en += 2.; + pold = plast; + plast = p; + p = en * plast / *x + pold; + } while (p < test); + +L120: +/* ------------------------------------------------------------------- + Initialize the backward recursion and the normalization sum. + ------------------------------------------------------------------- */ + ++n; + en += 2.; + bb = 0.; + aa = 1. / p; + em = (double) n - 1.; + empal = em + nu; + emp2al = em - 1. + twonu; + sum = aa * empal * emp2al / em; + nend = n - *nb; + if (nend < 0) { + /* ----------------------------------------------------- + N < NB, so store BI[N] and set higher orders to 0.. + ----------------------------------------------------- */ + bi[n] = aa; + nend = -nend; + for (l = 1; l <= nend; ++l) { + bi[n + l] = 0.; + } + } else { + if (nend > 0) { + /* ----------------------------------------------------- + Recur backward via difference equation, + calculating (but not storing) BI[N], until N = NB. + --------------------------------------------------- */ + + for (l = 1; l <= nend; ++l) { + --n; + en -= 2.; + cc = bb; + bb = aa; + /* for x ~= 1500, sum would overflow to 'inf' here, + * and the final bi[] /= sum would give 0 wrongly; + * RE-normalize (aa, sum) here -- no need to undo */ + if(nend > 100 && aa > 1e200) { + /* multiply by 2^-900 = 1.18e-271 */ + cc = ldexp(cc, -900); + bb = ldexp(bb, -900); + sum = ldexp(sum,-900); + } + aa = en * bb / *x + cc; + em -= 1.; + emp2al -= 1.; + if (n == 1) { + break; + } + if (n == 2) { + emp2al = 1.; + } + empal -= 1.; + sum = (sum + aa * empal) * emp2al / em; + } + } + /* --------------------------------------------------- + Store BI[NB] + --------------------------------------------------- */ + bi[n] = aa; + if (*nb <= 1) { + sum = sum + sum + aa; + goto L230; + } + /* ------------------------------------------------- + Calculate and Store BI[NB-1] + ------------------------------------------------- */ + --n; + en -= 2.; + bi[n] = en * aa / *x + bb; + if (n == 1) { + goto L220; + } + em -= 1.; + if (n == 2) + emp2al = 1.; + else + emp2al -= 1.; + + empal -= 1.; + sum = (sum + bi[n] * empal) * emp2al / em; + } + nend = n - 2; + if (nend > 0) { + /* -------------------------------------------- + Calculate via difference equation + and store BI[N], until N = 2. + ------------------------------------------ */ + for (l = 1; l <= nend; ++l) { + --n; + en -= 2.; + bi[n] = en * bi[n + 1] / *x + bi[n + 2]; + em -= 1.; + if (n == 2) + emp2al = 1.; + else + emp2al -= 1.; + empal -= 1.; + sum = (sum + bi[n] * empal) * emp2al / em; + } + } + /* ---------------------------------------------- + Calculate BI[1] + -------------------------------------------- */ + bi[1] = 2. * empal * bi[2] / *x + bi[3]; +L220: + sum = sum + sum + bi[1]; + +L230: + /* --------------------------------------------------------- + Normalize. Divide all BI[N] by sum. + --------------------------------------------------------- */ + if (nu != 0.) + sum *= (jags_gamma_cody(1. + nu) * pow(*x * .5, -nu)); + if (*ize == 1) + sum *= exp(-(*x)); + aa = enmten_BESS; + if (sum > 1.) + aa *= sum; + for (n = 1; n <= *nb; ++n) { + if (bi[n] < aa) + bi[n] = 0.; + else + bi[n] /= sum; + } + return; + } else { /* small x < 1e-4 */ + /* ----------------------------------------------------------- + Two-term ascending series for small X. + -----------------------------------------------------------*/ + aa = 1.; + empal = 1. + nu; +#ifdef IEEE_754 + /* No need to check for underflow */ + halfx = .5 * *x; +#else + if (*x > enmten_BESS) */ + halfx = .5 * *x; + else + halfx = 0.; +#endif + if (nu != 0.) + aa = pow(halfx, nu) / jags_gamma_cody(empal); + if (*ize == 2) + aa *= exp(-(*x)); + bb = halfx * halfx; + bi[1] = aa + aa * bb / empal; + if (*x != 0. && bi[1] == 0.) + *ncalc = 0; + if (*nb > 1) { + if (*x == 0.) { + for (n = 2; n <= *nb; ++n) + bi[n] = 0.; + } else { + /* ------------------------------------------------- + Calculate higher-order functions. + ------------------------------------------------- */ + cc = halfx; + tover = (enmten_BESS + enmten_BESS) / *x; + if (bb != 0.) + tover = enmten_BESS / bb; + for (n = 2; n <= *nb; ++n) { + aa /= empal; + empal += 1.; + aa *= cc; + if (aa <= tover * empal) + bi[n] = aa = 0.; + else + bi[n] = aa + aa * bb / empal; + if (bi[n] == 0. && *ncalc > n) + *ncalc = n - 1; + } + } + } + } + } else { /* argument out of range */ + *ncalc = min0(*nb,0) - 1; + } +} diff -Nru jags-3.4.0/src/jrmath/bessel_j.c jags-4.0.0/src/jrmath/bessel_j.c --- jags-3.4.0/src/jrmath/bessel_j.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/bessel_j.c 2015-09-10 05:42:23.000000000 +0000 @@ -0,0 +1,586 @@ +/* + * Mathlib : A C Library of Special Functions + * Copyright (C) 1998-2015 Ross Ihaka and the R Core team. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + */ + +/* DESCRIPTION --> see below */ + + +/* From http://www.netlib.org/specfun/rjbesl Fortran translated by f2c,... + * ------------------------------=#---- Martin Maechler, ETH Zurich + * Additional code for nu == alpha < 0 MM + */ +#include "nmath.h" +#include "bessel.h" + +#ifndef MATHLIB_STANDALONE +#include +#endif + +#define min0(x, y) (((x) <= (y)) ? (x) : (y)) + +static void J_bessel(double *x, double *alpha, int *nb, + double *b, int *ncalc); + +// unused now from R +double bessel_j(double x, double alpha) +{ + int nb, ncalc; + double na, *bj; +#ifndef MATHLIB_STANDALONE + const void *vmax; +#endif + +#ifdef IEEE_754 + /* NaNs propagated correctly */ + if (ISNAN(x) || ISNAN(alpha)) return x + alpha; +#endif + if (x < 0) { + ML_ERROR(ME_RANGE, "bessel_j"); + return ML_NAN; + } + na = floor(alpha); + if (alpha < 0) { + /* Using Abramowitz & Stegun 9.1.2 + * this may not be quite optimal (CPU and accuracy wise) */ + return(bessel_j(x, -alpha) * cospi(alpha) + + ((alpha == na) ? 0 : + bessel_y(x, -alpha) * sinpi(alpha))); + } + else if (alpha > 1e7) { + MATHLIB_WARNING("besselJ(x, nu): nu=%g too large for bessel_j() algorithm", alpha); + return ML_NAN; + } + nb = 1 + (int)na; /* nb-1 <= alpha < nb */ + alpha -= (double)(nb-1); // ==> alpha' in [0, 1) +#ifdef MATHLIB_STANDALONE + bj = (double *) calloc(nb, sizeof(double)); + if (!bj) MATHLIB_ERROR("%s", _("bessel_j allocation error")); +#else + vmax = vmaxget(); + bj = (double *) R_alloc((size_t) nb, sizeof(double)); +#endif + J_bessel(&x, &alpha, &nb, bj, &ncalc); + if(ncalc != nb) {/* error input */ + if(ncalc < 0) + MATHLIB_WARNING4(_("bessel_j(%g): ncalc (=%d) != nb (=%d); alpha=%g. Arg. out of range?\n"), + x, ncalc, nb, alpha); + else + MATHLIB_WARNING2(_("bessel_j(%g,nu=%g): precision lost in result\n"), + x, alpha+(double)nb-1); + } + x = bj[nb-1]; +#ifdef MATHLIB_STANDALONE + free(bj); +#else + vmaxset(vmax); +#endif + return x; +} + +/* Called from R: modified version of bessel_j(), accepting a work array + * instead of allocating one. */ +double bessel_j_ex(double x, double alpha, double *bj) +{ + int nb, ncalc; + double na; + +#ifdef IEEE_754 + /* NaNs propagated correctly */ + if (ISNAN(x) || ISNAN(alpha)) return x + alpha; +#endif + if (x < 0) { + ML_ERROR(ME_RANGE, "bessel_j"); + return ML_NAN; + } + na = floor(alpha); + if (alpha < 0) { + /* Using Abramowitz & Stegun 9.1.2 + * this may not be quite optimal (CPU and accuracy wise) */ + return(bessel_j_ex(x, -alpha, bj) * cospi(alpha) + + ((alpha == na) ? 0 : + bessel_y_ex(x, -alpha, bj) * sinpi(alpha))); + } + else if (alpha > 1e7) { + MATHLIB_WARNING("besselJ(x, nu): nu=%g too large for bessel_j() algorithm", alpha); + return ML_NAN; + } + nb = 1 + (int)na; /* nb-1 <= alpha < nb */ + alpha -= (double)(nb-1); // ==> alpha' in [0, 1) + J_bessel(&x, &alpha, &nb, bj, &ncalc); + if(ncalc != nb) {/* error input */ + if(ncalc < 0) + MATHLIB_WARNING4(_("bessel_j(%g): ncalc (=%d) != nb (=%d); alpha=%g. Arg. out of range?\n"), + x, ncalc, nb, alpha); + else + MATHLIB_WARNING2(_("bessel_j(%g,nu=%g): precision lost in result\n"), + x, alpha+(double)nb-1); + } + x = bj[nb-1]; + return x; +} + +static void J_bessel(double *x, double *alpha, int *nb, + double *b, int *ncalc) +{ +/* + Calculates Bessel functions J_{n+alpha} (x) + for non-negative argument x, and non-negative order n+alpha, n = 0,1,..,nb-1. + + Explanation of variables in the calling sequence. + + X - Non-negative argument for which J's are to be calculated. + ALPHA - Fractional part of order for which + J's are to be calculated. 0 <= ALPHA < 1. + NB - Number of functions to be calculated, NB >= 1. + The first function calculated is of order ALPHA, and the + last is of order (NB - 1 + ALPHA). + B - Output vector of length NB. If RJBESL + terminates normally (NCALC=NB), the vector B contains the + functions J/ALPHA/(X) through J/NB-1+ALPHA/(X). + NCALC - Output variable indicating possible errors. + Before using the vector B, the user should check that + NCALC=NB, i.e., all orders have been calculated to + the desired accuracy. See the following + + **************************************************************** + + Error return codes + + In case of an error, NCALC != NB, and not all J's are + calculated to the desired accuracy. + + NCALC < 0: An argument is out of range. For example, + NBES <= 0, ALPHA < 0 or > 1, or X is too large. + In this case, b[1] is set to zero, the remainder of the + B-vector is not calculated, and NCALC is set to + MIN(NB,0)-1 so that NCALC != NB. + + NB > NCALC > 0: Not all requested function values could + be calculated accurately. This usually occurs because NB is + much larger than ABS(X). In this case, b[N] is calculated + to the desired accuracy for N <= NCALC, but precision + is lost for NCALC < N <= NB. If b[N] does not vanish + for N > NCALC (because it is too small to be represented), + and b[N]/b[NCALC] = 10^(-K), then only the first NSIG - K + significant figures of b[N] can be trusted. + + + Acknowledgement + + This program is based on a program written by David J. Sookne + (2) that computes values of the Bessel functions J or I of float + argument and long order. Modifications include the restriction + of the computation to the J Bessel function of non-negative float + argument, the extension of the computation to arbitrary positive + order, and the elimination of most underflow. + + References: + + Olver, F.W.J., and Sookne, D.J. (1972) + "A Note on Backward Recurrence Algorithms"; + Math. Comp. 26, 941-947. + + Sookne, D.J. (1973) + "Bessel Functions of Real Argument and Integer Order"; + NBS Jour. of Res. B. 77B, 125-132. + + Latest modification: March 19, 1990 + + Author: W. J. Cody + Applied Mathematics Division + Argonne National Laboratory + Argonne, IL 60439 + ******************************************************************* + */ + +/* --------------------------------------------------------------------- + Mathematical constants + + PI2 = 2 / PI + TWOPI1 = first few significant digits of 2 * PI + TWOPI2 = (2*PI - TWOPI1) to working precision, i.e., + TWOPI1 + TWOPI2 = 2 * PI to extra precision. + --------------------------------------------------------------------- */ + const static double pi2 = .636619772367581343075535; + const static double twopi1 = 6.28125; + const static double twopi2 = .001935307179586476925286767; + +/*--------------------------------------------------------------------- + * Factorial(N) + *--------------------------------------------------------------------- */ + const static double fact[25] = { 1.,1.,2.,6.,24.,120.,720.,5040.,40320., + 362880.,3628800.,39916800.,479001600.,6227020800.,87178291200., + 1.307674368e12,2.0922789888e13,3.55687428096e14,6.402373705728e15, + 1.21645100408832e17,2.43290200817664e18,5.109094217170944e19, + 1.12400072777760768e21,2.585201673888497664e22, + 6.2044840173323943936e23 }; + + /* Local variables */ + int nend, intx, nbmx, i, j, k, l, m, n, nstart; + + double nu, twonu, capp, capq, pold, vcos, test, vsin; + double p, s, t, z, alpem, halfx, aa, bb, cc, psave, plast; + double tover, t1, alp2em, em, en, xc, xk, xm, psavel, gnu, xin, sum; + + + /* Parameter adjustment */ + --b; + + nu = *alpha; + twonu = nu + nu; + + /*------------------------------------------------------------------- + Check for out of range arguments. + -------------------------------------------------------------------*/ + if (*nb > 0 && *x >= 0. && 0. <= nu && nu < 1.) { + + *ncalc = *nb; + if(*x > xlrg_BESS_IJ) { + ML_ERROR(ME_RANGE, "J_bessel"); + /* indeed, the limit is 0, + * but the cutoff happens too early */ + for(i=1; i <= *nb; i++) + b[i] = 0.; /*was ML_POSINF (really nonsense) */ + return; + } + intx = (int) (*x); + /* Initialize result array to zero. */ + for (i = 1; i <= *nb; ++i) + b[i] = 0.; + + /*=================================================================== + Branch into 3 cases : + 1) use 2-term ascending series for small X + 2) use asymptotic form for large X when NB is not too large + 3) use recursion otherwise + ===================================================================*/ + + if (*x < rtnsig_BESS) { + /* --------------------------------------------------------------- + Two-term ascending series for small X. + --------------------------------------------------------------- */ + alpem = 1. + nu; + + halfx = (*x > enmten_BESS) ? .5 * *x : 0.; + aa = (nu != 0.) ? pow(halfx, nu) / (nu * jags_gamma_cody(nu)) : 1.; + bb = (*x + 1. > 1.)? -halfx * halfx : 0.; + b[1] = aa + aa * bb / alpem; + if (*x != 0. && b[1] == 0.) + *ncalc = 0; + + if (*nb != 1) { + if (*x <= 0.) { + for (n = 2; n <= *nb; ++n) + b[n] = 0.; + } + else { + /* ---------------------------------------------- + Calculate higher order functions. + ---------------------------------------------- */ + if (bb == 0.) + tover = (enmten_BESS + enmten_BESS) / *x; + else + tover = enmten_BESS / bb; + cc = halfx; + for (n = 2; n <= *nb; ++n) { + aa /= alpem; + alpem += 1.; + aa *= cc; + if (aa <= tover * alpem) + aa = 0.; + + b[n] = aa + aa * bb / alpem; + if (b[n] == 0. && *ncalc > n) + *ncalc = n - 1; + } + } + } + } else if (*x > 25. && *nb <= intx + 1) { + /* ------------------------------------------------------------ + Asymptotic series for X > 25 (and not too large nb) + ------------------------------------------------------------ */ + xc = sqrt(pi2 / *x); + xin = 1 / (64 * *x * *x); + if (*x >= 130.) m = 4; + else if (*x >= 35.) m = 8; + else m = 11; + xm = 4. * (double) m; + /* ------------------------------------------------ + Argument reduction for SIN and COS routines. + ------------------------------------------------ */ + t = trunc(*x / (twopi1 + twopi2) + .5); + z = (*x - t * twopi1) - t * twopi2 - (nu + .5) / pi2; + vsin = sin(z); + vcos = cos(z); + gnu = twonu; + for (i = 1; i <= 2; ++i) { + s = (xm - 1. - gnu) * (xm - 1. + gnu) * xin * .5; + t = (gnu - (xm - 3.)) * (gnu + (xm - 3.)); + t1= (gnu - (xm + 1.)) * (gnu + (xm + 1.)); + k = m + m; + capp = s * t / fact[k]; + capq = s * t1/ fact[k + 1]; + xk = xm; + for (; k >= 4; k -= 2) {/* k + 2(j-2) == 2m */ + xk -= 4.; + s = (xk - 1. - gnu) * (xk - 1. + gnu); + t1 = t; + t = (gnu - (xk - 3.)) * (gnu + (xk - 3.)); + capp = (capp + 1. / fact[k - 2]) * s * t * xin; + capq = (capq + 1. / fact[k - 1]) * s * t1 * xin; + + } + capp += 1.; + capq = (capq + 1.) * (gnu * gnu - 1.) * (.125 / *x); + b[i] = xc * (capp * vcos - capq * vsin); + if (*nb == 1) + return; + + /* vsin <--> vcos */ t = vsin; vsin = -vcos; vcos = t; + gnu += 2.; + } + /* ----------------------------------------------- + If NB > 2, compute J(X,ORDER+I) for I = 2, NB-1 + ----------------------------------------------- */ + if (*nb > 2) + for (gnu = twonu + 2., j = 3; j <= *nb; j++, gnu += 2.) + b[j] = gnu * b[j - 1] / *x - b[j - 2]; + } + else { + /* rtnsig_BESS <= x && ( x <= 25 || intx+1 < *nb ) : + -------------------------------------------------------- + Use recurrence to generate results. + First initialize the calculation of P*S. + -------------------------------------------------------- */ + nbmx = *nb - intx; + n = intx + 1; + en = (double)(n + n) + twonu; + plast = 1.; + p = en / *x; + /* --------------------------------------------------- + Calculate general significance test. + --------------------------------------------------- */ + test = ensig_BESS + ensig_BESS; + if (nbmx >= 3) { + /* ------------------------------------------------------------ + Calculate P*S until N = NB-1. Check for possible overflow. + ---------------------------------------------------------- */ + tover = enten_BESS / ensig_BESS; + nstart = intx + 2; + nend = *nb - 1; + en = (double) (nstart + nstart) - 2. + twonu; + for (k = nstart; k <= nend; ++k) { + n = k; + en += 2.; + pold = plast; + plast = p; + p = en * plast / *x - pold; + if (p > tover) { + /* ------------------------------------------- + To avoid overflow, divide P*S by TOVER. + Calculate P*S until ABS(P) > 1. + -------------------------------------------*/ + tover = enten_BESS; + p /= tover; + plast /= tover; + psave = p; + psavel = plast; + nstart = n + 1; + do { + ++n; + en += 2.; + pold = plast; + plast = p; + p = en * plast / *x - pold; + } while (p <= 1.); + + bb = en / *x; + /* ----------------------------------------------- + Calculate backward test and find NCALC, + the highest N such that the test is passed. + ----------------------------------------------- */ + test = pold * plast * (.5 - .5 / (bb * bb)); + test /= ensig_BESS; + p = plast * tover; + --n; + en -= 2.; + nend = min0(*nb,n); + for (l = nstart; l <= nend; ++l) { + pold = psavel; + psavel = psave; + psave = en * psavel / *x - pold; + if (psave * psavel > test) { + *ncalc = l - 1; + goto L190; + } + } + *ncalc = nend; + goto L190; + } + } + n = nend; + en = (double) (n + n) + twonu; + /* ----------------------------------------------------- + Calculate special significance test for NBMX > 2. + -----------------------------------------------------*/ + test = fmax2(test, sqrt(plast * ensig_BESS) * sqrt(p + p)); + } + /* ------------------------------------------------ + Calculate P*S until significance test passes. */ + do { + ++n; + en += 2.; + pold = plast; + plast = p; + p = en * plast / *x - pold; + } while (p < test); + +L190: + /*--------------------------------------------------------------- + Initialize the backward recursion and the normalization sum. + --------------------------------------------------------------- */ + ++n; + en += 2.; + bb = 0.; + aa = 1. / p; + m = n / 2; + em = (double)m; + m = (n << 1) - (m << 2);/* = 2 n - 4 (n/2) + = 0 for even, 2 for odd n */ + if (m == 0) + sum = 0.; + else { + alpem = em - 1. + nu; + alp2em = em + em + nu; + sum = aa * alpem * alp2em / em; + } + nend = n - *nb; + /* if (nend > 0) */ + /* -------------------------------------------------------- + Recur backward via difference equation, calculating + (but not storing) b[N], until N = NB. + -------------------------------------------------------- */ + for (l = 1; l <= nend; ++l) { + --n; + en -= 2.; + cc = bb; + bb = aa; + aa = en * bb / *x - cc; + m = m ? 0 : 2; /* m = 2 - m failed on gcc4-20041019 */ + if (m != 0) { + em -= 1.; + alp2em = em + em + nu; + if (n == 1) + break; + + alpem = em - 1. + nu; + if (alpem == 0.) + alpem = 1.; + sum = (sum + aa * alp2em) * alpem / em; + } + } + /*-------------------------------------------------- + Store b[NB]. + --------------------------------------------------*/ + b[n] = aa; + if (nend >= 0) { + if (*nb <= 1) { + if (nu + 1. == 1.) + alp2em = 1.; + else + alp2em = nu; + sum += b[1] * alp2em; + goto L250; + } + else {/*-- nb >= 2 : --------------------------- + Calculate and store b[NB-1]. + ----------------------------------------*/ + --n; + en -= 2.; + b[n] = en * aa / *x - bb; + if (n == 1) + goto L240; + + m = m ? 0 : 2; /* m = 2 - m failed on gcc4-20041019 */ + if (m != 0) { + em -= 1.; + alp2em = em + em + nu; + alpem = em - 1. + nu; + if (alpem == 0.) + alpem = 1.; + sum = (sum + b[n] * alp2em) * alpem / em; + } + } + } + + /* if (n - 2 != 0) */ + /* -------------------------------------------------------- + Calculate via difference equation and store b[N], + until N = 2. + -------------------------------------------------------- */ + for (n = n-1; n >= 2; n--) { + en -= 2.; + b[n] = en * b[n + 1] / *x - b[n + 2]; + m = m ? 0 : 2; /* m = 2 - m failed on gcc4-20041019 */ + if (m != 0) { + em -= 1.; + alp2em = em + em + nu; + alpem = em - 1. + nu; + if (alpem == 0.) + alpem = 1.; + sum = (sum + b[n] * alp2em) * alpem / em; + } + } + /* --------------------------------------- + Calculate b[1]. + -----------------------------------------*/ + b[1] = 2. * (nu + 1.) * b[2] / *x - b[3]; + +L240: + em -= 1.; + alp2em = em + em + nu; + if (alp2em == 0.) + alp2em = 1.; + sum += b[1] * alp2em; + +L250: + /* --------------------------------------------------- + Normalize. Divide all b[N] by sum. + ---------------------------------------------------*/ +/* if (nu + 1. != 1.) poor test */ + if(fabs(nu) > 1e-15) + sum *= (jags_gamma_cody(nu) * pow(.5* *x, -nu)); + + aa = enmten_BESS; + if (sum > 1.) + aa *= sum; + for (n = 1; n <= *nb; ++n) { + if (fabs(b[n]) < aa) + b[n] = 0.; + else + b[n] /= sum; + } + } + + } + else { + /* Error return -- X, NB, or ALPHA is out of range : */ + b[1] = 0.; + *ncalc = min0(*nb,0) - 1; + } +} diff -Nru jags-3.4.0/src/jrmath/bessel_k.c jags-4.0.0/src/jrmath/bessel_k.c --- jags-3.4.0/src/jrmath/bessel_k.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/bessel_k.c 2015-09-10 05:42:23.000000000 +0000 @@ -0,0 +1,561 @@ +/* + * Mathlib : A C Library of Special Functions + * Copyright (C) 1998-2014 Ross Ihaka and the R Core team. + * Copyright (C) 2002-3 The R Foundation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + */ + +/* DESCRIPTION --> see below */ + + +/* From http://www.netlib.org/specfun/rkbesl Fortran translated by f2c,... + * ------------------------------=#---- Martin Maechler, ETH Zurich + */ +#include "nmath.h" +#include "bessel.h" + +#ifndef MATHLIB_STANDALONE +#include +#endif + +#define min0(x, y) (((x) <= (y)) ? (x) : (y)) +#define max0(x, y) (((x) <= (y)) ? (y) : (x)) + +static void K_bessel(double *x, double *alpha, int *nb, + int *ize, double *bk, int *ncalc); + +double bessel_k(double x, double alpha, double expo) +{ + int nb, ncalc, ize; + double *bk; +#ifndef MATHLIB_STANDALONE + const void *vmax; +#endif + +#ifdef IEEE_754 + /* NaNs propagated correctly */ + if (ISNAN(x) || ISNAN(alpha)) return x + alpha; +#endif + if (x < 0) { + ML_ERROR(ME_RANGE, "bessel_k"); + return ML_NAN; + } + ize = (int)expo; + if(alpha < 0) + alpha = -alpha; + nb = 1+ (int)floor(alpha);/* nb-1 <= |alpha| < nb */ + alpha -= (double)(nb-1); +#ifdef MATHLIB_STANDALONE + bk = (double *) calloc(nb, sizeof(double)); + if (!bk) MATHLIB_ERROR("%s", _("bessel_k allocation error")); +#else + vmax = vmaxget(); + bk = (double *) R_alloc((size_t) nb, sizeof(double)); +#endif + K_bessel(&x, &alpha, &nb, &ize, bk, &ncalc); + if(ncalc != nb) {/* error input */ + if(ncalc < 0) + MATHLIB_WARNING4(_("bessel_k(%g): ncalc (=%d) != nb (=%d); alpha=%g. Arg. out of range?\n"), + x, ncalc, nb, alpha); + else + MATHLIB_WARNING2(_("bessel_k(%g,nu=%g): precision lost in result\n"), + x, alpha+(double)nb-1); + } + x = bk[nb-1]; +#ifdef MATHLIB_STANDALONE + free(bk); +#else + vmaxset(vmax); +#endif + return x; +} + +/* modified version of bessel_k that accepts a work array instead of + allocating one. */ +double bessel_k_ex(double x, double alpha, double expo, double *bk) +{ + int nb, ncalc, ize; + +#ifdef IEEE_754 + /* NaNs propagated correctly */ + if (ISNAN(x) || ISNAN(alpha)) return x + alpha; +#endif + if (x < 0) { + ML_ERROR(ME_RANGE, "bessel_k"); + return ML_NAN; + } + ize = (int)expo; + if(alpha < 0) + alpha = -alpha; + nb = 1+ (int)floor(alpha);/* nb-1 <= |alpha| < nb */ + alpha -= (double)(nb-1); + K_bessel(&x, &alpha, &nb, &ize, bk, &ncalc); + if(ncalc != nb) {/* error input */ + if(ncalc < 0) + MATHLIB_WARNING4(_("bessel_k(%g): ncalc (=%d) != nb (=%d); alpha=%g. Arg. out of range?\n"), + x, ncalc, nb, alpha); + else + MATHLIB_WARNING2(_("bessel_k(%g,nu=%g): precision lost in result\n"), + x, alpha+(double)nb-1); + } + x = bk[nb-1]; + return x; +} + +static void K_bessel(double *x, double *alpha, int *nb, + int *ize, double *bk, int *ncalc) +{ +/*------------------------------------------------------------------- + + This routine calculates modified Bessel functions + of the third kind, K_(N+ALPHA) (X), for non-negative + argument X, and non-negative order N+ALPHA, with or without + exponential scaling. + + Explanation of variables in the calling sequence + + X - Non-negative argument for which + K's or exponentially scaled K's (K*EXP(X)) + are to be calculated. If K's are to be calculated, + X must not be greater than XMAX_BESS_K. + ALPHA - Fractional part of order for which + K's or exponentially scaled K's (K*EXP(X)) are + to be calculated. 0 <= ALPHA < 1.0. + NB - Number of functions to be calculated, NB > 0. + The first function calculated is of order ALPHA, and the + last is of order (NB - 1 + ALPHA). + IZE - Type. IZE = 1 if unscaled K's are to be calculated, + = 2 if exponentially scaled K's are to be calculated. + BK - Output vector of length NB. If the + routine terminates normally (NCALC=NB), the vector BK + contains the functions K(ALPHA,X), ... , K(NB-1+ALPHA,X), + or the corresponding exponentially scaled functions. + If (0 < NCALC < NB), BK(I) contains correct function + values for I <= NCALC, and contains the ratios + K(ALPHA+I-1,X)/K(ALPHA+I-2,X) for the rest of the array. + NCALC - Output variable indicating possible errors. + Before using the vector BK, the user should check that + NCALC=NB, i.e., all orders have been calculated to + the desired accuracy. See error returns below. + + + ******************************************************************* + + Error returns + + In case of an error, NCALC != NB, and not all K's are + calculated to the desired accuracy. + + NCALC < -1: An argument is out of range. For example, + NB <= 0, IZE is not 1 or 2, or IZE=1 and ABS(X) >= XMAX_BESS_K. + In this case, the B-vector is not calculated, + and NCALC is set to MIN0(NB,0)-2 so that NCALC != NB. + NCALC = -1: Either K(ALPHA,X) >= XINF or + K(ALPHA+NB-1,X)/K(ALPHA+NB-2,X) >= XINF. In this case, + the B-vector is not calculated. Note that again + NCALC != NB. + + 0 < NCALC < NB: Not all requested function values could + be calculated accurately. BK(I) contains correct function + values for I <= NCALC, and contains the ratios + K(ALPHA+I-1,X)/K(ALPHA+I-2,X) for the rest of the array. + + + Intrinsic functions required are: + + ABS, AINT, EXP, INT, LOG, MAX, MIN, SINH, SQRT + + + Acknowledgement + + This program is based on a program written by J. B. Campbell + (2) that computes values of the Bessel functions K of float + argument and float order. Modifications include the addition + of non-scaled functions, parameterization of machine + dependencies, and the use of more accurate approximations + for SINH and SIN. + + References: "On Temme's Algorithm for the Modified Bessel + Functions of the Third Kind," Campbell, J. B., + TOMS 6(4), Dec. 1980, pp. 581-586. + + "A FORTRAN IV Subroutine for the Modified Bessel + Functions of the Third Kind of Real Order and Real + Argument," Campbell, J. B., Report NRC/ERB-925, + National Research Council, Canada. + + Latest modification: May 30, 1989 + + Modified by: W. J. Cody and L. Stoltz + Applied Mathematics Division + Argonne National Laboratory + Argonne, IL 60439 + + ------------------------------------------------------------------- +*/ + /*--------------------------------------------------------------------- + * Mathematical constants + * A = LOG(2) - Euler's constant + * D = SQRT(2/PI) + ---------------------------------------------------------------------*/ + const static double a = .11593151565841244881; + + /*--------------------------------------------------------------------- + P, Q - Approximation for LOG(GAMMA(1+ALPHA))/ALPHA + Euler's constant + Coefficients converted from hex to decimal and modified + by W. J. Cody, 2/26/82 */ + const static double p[8] = { .805629875690432845,20.4045500205365151, + 157.705605106676174,536.671116469207504,900.382759291288778, + 730.923886650660393,229.299301509425145,.822467033424113231 }; + const static double q[7] = { 29.4601986247850434,277.577868510221208, + 1206.70325591027438,2762.91444159791519,3443.74050506564618, + 2210.63190113378647,572.267338359892221 }; + /* R, S - Approximation for (1-ALPHA*PI/SIN(ALPHA*PI))/(2.D0*ALPHA) */ + const static double r[5] = { -.48672575865218401848,13.079485869097804016, + -101.96490580880537526,347.65409106507813131, + 3.495898124521934782e-4 }; + const static double s[4] = { -25.579105509976461286,212.57260432226544008, + -610.69018684944109624,422.69668805777760407 }; + /* T - Approximation for SINH(Y)/Y */ + const static double t[6] = { 1.6125990452916363814e-10, + 2.5051878502858255354e-8,2.7557319615147964774e-6, + 1.9841269840928373686e-4,.0083333333333334751799, + .16666666666666666446 }; + /*---------------------------------------------------------------------*/ + const static double estm[6] = { 52.0583,5.7607,2.7782,14.4303,185.3004, 9.3715 }; + const static double estf[7] = { 41.8341,7.1075,6.4306,42.511,1.35633,84.5096,20.}; + + /* Local variables */ + int iend, i, j, k, m, ii, mplus1; + double x2by4, twox, c, blpha, ratio, wminf; + double d1, d2, d3, f0, f1, f2, p0, q0, t1, t2, twonu; + double dm, ex, bk1, bk2, nu; + + ii = 0; /* -Wall */ + + ex = *x; + nu = *alpha; + *ncalc = min0(*nb,0) - 2; + if (*nb > 0 && (0. <= nu && nu < 1.) && (1 <= *ize && *ize <= 2)) { + if(ex <= 0 || (*ize == 1 && ex > xmax_BESS_K)) { + if(ex <= 0) { + if(ex < 0) ML_ERROR(ME_RANGE, "K_bessel"); + for(i=0; i < *nb; i++) + bk[i] = ML_POSINF; + } else /* would only have underflow */ + for(i=0; i < *nb; i++) + bk[i] = 0.; + *ncalc = *nb; + return; + } + k = 0; + if (nu < sqxmin_BESS_K) { + nu = 0.; + } else if (nu > .5) { + k = 1; + nu -= 1.; + } + twonu = nu + nu; + iend = *nb + k - 1; + c = nu * nu; + d3 = -c; + if (ex <= 1.) { + /* ------------------------------------------------------------ + Calculation of P0 = GAMMA(1+ALPHA) * (2/X)**ALPHA + Q0 = GAMMA(1-ALPHA) * (X/2)**ALPHA + ------------------------------------------------------------ */ + d1 = 0.; d2 = p[0]; + t1 = 1.; t2 = q[0]; + for (i = 2; i <= 7; i += 2) { + d1 = c * d1 + p[i - 1]; + d2 = c * d2 + p[i]; + t1 = c * t1 + q[i - 1]; + t2 = c * t2 + q[i]; + } + d1 = nu * d1; + t1 = nu * t1; + f1 = log(ex); + f0 = a + nu * (p[7] - nu * (d1 + d2) / (t1 + t2)) - f1; + q0 = exp(-nu * (a - nu * (p[7] + nu * (d1-d2) / (t1-t2)) - f1)); + f1 = nu * f0; + p0 = exp(f1); + /* ----------------------------------------------------------- + Calculation of F0 = + ----------------------------------------------------------- */ + d1 = r[4]; + t1 = 1.; + for (i = 0; i < 4; ++i) { + d1 = c * d1 + r[i]; + t1 = c * t1 + s[i]; + } + /* d2 := sinh(f1)/ nu = sinh(f1)/(f1/f0) + * = f0 * sinh(f1)/f1 */ + if (fabs(f1) <= .5) { + f1 *= f1; + d2 = 0.; + for (i = 0; i < 6; ++i) { + d2 = f1 * d2 + t[i]; + } + d2 = f0 + f0 * f1 * d2; + } else { + d2 = sinh(f1) / nu; + } + f0 = d2 - nu * d1 / (t1 * p0); + if (ex <= 1e-10) { + /* --------------------------------------------------------- + X <= 1.0E-10 + Calculation of K(ALPHA,X) and X*K(ALPHA+1,X)/K(ALPHA,X) + --------------------------------------------------------- */ + bk[0] = f0 + ex * f0; + if (*ize == 1) { + bk[0] -= ex * bk[0]; + } + ratio = p0 / f0; + c = ex * DBL_MAX; + if (k != 0) { + /* --------------------------------------------------- + Calculation of K(ALPHA,X) + and X*K(ALPHA+1,X)/K(ALPHA,X), ALPHA >= 1/2 + --------------------------------------------------- */ + *ncalc = -1; + if (bk[0] >= c / ratio) { + return; + } + bk[0] = ratio * bk[0] / ex; + twonu += 2.; + ratio = twonu; + } + *ncalc = 1; + if (*nb == 1) + return; + + /* ----------------------------------------------------- + Calculate K(ALPHA+L,X)/K(ALPHA+L-1,X), + L = 1, 2, ... , NB-1 + ----------------------------------------------------- */ + *ncalc = -1; + for (i = 1; i < *nb; ++i) { + if (ratio >= c) + return; + + bk[i] = ratio / ex; + twonu += 2.; + ratio = twonu; + } + *ncalc = 1; + goto L420; + } else { + /* ------------------------------------------------------ + 10^-10 < X <= 1.0 + ------------------------------------------------------ */ + c = 1.; + x2by4 = ex * ex / 4.; + p0 = .5 * p0; + q0 = .5 * q0; + d1 = -1.; + d2 = 0.; + bk1 = 0.; + bk2 = 0.; + f1 = f0; + f2 = p0; + do { + d1 += 2.; + d2 += 1.; + d3 = d1 + d3; + c = x2by4 * c / d2; + f0 = (d2 * f0 + p0 + q0) / d3; + p0 /= d2 - nu; + q0 /= d2 + nu; + t1 = c * f0; + t2 = c * (p0 - d2 * f0); + bk1 += t1; + bk2 += t2; + } while (fabs(t1 / (f1 + bk1)) > DBL_EPSILON || + fabs(t2 / (f2 + bk2)) > DBL_EPSILON); + bk1 = f1 + bk1; + bk2 = 2. * (f2 + bk2) / ex; + if (*ize == 2) { + d1 = exp(ex); + bk1 *= d1; + bk2 *= d1; + } + wminf = estf[0] * ex + estf[1]; + } + } else if (DBL_EPSILON * ex > 1.) { + /* ------------------------------------------------- + X > 1./EPS + ------------------------------------------------- */ + *ncalc = *nb; + bk1 = 1. / (M_SQRT_2dPI * sqrt(ex)); + for (i = 0; i < *nb; ++i) + bk[i] = bk1; + return; + + } else { + /* ------------------------------------------------------- + X > 1.0 + ------------------------------------------------------- */ + twox = ex + ex; + blpha = 0.; + ratio = 0.; + if (ex <= 4.) { + /* ---------------------------------------------------------- + Calculation of K(ALPHA+1,X)/K(ALPHA,X), 1.0 <= X <= 4.0 + ----------------------------------------------------------*/ + d2 = trunc(estm[0] / ex + estm[1]); + m = (int) d2; + d1 = d2 + d2; + d2 -= .5; + d2 *= d2; + for (i = 2; i <= m; ++i) { + d1 -= 2.; + d2 -= d1; + ratio = (d3 + d2) / (twox + d1 - ratio); + } + /* ----------------------------------------------------------- + Calculation of I(|ALPHA|,X) and I(|ALPHA|+1,X) by backward + recurrence and K(ALPHA,X) from the wronskian + -----------------------------------------------------------*/ + d2 = trunc(estm[2] * ex + estm[3]); + m = (int) d2; + c = fabs(nu); + d3 = c + c; + d1 = d3 - 1.; + f1 = DBL_MIN; + f0 = (2. * (c + d2) / ex + .5 * ex / (c + d2 + 1.)) * DBL_MIN; + for (i = 3; i <= m; ++i) { + d2 -= 1.; + f2 = (d3 + d2 + d2) * f0; + blpha = (1. + d1 / d2) * (f2 + blpha); + f2 = f2 / ex + f1; + f1 = f0; + f0 = f2; + } + f1 = (d3 + 2.) * f0 / ex + f1; + d1 = 0.; + t1 = 1.; + for (i = 1; i <= 7; ++i) { + d1 = c * d1 + p[i - 1]; + t1 = c * t1 + q[i - 1]; + } + p0 = exp(c * (a + c * (p[7] - c * d1 / t1) - log(ex))) / ex; + f2 = (c + .5 - ratio) * f1 / ex; + bk1 = p0 + (d3 * f0 - f2 + f0 + blpha) / (f2 + f1 + f0) * p0; + if (*ize == 1) { + bk1 *= exp(-ex); + } + wminf = estf[2] * ex + estf[3]; + } else { + /* --------------------------------------------------------- + Calculation of K(ALPHA,X) and K(ALPHA+1,X)/K(ALPHA,X), by + backward recurrence, for X > 4.0 + ----------------------------------------------------------*/ + dm = trunc(estm[4] / ex + estm[5]); + m = (int) dm; + d2 = dm - .5; + d2 *= d2; + d1 = dm + dm; + for (i = 2; i <= m; ++i) { + dm -= 1.; + d1 -= 2.; + d2 -= d1; + ratio = (d3 + d2) / (twox + d1 - ratio); + blpha = (ratio + ratio * blpha) / dm; + } + bk1 = 1. / ((M_SQRT_2dPI + M_SQRT_2dPI * blpha) * sqrt(ex)); + if (*ize == 1) + bk1 *= exp(-ex); + wminf = estf[4] * (ex - fabs(ex - estf[6])) + estf[5]; + } + /* --------------------------------------------------------- + Calculation of K(ALPHA+1,X) + from K(ALPHA,X) and K(ALPHA+1,X)/K(ALPHA,X) + --------------------------------------------------------- */ + bk2 = bk1 + bk1 * (nu + .5 - ratio) / ex; + } + /*-------------------------------------------------------------------- + Calculation of 'NCALC', K(ALPHA+I,X), I = 0, 1, ... , NCALC-1, + & K(ALPHA+I,X)/K(ALPHA+I-1,X), I = NCALC, NCALC+1, ... , NB-1 + -------------------------------------------------------------------*/ + *ncalc = *nb; + bk[0] = bk1; + if (iend == 0) + return; + + j = 1 - k; + if (j >= 0) + bk[j] = bk2; + + if (iend == 1) + return; + + m = min0((int) (wminf - nu),iend); + for (i = 2; i <= m; ++i) { + t1 = bk1; + bk1 = bk2; + twonu += 2.; + if (ex < 1.) { + if (bk1 >= DBL_MAX / twonu * ex) + break; + } else { + if (bk1 / ex >= DBL_MAX / twonu) + break; + } + bk2 = twonu / ex * bk1 + t1; + ii = i; + ++j; + if (j >= 0) { + bk[j] = bk2; + } + } + + m = ii; + if (m == iend) { + return; + } + ratio = bk2 / bk1; + mplus1 = m + 1; + *ncalc = -1; + for (i = mplus1; i <= iend; ++i) { + twonu += 2.; + ratio = twonu / ex + 1./ratio; + ++j; + if (j >= 1) { + bk[j] = ratio; + } else { + if (bk2 >= DBL_MAX / ratio) + return; + + bk2 *= ratio; + } + } + *ncalc = max0(1, mplus1 - k); + if (*ncalc == 1) + bk[0] = bk2; + if (*nb == 1) + return; + +L420: + for (i = *ncalc; i < *nb; ++i) { /* i == *ncalc */ +#ifndef IEEE_754 + if (bk[i-1] >= DBL_MAX / bk[i]) + return; +#endif + bk[i] *= bk[i-1]; + (*ncalc)++; + } + } +} diff -Nru jags-3.4.0/src/jrmath/bessel_y.c jags-4.0.0/src/jrmath/bessel_y.c --- jags-3.4.0/src/jrmath/bessel_y.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/bessel_y.c 2015-09-10 05:42:23.000000000 +0000 @@ -0,0 +1,518 @@ +/* + * Mathlib : A C Library of Special Functions + * Copyright (C) 1998-2015 Ross Ihaka and the R Core team. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + */ + +/* DESCRIPTION --> see below */ + + +/* From http://www.netlib.org/specfun/rybesl Fortran translated by f2c,... + * ------------------------------=#---- Martin Maechler, ETH Zurich + */ +#include "nmath.h" +#include "bessel.h" + +#ifndef MATHLIB_STANDALONE +#include +#endif + +#define min0(x, y) (((x) <= (y)) ? (x) : (y)) + +static void Y_bessel(double *x, double *alpha, int *nb, + double *by, int *ncalc); + +// unused now from R +double bessel_y(double x, double alpha) +{ + int nb, ncalc; + double na, *by; +#ifndef MATHLIB_STANDALONE + const void *vmax; +#endif + +#ifdef IEEE_754 + /* NaNs propagated correctly */ + if (ISNAN(x) || ISNAN(alpha)) return x + alpha; +#endif + if (x < 0) { + ML_ERROR(ME_RANGE, "bessel_y"); + return ML_NAN; + } + na = floor(alpha); + if (alpha < 0) { + /* Using Abramowitz & Stegun 9.1.2 + * this may not be quite optimal (CPU and accuracy wise) */ + return(bessel_y(x, -alpha) * cospi(alpha) - + ((alpha == na) ? 0 : + bessel_j(x, -alpha) * sinpi(alpha))); + } + else if (alpha > 1e7) { + MATHLIB_WARNING("besselY(x, nu): nu=%g too large for bessel_y() algorithm", alpha); + return ML_NAN; + } + nb = 1+ (int)na;/* nb-1 <= alpha < nb */ + alpha -= (double)(nb-1); +#ifdef MATHLIB_STANDALONE + by = (double *) calloc(nb, sizeof(double)); + if (!by) MATHLIB_ERROR("%s", _("bessel_y allocation error")); +#else + vmax = vmaxget(); + by = (double *) R_alloc((size_t) nb, sizeof(double)); +#endif + Y_bessel(&x, &alpha, &nb, by, &ncalc); + if(ncalc != nb) {/* error input */ + if(ncalc == -1) { +#ifdef MATHLIB_STANDALONE + free(by); +#else + vmaxset(vmax); +#endif + return ML_POSINF; + } + else if(ncalc < -1) + MATHLIB_WARNING4(_("bessel_y(%g): ncalc (=%d) != nb (=%d); alpha=%g. Arg. out of range?\n"), + x, ncalc, nb, alpha); + else /* ncalc >= 0 */ + MATHLIB_WARNING2(_("bessel_y(%g,nu=%g): precision lost in result\n"), + x, alpha+(double)nb-1); + } + x = by[nb-1]; +#ifdef MATHLIB_STANDALONE + free(by); +#else + vmaxset(vmax); +#endif + return x; +} + +/* Called from R: modified version of bessel_y(), accepting a work array + * instead of allocating one. */ +double bessel_y_ex(double x, double alpha, double *by) +{ + int nb, ncalc; + double na; + +#ifdef IEEE_754 + /* NaNs propagated correctly */ + if (ISNAN(x) || ISNAN(alpha)) return x + alpha; +#endif + if (x < 0) { + ML_ERROR(ME_RANGE, "bessel_y"); + return ML_NAN; + } + na = floor(alpha); + if (alpha < 0) { + /* Using Abramowitz & Stegun 9.1.2 + * this may not be quite optimal (CPU and accuracy wise) */ + return(bessel_y_ex(x, -alpha, by) * cospi(alpha) - + ((alpha == na) ? 0 : + bessel_j_ex(x, -alpha, by) * sinpi(alpha))); + } + else if (alpha > 1e7) { + MATHLIB_WARNING("besselY(x, nu): nu=%g too large for bessel_y() algorithm", alpha); + return ML_NAN; + } + nb = 1+ (int)na;/* nb-1 <= alpha < nb */ + alpha -= (double)(nb-1); + Y_bessel(&x, &alpha, &nb, by, &ncalc); + if(ncalc != nb) {/* error input */ + if(ncalc == -1) + return ML_POSINF; + else if(ncalc < -1) + MATHLIB_WARNING4(_("bessel_y(%g): ncalc (=%d) != nb (=%d); alpha=%g. Arg. out of range?\n"), + x, ncalc, nb, alpha); + else /* ncalc >= 0 */ + MATHLIB_WARNING2(_("bessel_y(%g,nu=%g): precision lost in result\n"), + x, alpha+(double)nb-1); + } + x = by[nb-1]; + return x; +} + +static void Y_bessel(double *x, double *alpha, int *nb, + double *by, int *ncalc) +{ +/* ---------------------------------------------------------------------- + + This routine calculates Bessel functions Y_(N+ALPHA) (X) +v for non-negative argument X, and non-negative order N+ALPHA. + + + Explanation of variables in the calling sequence + + X - Non-negative argument for which + Y's are to be calculated. + ALPHA - Fractional part of order for which + Y's are to be calculated. 0 <= ALPHA < 1.0. + NB - Number of functions to be calculated, NB > 0. + The first function calculated is of order ALPHA, and the + last is of order (NB - 1 + ALPHA). + BY - Output vector of length NB. If the + routine terminates normally (NCALC=NB), the vector BY + contains the functions Y(ALPHA,X), ... , Y(NB-1+ALPHA,X), + If (0 < NCALC < NB), BY(I) contains correct function + values for I <= NCALC, and contains the ratios + Y(ALPHA+I-1,X)/Y(ALPHA+I-2,X) for the rest of the array. + NCALC - Output variable indicating possible errors. + Before using the vector BY, the user should check that + NCALC=NB, i.e., all orders have been calculated to + the desired accuracy. See error returns below. + + + ******************************************************************* + + Error returns + + In case of an error, NCALC != NB, and not all Y's are + calculated to the desired accuracy. + + NCALC < -1: An argument is out of range. For example, + NB <= 0, IZE is not 1 or 2, or IZE=1 and ABS(X) >= + XMAX. In this case, BY[0] = 0.0, the remainder of the + BY-vector is not calculated, and NCALC is set to + MIN0(NB,0)-2 so that NCALC != NB. + NCALC = -1: Y(ALPHA,X) >= XINF. The requested function + values are set to 0.0. + 1 < NCALC < NB: Not all requested function values could + be calculated accurately. BY(I) contains correct function + values for I <= NCALC, and and the remaining NB-NCALC + array elements contain 0.0. + + + Intrinsic functions required are: + + DBLE, EXP, INT, MAX, MIN, REAL, SQRT + + + Acknowledgement + + This program draws heavily on Temme's Algol program for Y(a,x) + and Y(a+1,x) and on Campbell's programs for Y_nu(x). Temme's + scheme is used for x < THRESH, and Campbell's scheme is used + in the asymptotic region. Segments of code from both sources + have been translated into Fortran 77, merged, and heavily modified. + Modifications include parameterization of machine dependencies, + use of a new approximation for ln(gamma(x)), and built-in + protection against over/underflow. + + References: "Bessel functions J_nu(x) and Y_nu(x) of float + order and float argument," Campbell, J. B., + Comp. Phy. Comm. 18, 1979, pp. 133-142. + + "On the numerical evaluation of the ordinary + Bessel function of the second kind," Temme, + N. M., J. Comput. Phys. 21, 1976, pp. 343-350. + + Latest modification: March 19, 1990 + + Modified by: W. J. Cody + Applied Mathematics Division + Argonne National Laboratory + Argonne, IL 60439 + ----------------------------------------------------------------------*/ + + +/* ---------------------------------------------------------------------- + Mathematical constants + FIVPI = 5*PI + PIM5 = 5*PI - 15 + ----------------------------------------------------------------------*/ + const static double fivpi = 15.707963267948966192; + const static double pim5 = .70796326794896619231; + + /*---------------------------------------------------------------------- + Coefficients for Chebyshev polynomial expansion of + 1/gamma(1-x), abs(x) <= .5 + ----------------------------------------------------------------------*/ + const static double ch[21] = { -6.7735241822398840964e-24, + -6.1455180116049879894e-23,2.9017595056104745456e-21, + 1.3639417919073099464e-19,2.3826220476859635824e-18, + -9.0642907957550702534e-18,-1.4943667065169001769e-15, + -3.3919078305362211264e-14,-1.7023776642512729175e-13, + 9.1609750938768647911e-12,2.4230957900482704055e-10, + 1.7451364971382984243e-9,-3.3126119768180852711e-8, + -8.6592079961391259661e-7,-4.9717367041957398581e-6, + 7.6309597585908126618e-5,.0012719271366545622927, + .0017063050710955562222,-.07685284084478667369, + -.28387654227602353814,.92187029365045265648 }; + + /* Local variables */ + int i, k, na; + + double alfa, div, ddiv, even, gamma, term, cosmu, sinmu, + b, c, d, e, f, g, h, p, q, r, s, d1, d2, q0, pa,pa1, qa,qa1, + en, en1, nu, ex, ya,ya1, twobyx, den, odd, aye, dmu, x2, xna; + + en1 = ya = ya1 = 0; /* -Wall */ + + ex = *x; + nu = *alpha; + if (*nb > 0 && 0. <= nu && nu < 1.) { + if(ex < DBL_MIN || ex > xlrg_BESS_Y) { + /* Warning is not really appropriate, give + * proper limit: + * ML_ERROR(ME_RANGE, "Y_bessel"); */ + *ncalc = *nb; + if(ex > xlrg_BESS_Y) by[0]= 0.; /*was ML_POSINF */ + else if(ex < DBL_MIN) by[0]=ML_NEGINF; + for(i=0; i < *nb; i++) + by[i] = by[0]; + return; + } + xna = trunc(nu + .5); + na = (int) xna; + if (na == 1) {/* <==> .5 <= *alpha < 1 <==> -5. <= nu < 0 */ + nu -= xna; + } + if (nu == -.5) { + p = M_SQRT_2dPI / sqrt(ex); + ya = p * sin(ex); + ya1 = -p * cos(ex); + } else if (ex < 3.) { + /* ------------------------------------------------------------- + Use Temme's scheme for small X + ------------------------------------------------------------- */ + b = ex * .5; + d = -log(b); + f = nu * d; + e = pow(b, -nu); + if (fabs(nu) < M_eps_sinc) + c = M_1_PI; + else + c = nu / sinpi(nu); + + /* ------------------------------------------------------------ + Computation of sinh(f)/f + ------------------------------------------------------------ */ + if (fabs(f) < 1.) { + x2 = f * f; + en = 19.; + s = 1.; + for (i = 1; i <= 9; ++i) { + s = s * x2 / en / (en - 1.) + 1.; + en -= 2.; + } + } else { + s = (e - 1. / e) * .5 / f; + } + /* -------------------------------------------------------- + Computation of 1/gamma(1-a) using Chebyshev polynomials */ + x2 = nu * nu * 8.; + aye = ch[0]; + even = 0.; + alfa = ch[1]; + odd = 0.; + for (i = 3; i <= 19; i += 2) { + even = -(aye + aye + even); + aye = -even * x2 - aye + ch[i - 1]; + odd = -(alfa + alfa + odd); + alfa = -odd * x2 - alfa + ch[i]; + } + even = (even * .5 + aye) * x2 - aye + ch[20]; + odd = (odd + alfa) * 2.; + gamma = odd * nu + even; + /* End of computation of 1/gamma(1-a) + ----------------------------------------------------------- */ + g = e * gamma; + e = (e + 1. / e) * .5; + f = 2. * c * (odd * e + even * s * d); + e = nu * nu; + p = g * c; + q = M_1_PI / g; + c = nu * M_PI_2; + if (fabs(c) < M_eps_sinc) + r = 1.; + else + r = sinpi(nu/2) / c; + + r = M_PI * c * r * r; + c = 1.; + d = -b * b; + h = 0.; + ya = f + r * q; + ya1 = p; + en = 1.; + + while (fabs(g / (1. + fabs(ya))) + + fabs(h / (1. + fabs(ya1))) > DBL_EPSILON) { + f = (f * en + p + q) / (en * en - e); + c *= (d / en); + p /= en - nu; + q /= en + nu; + g = c * (f + r * q); + h = c * p - en * g; + ya += g; + ya1+= h; + en += 1.; + } + ya = -ya; + ya1 = -ya1 / b; + } else if (ex < thresh_BESS_Y) { + /* -------------------------------------------------------------- + Use Temme's scheme for moderate X : 3 <= x < 16 + -------------------------------------------------------------- */ + c = (.5 - nu) * (.5 + nu); + b = ex + ex; + e = ex * M_1_PI * cospi(nu) / DBL_EPSILON; + e *= e; + p = 1.; + q = -ex; + r = 1. + ex * ex; + s = r; + en = 2.; + while (r * en * en < e) { + en1 = en + 1.; + d = (en - 1. + c / en) / s; + p = (en + en - p * d) / en1; + q = (-b + q * d) / en1; + s = p * p + q * q; + r *= s; + en = en1; + } + f = p / s; + p = f; + g = -q / s; + q = g; +L220: + en -= 1.; + if (en > 0.) { + r = en1 * (2. - p) - 2.; + s = b + en1 * q; + d = (en - 1. + c / en) / (r * r + s * s); + p = d * r; + q = d * s; + e = f + 1.; + f = p * e - g * q; + g = q * e + p * g; + en1 = en; + goto L220; + } + f = 1. + f; + d = f * f + g * g; + pa = f / d; + qa = -g / d; + d = nu + .5 - p; + q += ex; + pa1 = (pa * q - qa * d) / ex; + qa1 = (qa * q + pa * d) / ex; + b = ex - M_PI_2 * (nu + .5); + c = cos(b); + s = sin(b); + d = M_SQRT_2dPI / sqrt(ex); + ya = d * (pa * s + qa * c); + ya1 = d * (qa1 * s - pa1 * c); + } else { /* x > thresh_BESS_Y */ + /* ---------------------------------------------------------- + Use Campbell's asymptotic scheme. + ---------------------------------------------------------- */ + na = 0; + d1 = trunc(ex / fivpi); + i = (int) d1; + dmu = ex - 15. * d1 - d1 * pim5 - (*alpha + .5) * M_PI_2; + if (i - (i / 2 << 1) == 0) { + cosmu = cos(dmu); + sinmu = sin(dmu); + } else { + cosmu = -cos(dmu); + sinmu = -sin(dmu); + } + ddiv = 8. * ex; + dmu = *alpha; + den = sqrt(ex); + for (k = 1; k <= 2; ++k) { + p = cosmu; + cosmu = sinmu; + sinmu = -p; + d1 = (2. * dmu - 1.) * (2. * dmu + 1.); + d2 = 0.; + div = ddiv; + p = 0.; + q = 0.; + q0 = d1 / div; + term = q0; + for (i = 2; i <= 20; ++i) { + d2 += 8.; + d1 -= d2; + div += ddiv; + term = -term * d1 / div; + p += term; + d2 += 8.; + d1 -= d2; + div += ddiv; + term *= (d1 / div); + q += term; + if (fabs(term) <= DBL_EPSILON) { + break; + } + } + p += 1.; + q += q0; + if (k == 1) + ya = M_SQRT_2dPI * (p * cosmu - q * sinmu) / den; + else + ya1 = M_SQRT_2dPI * (p * cosmu - q * sinmu) / den; + dmu += 1.; + } + } + if (na == 1) { + h = 2. * (nu + 1.) / ex; + if (h > 1.) { + if (fabs(ya1) > DBL_MAX / h) { + h = 0.; + ya = 0.; + } + } + h = h * ya1 - ya; + ya = ya1; + ya1 = h; + } + + /* --------------------------------------------------------------- + Now have first one or two Y's + --------------------------------------------------------------- */ + by[0] = ya; + *ncalc = 1; + if(*nb > 1) { + by[1] = ya1; + if (ya1 != 0.) { + aye = 1. + *alpha; + twobyx = 2. / ex; + *ncalc = 2; + for (i = 2; i < *nb; ++i) { + if (twobyx < 1.) { + if (fabs(by[i - 1]) * twobyx >= DBL_MAX / aye) + goto L450; + } else { + if (fabs(by[i - 1]) >= DBL_MAX / aye / twobyx) + goto L450; + } + by[i] = twobyx * aye * by[i - 1] - by[i - 2]; + aye += 1.; + ++(*ncalc); + } + } + } +L450: + for (i = *ncalc; i < *nb; ++i) + by[i] = ML_NEGINF;/* was 0 */ + + } else { + by[0] = 0.; + *ncalc = min0(*nb,0) - 1; + } +} + diff -Nru jags-3.4.0/src/jrmath/beta.c jags-4.0.0/src/jrmath/beta.c --- jags-3.4.0/src/jrmath/beta.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/beta.c 2015-02-22 20:05:50.000000000 +0000 @@ -0,0 +1,90 @@ +/* + * Mathlib : A C Library of Special Functions + * Copyright (C) 1998 Ross Ihaka + * Copyright (C) 2000-2014 The R Core Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + * + * SYNOPSIS + * + * #include + * double beta(double a, double b); + * + * DESCRIPTION + * + * This function returns the value of the beta function + * evaluated with arguments a and b. + * + * NOTES + * + * This routine is a translation into C of a Fortran subroutine + * by W. Fullerton of Los Alamos Scientific Laboratory. + * Some modifications have been made so that the routines + * conform to the IEEE 754 standard. + */ + +#include "nmath.h" + +double beta(double a, double b) +{ +#ifdef NOMORE_FOR_THREADS + static double xmin, xmax = 0;/*-> typically = 171.61447887 for IEEE */ + static double lnsml = 0;/*-> typically = -708.3964185 */ + + if (xmax == 0) { + gammalims(&xmin, &xmax); + lnsml = log(d1mach(1)); + } +#else +/* For IEEE double precision DBL_EPSILON = 2^-52 = 2.220446049250313e-16 : + * xmin, xmax : see ./gammalims.c + * lnsml = log(DBL_MIN) = log(2 ^ -1022) = -1022 * log(2) +*/ +# define xmin -170.5674972726612 +# define xmax 171.61447887182298 +# define lnsml -708.39641853226412 +#endif + + +#ifdef IEEE_754 + /* NaNs propagated correctly */ + if(ISNAN(a) || ISNAN(b)) return a + b; +#endif + + if (a < 0 || b < 0) + ML_ERR_return_NAN + else if (a == 0 || b == 0) + return ML_POSINF; + else if (!R_FINITE(a) || !R_FINITE(b)) + return 0; + + if (a + b < xmax) {/* ~= 171.61 for IEEE */ +// return gammafn(a) * gammafn(b) / gammafn(a+b); + /* All the terms are positive, and all can be large for large + or small arguments. They are never much less than one. + gammafn(x) can still overflow for x ~ 1e-308, + but the result would too. + */ + return (1 / gammafn(a+b)) * gammafn(a) * gammafn(b); + } else { + double val = lbeta(a, b); + if (val < lnsml) { + /* a and/or b so big that beta underflows */ + ML_ERROR(ME_UNDERFLOW, "beta"); + /* return ML_UNDERFLOW; pointless giving incorrect value */ + } + return exp(val); + } +} diff -Nru jags-3.4.0/src/jrmath/callbacks.cc jags-4.0.0/src/jrmath/callbacks.cc --- jags-3.4.0/src/jrmath/callbacks.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/callbacks.cc 2015-02-22 16:49:26.000000000 +0000 @@ -1,22 +1,24 @@ #include -#include #include "nmath.h" +#include + extern "C" { - double unif_rand(RNG *rng) - { - return rng->uniform(); - } - - double exp_rand(RNG *rng) - { - return rng->exponential(); - } - - double norm_rand(RNG *rng) - { - return rng->normal(); - } + double unif_rand(JRNG *rng) + { + return rng->uniform(); + } + + double exp_rand(JRNG *rng) + { + return rng->exponential(); + } + + double norm_rand(JRNG *rng) + { + return rng->normal(); + } } + diff -Nru jags-3.4.0/src/jrmath/choose.c jags-4.0.0/src/jrmath/choose.c --- jags-3.4.0/src/jrmath/choose.c 2012-07-19 09:54:30.000000000 +0000 +++ jags-4.0.0/src/jrmath/choose.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions - * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2004 The R Foundation + * Copyright (C) 1998 Ross Ihaka + * Copyright (C) 2004-2014 The R Foundation * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -28,8 +28,9 @@ * DESCRIPTION * * Binomial coefficients. + * choose(n, k) and lchoose(n,k) := log(abs(choose(n,k)) * - * These should work for the generalized binomial theorem, + * These work for the *generalized* binomial theorem, * i.e., are also defined for non-integer n (integer k). * * We use the simple explicit product formula for k <= k_small_max @@ -39,6 +40,12 @@ #include "nmath.h" +/* These are recursive, so we should do a stack check */ + +#ifndef MATHLIB_STANDALONE +void R_CheckStack(void); +#endif + double attribute_hidden lfastchoose(double n, double k) { return -log(n + 1.) - lbeta(n - k + 1., k + 1.); @@ -54,41 +61,43 @@ } #define ODD(_K_) ((_K_) != 2 * floor((_K_) / 2.)) -/* matching R_D_nonint() in ./dpq.h : */ -#define R_IS_INT(x) (fabs((x) - floor((x)+0.5)) <= 1e-7) + +#define R_IS_INT(x) (!R_nonint(x)) double lchoose(double n, double k) { double k0 = k; - k = floor(k + 0.5); + k = R_forceint(k); #ifdef IEEE_754 /* NaNs propagated correctly */ if(ISNAN(n) || ISNAN(k)) return n + k; #endif +#ifndef MATHLIB_STANDALONE + R_CheckStack(); +#endif if (fabs(k - k0) > 1e-7) MATHLIB_WARNING2(_("'k' (%.2f) must be integer, rounded to %.0f"), k0, k); if (k < 2) { if (k < 0) return ML_NEGINF; if (k == 0) return 0.; /* else: k == 1 */ - return log(n); + return log(fabs(n)); } /* else: k >= 2 */ if (n < 0) { - if (ODD(k)) return ML_NAN;/* log( ) */ return lchoose(-n+ k-1, k); } else if (R_IS_INT(n)) { - n = floor(n + 0.5); + n = R_forceint(n); if(n < k) return ML_NEGINF; + /* k <= n :*/ if(n - k < 2) return lchoose(n, n-k); /* <- Symmetry */ + /* else: n >= k+2 */ return lfastchoose(n, k); } /* else non-integer n >= 0 : */ if (n < k-1) { int s; - if (fmod(floor(n-k+1), 2.) == 0) /* choose() < 0 */ - return ML_NAN; return lfastchoose2(n, k, &s); } return lfastchoose(n, k); @@ -101,11 +110,14 @@ double choose(double n, double k) { double r, k0 = k; - k = floor(k + 0.5); + k = R_forceint(k); #ifdef IEEE_754 /* NaNs propagated correctly */ if(ISNAN(n) || ISNAN(k)) return n + k; #endif +#ifndef MATHLIB_STANDALONE + R_CheckStack(); +#endif if (fabs(k - k0) > 1e-7) MATHLIB_WARNING2(_("'k' (%.2f) must be integer, rounded to %.0f"), k0, k); if (k < k_small_max) { @@ -117,20 +129,20 @@ r = n; for(j = 2; j <= k; j++) r *= (n-j+1)/j; - return R_IS_INT(n) ? floor(r + 0.5) : r; + return R_IS_INT(n) ? R_forceint(r) : r; /* might have got rounding errors */ } /* else: k >= k_small_max */ if (n < 0) { - n = floor(k + 0.5); r = choose(-n+ k-1, k); if (ODD(k)) r = -r; return r; } else if (R_IS_INT(n)) { + n = R_forceint(n); if(n < k) return 0.; if(n - k < k_small_max) return choose(n, n-k); /* <- Symmetry */ - return floor(exp(lfastchoose(n, k)) + 0.5); + return R_forceint(exp(lfastchoose(n, k))); } /* else non-integer n >= 0 : */ if (n < k-1) { @@ -140,7 +152,3 @@ } return exp(lfastchoose(n, k)); } - -#undef ODD -#undef R_IS_INT -#undef k_small_max diff -Nru jags-3.4.0/src/jrmath/cospi.c jags-4.0.0/src/jrmath/cospi.c --- jags-3.4.0/src/jrmath/cospi.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/cospi.c 2015-02-24 21:24:04.000000000 +0000 @@ -0,0 +1,76 @@ +/* + * Mathlib : A C Library of Special Functions + * Copyright (C) 2013-2014 The R Core Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "nmath.h" + +/* HAVE_COSPI etc will not be defined in standalone-use: the + intention is to make the versions here available in that case. +*/ + +#ifndef HAVE_COSPI +// cos(pi * x) -- exact when x = k/2 for all integer k +double cospi(double x) { +#ifdef IEEE_754 + /* NaNs propagated correctly */ + if (ISNAN(x)) return x; +#endif + if(!R_FINITE(x)) ML_ERR_return_NAN; + + x = fmod(fabs(x), 2.);// cos() symmetric; cos(pi(x + 2k)) == cos(pi x) for all integer k + if(fmod(x, 1.) == 0.5) return 0.; + if( x == 1.) return -1.; + if( x == 0.) return 1.; + // otherwise + return cos(M_PI * x); +} +#endif + +#ifndef HAVE_SINPI +// sin(pi * x) -- exact when x = k/2 for all integer k +double sinpi(double x) { +#ifdef IEEE_754 + if (ISNAN(x)) return x; +#endif + if(!R_FINITE(x)) ML_ERR_return_NAN; + + x = fmod(x, 2.); // sin(pi(x + 2k)) == sin(pi x) for all integer k + // map (-2,2) --> (-1,1] : + if(x <= -1) x += 2.; else if (x > 1.) x -= 2.; + if(x == 0. || x == 1.) return 0.; + if(x == 0.5) return 1.; + if(x == -0.5) return -1.; + // otherwise + return sin(M_PI * x); +} +#endif + +// tan(pi * x) -- exact when x = k/2 for all integer k +#ifndef HAVE_TANPI +double tanpi(double x) +#else +// for use in arithmetic.c, half-values documented to give NaN +double Rtanpi(double x) +#endif +{ +#ifdef IEEE_754 + if (ISNAN(x)) return x; +#endif + if(!R_FINITE(x)) ML_ERR_return_NAN; + + x = fmod(x, 1.); // tan(pi(x + k)) == tan(pi x) for all integer k + // map (-1,1) --> (-1/2, 1/2] : + if(x <= -0.5) x++; else if(x > 0.5) x--; + return (x == 0.) ? 0. : ((x == 0.5) ? ML_NAN : tan(M_PI * x)); +} diff -Nru jags-3.4.0/src/jrmath/d1mach.c jags-4.0.0/src/jrmath/d1mach.c --- jags-3.4.0/src/jrmath/d1mach.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/d1mach.c 2015-02-22 21:01:36.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib - A Mathematical Function Library * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-7 The R Development Core Team + * Copyright (C) 2000-2014 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -49,3 +49,11 @@ } } +#ifdef __cplusplus +extern "C" +#endif + +double F77_NAME(d1mach)(int *i) +{ + return jags_d1mach(*i); +} diff -Nru jags-3.4.0/src/jrmath/dbeta.c jags-4.0.0/src/jrmath/dbeta.c --- jags-3.4.0/src/jrmath/dbeta.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/dbeta.c 2015-02-22 20:05:50.000000000 +0000 @@ -4,9 +4,9 @@ * October 23, 2000. * * Merge in to R: - * Copyright (C) 2000, The R Core Development Team + * Copyright (C) 2000, The R Core Team * Changes to case a, b < 2, use logs to avoid underflow - * Copyright (C) 2006, The R Core Development Team + * Copyright (C) 2006-2014 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -42,15 +42,29 @@ double dbeta(double x, double a, double b, int give_log) { - double lval; - #ifdef IEEE_754 /* NaNs propagated correctly */ if (ISNAN(x) || ISNAN(a) || ISNAN(b)) return x + a + b; #endif - if (a <= 0 || b <= 0) ML_ERR_return_NAN; + if (a < 0 || b < 0) ML_ERR_return_NAN; if (x < 0 || x > 1) return(R_D__0); + + // limit cases for (a,b), leading to point masses + if(a == 0 || b == 0 || !R_FINITE(a) || !R_FINITE(b)) { + if(a == 0 && b == 0) { // point mass 1/2 at each of {0,1} : + if (x == 0 || x == 1) return(ML_POSINF); /* else */ return(R_D__0); + } + if (a == 0 || a/b == 0) { // point mass 1 at 0 + if (x == 0) return(ML_POSINF); /* else */ return(R_D__0); + } + if (b == 0 || b/a == 0) { // point mass 1 at 1 + if (x == 1) return(ML_POSINF); /* else */ return(R_D__0); + } + // else, remaining case: a = b = Inf : point mass 1 at 1/2 + if (x == 0.5) return(ML_POSINF); /* else */ return(R_D__0); + } + if (x == 0) { if(a > 1) return(R_D__0); if(a < 1) return(ML_POSINF); @@ -61,6 +75,8 @@ if(b < 1) return(ML_POSINF); /* b == 1 : */ return(R_D_val(a)); } + + double lval; if (a <= 2 || b <= 2) lval = (a-1)*log(x) + (b-1)*log1p(-x) - lbeta(a, b); else diff -Nru jags-3.4.0/src/jrmath/dbinom.c jags-4.0.0/src/jrmath/dbinom.c --- jags-3.4.0/src/jrmath/dbinom.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/dbinom.c 2015-02-22 20:05:50.000000000 +0000 @@ -4,8 +4,8 @@ * October 23, 2000. * * Merge in to R and further tweaks : - * Copyright (C) 2000, The R Core Development Team - * Copyright (C) 2008, The R Foundation + * Copyright (C) 2000-2014 The R Core Team + * Copyright (C) 2008 The R Foundation * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -68,7 +68,7 @@ /* Upto R 2.7.1: * lf = log(M_2PI) + log(x) + log(n-x) - log(n); * -- following is much better for x << n : */ - lf = log(M_2PI) + log(x) + log1p(- x/n); + lf = M_LN_2PI + log(x) + log1p(- x/n); return R_D_exp(lc - 0.5*lf); } @@ -85,8 +85,8 @@ R_D_nonint_check(x); if (x < 0 || !R_FINITE(x)) return R_D__0; - n = R_D_forceint(n); - x = R_D_forceint(x); + n = R_forceint(n); + x = R_forceint(x); return dbinom_raw(x, n, p, 1-p, give_log); } diff -Nru jags-3.4.0/src/jrmath/dcauchy.c jags-4.0.0/src/jrmath/dcauchy.c --- jags-3.4.0/src/jrmath/dcauchy.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/dcauchy.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -Nru jags-3.4.0/src/jrmath/dchisq.c jags-4.0.0/src/jrmath/dchisq.c --- jags-3.4.0/src/jrmath/dchisq.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/dchisq.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -Nru jags-3.4.0/src/jrmath/dexp.c jags-4.0.0/src/jrmath/dexp.c --- jags-3.4.0/src/jrmath/dexp.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/dexp.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -Nru jags-3.4.0/src/jrmath/df.c jags-4.0.0/src/jrmath/df.c --- jags-3.4.0/src/jrmath/df.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/df.c 2015-02-23 21:46:24.000000000 +0000 @@ -4,7 +4,7 @@ * October 23, 2000. * * Merge in to R: - * Copyright (C) 2000, 2005 The R Core Development Team + * Copyright (C) 2000, 2005 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -Nru jags-3.4.0/src/jrmath/dgamma.c jags-4.0.0/src/jrmath/dgamma.c --- jags-3.4.0/src/jrmath/dgamma.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/dgamma.c 2015-02-22 20:05:50.000000000 +0000 @@ -4,7 +4,7 @@ * October 23, 2000. * * Merge in to R: - * Copyright (C) 2000 The R Core Development Team + * Copyright (C) 2000 The R Core Team * Copyright (C) 2004 The R Foundation * * This program is free software; you can redistribute it and/or modify diff -Nru jags-3.4.0/src/jrmath/dgeom.c jags-4.0.0/src/jrmath/dgeom.c --- jags-3.4.0/src/jrmath/dgeom.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/dgeom.c 2015-02-22 20:05:50.000000000 +0000 @@ -0,0 +1,50 @@ +/* + * AUTHOR + * Catherine Loader, catherine@research.bell-labs.com. + * October 23, 2000. + * + * Merge in to R: + * Copyright (C) 2000-2014 The R Core Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + * + * + * DESCRIPTION + * + * Computes the geometric probabilities, Pr(X=x) = p(1-p)^x. + */ + +#include "nmath.h" +#include "dpq.h" + +double dgeom(double x, double p, int give_log) +{ + double prob; + +#ifdef IEEE_754 + if (ISNAN(x) || ISNAN(p)) return x + p; +#endif + + if (p <= 0 || p > 1) ML_ERR_return_NAN; + + R_D_nonint_check(x); + if (x < 0 || !R_FINITE(x) || p == 0) return R_D__0; + x = R_forceint(x); + + /* prob = (1-p)^x, stable for small p */ + prob = dbinom_raw(0.,x, p,1-p, give_log); + + return((give_log) ? log(p) + prob : p*prob); +} diff -Nru jags-3.4.0/src/jrmath/dhyper.c jags-4.0.0/src/jrmath/dhyper.c --- jags-3.4.0/src/jrmath/dhyper.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/dhyper.c 2015-02-22 20:05:50.000000000 +0000 @@ -4,7 +4,7 @@ * October 23, 2000. * * Merge in to R: - * Copyright (C) 2000, 2001 The R Core Development Team + * Copyright (C) 2000-2014 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -53,13 +53,13 @@ if (R_D_negInonint(r) || R_D_negInonint(b) || R_D_negInonint(n) || n > r+b) ML_ERR_return_NAN; - if (R_D_negInonint(x)) - return(R_D__0); + if(x < 0) return(R_D__0); + R_D_nonint_check(x);// incl warning - x = R_D_forceint(x); - r = R_D_forceint(r); - b = R_D_forceint(b); - n = R_D_forceint(n); + x = R_forceint(x); + r = R_forceint(r); + b = R_forceint(b); + n = R_forceint(n); if (n < x || r < x || n - x > b) return(R_D__0); if (n == 0) return((x == 0) ? R_D__1 : R_D__0); diff -Nru jags-3.4.0/src/jrmath/dlnorm.c jags-4.0.0/src/jrmath/dlnorm.c --- jags-3.4.0/src/jrmath/dlnorm.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/dlnorm.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-8 The R Development Core Team + * Copyright (C) 2000-2014 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -33,8 +33,11 @@ if (ISNAN(x) || ISNAN(meanlog) || ISNAN(sdlog)) return x + meanlog + sdlog; #endif - if(sdlog <= 0) ML_ERR_return_NAN; - + if(sdlog <= 0) { + if(sdlog < 0) ML_ERR_return_NAN; + // sdlog == 0 : + return (log(x) == meanlog) ? ML_POSINF : R_D__0; + } if(x <= 0) return R_D__0; y = (log(x) - meanlog) / sdlog; diff -Nru jags-3.4.0/src/jrmath/dlogis.c jags-4.0.0/src/jrmath/dlogis.c --- jags-3.4.0/src/jrmath/dlogis.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/dlogis.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * R : A Computer Language for Statistical Data Analysis * Copyright (C) 1995, 1996 Robert Gentleman and Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -Nru jags-3.4.0/src/jrmath/dnbeta.c jags-4.0.0/src/jrmath/dnbeta.c --- jags-3.4.0/src/jrmath/dnbeta.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/dnbeta.c 2015-02-22 20:05:50.000000000 +0000 @@ -0,0 +1,126 @@ +/* + * Mathlib : A C Library of Special Functions + * Copyright (C) 1998 Ross Ihaka + * Copyright (C) 2000-12 The R Core Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + * + * SYNOPSIS + * + * #include + * double dnbeta(double x, double a, double b, double ncp, int give_log); + * + * DESCRIPTION + * + * Computes the density of the noncentral beta distribution with + * noncentrality parameter ncp. The noncentral beta distribution + * has density: + * + * Inf + * f(x|a,b,ncp) = SUM p(i) * x^(a+i-1) * (1-x)^(b-1) / B(a+i,b) + * i=0 + * + * where: + * + * p(k) = exp(-ncp/2) (ncp/2)^k / k! + * + * B(a,b) = Gamma(a) * Gamma(b) / Gamma(a+b) + * + * + * This can be computed efficiently by using the recursions: + * + * p(k+1) = ncp/2 / (k+1) * p(k) + * + * B(a+k+1,b) = (a+k)/(a+b+k) * B(a+k,b) + * + * The new algorithm first determines for which k the k-th term is maximal, + * and then sums outwards to both sides from the 'mid'. + */ + +#include "nmath.h" +#include "dpq.h" + +double dnbeta(double x, double a, double b, double ncp, int give_log) +{ + const static double eps = 1.e-15; + + int kMax; + double k, ncp2, dx2, d, D, term; + LDOUBLE sum, p_k, q; + +#ifdef IEEE_754 + if (ISNAN(x) || ISNAN(a) || ISNAN(b) || ISNAN(ncp)) + return x + a + b + ncp; +#endif + if (ncp < 0 || a <= 0 || b <= 0) + ML_ERR_return_NAN; + + if (!R_FINITE(a) || !R_FINITE(b) || !R_FINITE(ncp)) + ML_ERR_return_NAN; + + if (x < 0 || x > 1) return(R_D__0); + if(ncp == 0) + return dbeta(x, a, b, give_log); + + /* New algorithm, starting with *largest* term : */ + ncp2 = 0.5 * ncp; + dx2 = ncp2*x; + d = (dx2 - a - 1)/2; + D = d*d + dx2 * (a + b) - a; + if(D <= 0) { + kMax = 0; + } else { + D = ceil(d + sqrt(D)); + kMax = (D > 0) ? (int)D : 0; + } + + /* The starting "middle term" --- first look at it's log scale: */ + term = dbeta(x, a + kMax, b, /* log = */ TRUE); + p_k = dpois_raw(kMax, ncp2, TRUE); + if(x == 0. || !R_FINITE(term) || !R_FINITE((double)p_k)) /* if term = +Inf */ + return R_D_exp((double)(p_k + term)); + + /* Now if s_k := p_k * t_k {here = exp(p_k + term)} would underflow, + * we should rather scale everything and re-scale at the end:*/ + + p_k += term; /* = log(p_k) + log(t_k) == log(s_k) -- used at end to rescale */ + /* mid = 1 = the rescaled value, instead of mid = exp(p_k); */ + + /* Now sum from the inside out */ + sum = term = 1. /* = mid term */; + /* middle to the left */ + k = kMax; + while(k > 0 && term > sum * eps) { + k--; + q = /* 1 / r_k = */ (k+1)*(k+a) / (k+a+b) / dx2; + term *= q; + sum += term; + } + /* middle to the right */ + term = 1.; + k = kMax; + do { + q = /* r_{old k} = */ dx2 * (k+a+b) / (k+a) / (k+1); + k++; + term *= q; + sum += term; + } while (term > sum * eps); + +#ifdef HAVE_LONG_DOUBLE + return R_D_exp((double)(p_k + logl(sum))); +#else + return R_D_exp((double)(p_k + log(sum))); +#endif +} diff -Nru jags-3.4.0/src/jrmath/dnbinom.c jags-4.0.0/src/jrmath/dnbinom.c --- jags-3.4.0/src/jrmath/dnbinom.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/dnbinom.c 2015-02-22 20:05:50.000000000 +0000 @@ -6,7 +6,7 @@ * dnbinom_mu(): Martin Maechler, June 2008 * * Merge in to R: - * Copyright (C) 2000--2008, The R Core Development Team + * Copyright (C) 2000--2014, The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -47,7 +47,9 @@ if (prob <= 0 || prob > 1 || size < 0) ML_ERR_return_NAN; R_D_nonint_check(x); if (x < 0 || !R_FINITE(x)) return R_D__0; - x = R_D_forceint(x); + /* limiting case as size approaches zero is point mass at zero */ + if (x == 0 && size==0) return R_D__1; + x = R_forceint(x); ans = dbinom_raw(size, x+size, prob, 1-prob, give_log); p = ((double)size)/(size+x); @@ -68,12 +70,20 @@ if (mu < 0 || size < 0) ML_ERR_return_NAN; R_D_nonint_check(x); if (x < 0 || !R_FINITE(x)) return R_D__0; - x = R_D_forceint(x); + + /* limiting case as size approaches zero is point mass at zero, + * even if mu is kept constant. limit distribution does not + * have mean mu, though. + */ + if (x == 0 && size==0) return R_D__1; + + x = R_forceint(x); if(x == 0)/* be accurate, both for n << mu, and n >> mu :*/ return R_D_exp(size * (size < mu ? log(size/(size+mu)) : log1p(- mu/(size+mu)))); if(x < 1e-10 * size) { /* don't use dbinom_raw() but MM's formula: */ /* FIXME --- 1e-8 shows problem; rather use algdiv() from ./toms708.c */ - return R_D_exp(x * log(size*mu / (size+mu)) - mu - lgamma(x+1) + + p = (size < mu ? log(size/(1 + size/mu)) : log(mu / (1 + mu/size))); + return R_D_exp(x * p - mu - lgamma(x+1) + log1p(x*(x-1)/(2*size))); } /* else: no unnecessary cancellation inside dbinom_raw, when diff -Nru jags-3.4.0/src/jrmath/dnchisq.c jags-4.0.0/src/jrmath/dnchisq.c --- jags-3.4.0/src/jrmath/dnchisq.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/dnchisq.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-8 The R Development Core Team + * Copyright (C) 2000-12 The R Core Team * Copyright (C) 2004-8 The R Foundation * * This program is free software; you can redistribute it and/or modify @@ -79,22 +79,23 @@ /* upper tail */ term = mid; df = dfmid; i = imax; + double x2 = x * ncp2; do { i++; - q = x * ncp2 / i / df; + q = x2 / i / df; df += 2; term *= q; sum += term; - } while (q >= 1 || term * q > (1-q)*eps); + } while (q >= 1 || term * q > (1-q)*eps || term > 1e-10*sum); /* lower tail */ term = mid; df = dfmid; i = imax; - while ( i ){ + while (i) { df -= 2; - q = i * df / x / ncp2; + q = i * df / x2; i--; term *= q; sum += term; if (q < 1 && term * q <= (1-q)*eps) break; } - return R_D_val(sum); + return R_D_val((double) sum); } diff -Nru jags-3.4.0/src/jrmath/dnf.c jags-4.0.0/src/jrmath/dnf.c --- jags-3.4.0/src/jrmath/dnf.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/dnf.c 2015-02-22 20:05:50.000000000 +0000 @@ -0,0 +1,79 @@ +/* + * AUTHOR + * Peter Ruckdeschel, peter.ruckdeschel@uni-bayreuth.de. + * April 13, 2006. + * + * Merge in to R: + * Copyright (C) 2006 The R Core Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + * + * + * DESCRIPTION + * + * The density function of the non-central F distribution --- + * obtained by differentiating the corresp. cumulative distribution function + * using dnbeta. + * For df1 < 2, since the F density has a singularity as x -> Inf. + */ + +#include "nmath.h" +#include "dpq.h" + +double dnf(double x, double df1, double df2, double ncp, int give_log) +{ + double y, z, f; + +#ifdef IEEE_754 + if (ISNAN(x) || ISNAN(df1) || ISNAN(df2) || ISNAN(ncp)) + return x + df2 + df1 + ncp; +#endif + + /* want to compare dnf(ncp=0) behavior with df() one, hence *NOT* : + * if (ncp == 0) + * return df(x, df1, df2, give_log); */ + + if (df1 <= 0. || df2 <= 0. || ncp < 0) ML_ERR_return_NAN; + if (x < 0.) return(R_D__0); + if (!R_FINITE(ncp)) /* ncp = +Inf -- FIXME?: in some cases, limit exists */ + ML_ERR_return_NAN; + + /* This is not correct for df1 == 2, ncp > 0 - and seems unneeded: + * if (x == 0.) return(df1 > 2 ? R_D__0 : (df1 == 2 ? R_D__1 : ML_POSINF)); + */ + if (!R_FINITE(df1) && !R_FINITE(df2)) { /* both +Inf */ + /* PR: not sure about this (taken from ncp==0) -- FIXME ? */ + if(x == 1.) return ML_POSINF; + /* else */ return R_D__0; + } + if (!R_FINITE(df2)) /* i.e. = +Inf */ + return df1* dnchisq(x*df1, df1, ncp, give_log); + /* == dngamma(x, df1/2, 2./df1, ncp, give_log) -- but that does not exist */ + if (df1 > 1e14 && ncp < 1e7) { + /* includes df1 == +Inf: code below is inaccurate there */ + f = 1 + ncp/df1; /* assumes ncp << df1 [ignores 2*ncp^(1/2)/df1*x term] */ + z = dgamma(1./x/f, df2/2, 2./df2, give_log); + return give_log ? z - 2*log(x) - log(f) : z / (x*x) / f; + } + + y = (df1 / df2) * x; + z = dnbeta(y/(1 + y), df1 / 2., df2 / 2., ncp, give_log); + return give_log ? + z + log(df1) - log(df2) - 2 * log1p(y) : + z * (df1 / df2) /(1 + y) / (1 + y); +} + + + diff -Nru jags-3.4.0/src/jrmath/dnorm.c jags-4.0.0/src/jrmath/dnorm.c --- jags-3.4.0/src/jrmath/dnorm.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/dnorm.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000-2014 The R Core Team * Copyright (C) 2003 The R Foundation * * This program is free software; you can redistribute it and/or modify @@ -47,8 +47,49 @@ x = (x - mu) / sigma; if(!R_FINITE(x)) return R_D__0; - return (give_log ? - -(M_LN_SQRT_2PI + 0.5 * x * x + log(sigma)) : - M_1_SQRT_2PI * exp(-0.5 * x * x) / sigma); - /* M_1_SQRT_2PI = 1 / sqrt(2 * pi) */ + + x = fabs (x); + if (x >= 2 * sqrt(DBL_MAX)) return R_D__0; + if (give_log) + return -(M_LN_SQRT_2PI + 0.5 * x * x + log(sigma)); + // M_1_SQRT_2PI = 1 / sqrt(2 * pi) +#ifdef MATHLIB_FAST_dnorm + // and for R <= 3.0.x and R-devel upto 2014-01-01: + return M_1_SQRT_2PI * exp(-0.5 * x * x) / sigma; +#else + // more accurate, less fast : + if (x < 5) return M_1_SQRT_2PI * exp(-0.5 * x * x) / sigma; + + /* ELSE: + + * x*x may lose upto about two digits accuracy for "large" x + * Morten Welinder's proposal for PR#15620 + * https://bugs.r-project.org/bugzilla/show_bug.cgi?id=15620 + + * -- 1 -- No hoop jumping when we underflow to zero anyway: + + * -x^2/2 < log(2)*.Machine$double.min.exp <==> + * x > sqrt(-2*log(2)*.Machine$double.min.exp) =IEEE= 37.64031 + * but "thanks" to denormalized numbers, underflow happens a bit later, + * effective.D.MIN.EXP <- with(.Machine, double.min.exp + double.ulp.digits) + * for IEEE, DBL_MIN_EXP is -1022 but "effective" is -1074 + * ==> boundary = sqrt(-2*log(2)*(.Machine$double.min.exp + .Machine$double.ulp.digits)) + * =IEEE= 38.58601 + * [on one x86_64 platform, effective boundary a bit lower: 38.56804] + */ + if (x > sqrt(-2*M_LN2*(DBL_MIN_EXP + 1-DBL_MANT_DIG))) return 0.; + + /* Now, to get full accurary, split x into two parts, + * x = x1+x2, such that |x2| <= 2^-16. + * Assuming that we are using IEEE doubles, that means that + * x1*x1 is error free for x<1024 (but we have x < 38.6 anyway). + + * If we do not have IEEE this is still an improvement over the naive formula. + */ + double x1 = // R_forceint(x * 65536) / 65536 = + ldexp( R_forceint(ldexp(x, 16)), -16); + double x2 = x - x1; + return M_1_SQRT_2PI / sigma * + (exp(-0.5 * x1 * x1) * exp( (-0.5 * x2 - x1) * x2 ) ); +#endif } diff -Nru jags-3.4.0/src/jrmath/dnt.c jags-4.0.0/src/jrmath/dnt.c --- jags-3.4.0/src/jrmath/dnt.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/dnt.c 2015-02-22 20:05:50.000000000 +0000 @@ -0,0 +1,101 @@ +/* + * AUTHOR + * Claus Ekstrøm, ekstrom@dina.kvl.dk + * July 15, 2003. + * + * Merge in to R: + * Copyright (C) 2003 The R Foundation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + * + * + * NOTE + * + * Requires the following auxiliary routines: + * + * lgammafn(x) - log gamma function + * pnt(x, df, ncp) - the distribution function for + * the non-central t distribution + * + * + * DESCRIPTION + * + * The non-central t density is + * + * f(x, df, ncp) = + * df^(df/2) * exp(-.5*ncp^2) / + * (sqrt(pi)*gamma(df/2)*(df+x^2)^((df+1)/2)) * + * sum_{k=0}^Inf gamma((df + k + df)/2)*ncp^k / + * prod(1:k)*(2*x^2/(df+x^2))^(k/2) + * + * The functional relationship + * + * f(x, df, ncp) = df/x * + * (F(sqrt((df+2)/df)*x, df+2, ncp) - F(x, df, ncp)) + * + * is used to evaluate the density at x != 0 and + * + * f(0, df, ncp) = exp(-.5*ncp^2) / + * (sqrt(pi)*sqrt(df)*gamma(df/2))*gamma((df+1)/2) + * + * is used for x=0. + * + * All calculations are done on log-scale to increase stability. + * + */ + +#include "nmath.h" +#include "dpq.h" + +double dnt(double x, double df, double ncp, int give_log) +{ + double u; +#ifdef IEEE_754 + if (ISNAN(x) || ISNAN(df)) + return x + df; +#endif + + /* If non-positive df then error */ + if (df <= 0.0) ML_ERR_return_NAN; + + if(ncp == 0.0) return dt(x, df, give_log); + + /* If x is infinite then return 0 */ + if(!R_FINITE(x)) + return R_D__0; + + /* If infinite df then the density is identical to a + normal distribution with mean = ncp. However, the formula + loses a lot of accuracy around df=1e9 + */ + if(!R_FINITE(df) || df > 1e8) + return dnorm(x, ncp, 1., give_log); + + /* Do calculations on log scale to stabilize */ + + /* Consider two cases: x ~= 0 or not */ + if (fabs(x) > sqrt(df * DBL_EPSILON)) { + u = log(df) - log(fabs(x)) + + log(fabs(pnt(x*sqrt((df+2)/df), df+2, ncp, 1, 0) - + pnt(x, df, ncp, 1, 0))); + /* FIXME: the above still suffers from cancellation (but not horribly) */ + } + else { /* x ~= 0 : -> same value as for x = 0 */ + u = lgammafn((df+1)/2) - lgammafn(df/2) + - (M_LN_SQRT_PI + .5*(log(df) + ncp*ncp)); + } + + return (give_log ? u : exp(u)); +} diff -Nru jags-3.4.0/src/jrmath/dpois.c jags-4.0.0/src/jrmath/dpois.c --- jags-3.4.0/src/jrmath/dpois.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/dpois.c 2015-02-22 20:05:50.000000000 +0000 @@ -4,7 +4,7 @@ * October 23, 2000. * * Merge in to R: - * Copyright (C) 2000, The R Core Development Team + * Copyright (C) 2000-2014 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -60,7 +60,7 @@ if (x < 0 || !R_FINITE(x)) return R_D__0; - x = R_D_forceint(x); + x = R_forceint(x); return( dpois_raw(x,lambda,give_log) ); } diff -Nru jags-3.4.0/src/jrmath/dpq.h jags-4.0.0/src/jrmath/dpq.h --- jags-3.4.0/src/jrmath/dpq.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/dpq.h 2015-02-22 21:24:12.000000000 +0000 @@ -1,6 +1,6 @@ /* * R : A Computer Language for Statistical Data Analysis - * Copyright (C) 2000--2007 R Development Core Team + * Copyright (C) 2000--2014 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -26,6 +26,8 @@ #define R_D__1 (log_p ? 0. : 1.) /* 1 */ #define R_DT_0 (lower_tail ? R_D__0 : R_D__1) /* 0 */ #define R_DT_1 (lower_tail ? R_D__1 : R_D__0) /* 1 */ +#define R_D_half (log_p ? -M_LN2 : 0.5) // 1/2 (lower- or upper tail) + /* Use 0.5 - p + 0.5 to perhaps gain 1 bit of accuracy */ #define R_D_Lval(p) (lower_tail ? (p) : (0.5 - (p) + 0.5)) /* p */ @@ -37,7 +39,7 @@ #define R_D_log(p) (log_p ? (p) : log(p)) /* log(p) */ #define R_D_Clog(p) (log_p ? log1p(-(p)) : (0.5 - (p) + 0.5)) /* [log](1-p) */ -/* log(1 - exp(x)) in more stable form than log1p(- R_D_qIv(x))) : */ +// log(1 - exp(x)) in more stable form than log1p(- R_D_qIv(x)) : #define R_Log1_Exp(x) ((x) > -M_LN2 ? log(-expm1(x)) : log1p(-exp(x))) /* log(1-exp(x)): R_D_LExp(x) == (log1p(- R_D_qIv(x))) but even more stable:*/ @@ -60,7 +62,7 @@ #define R_DT_log(p) (lower_tail? R_D_log(p) : R_D_LExp(p))/* log(p) in qF */ #define R_DT_Clog(p) (lower_tail? R_D_LExp(p): R_D_log(p))/* log(1-p) in qF*/ #define R_DT_Log(p) (lower_tail? (p) : R_Log1_Exp(p)) -/* == R_DT_log when we already "know" log_p == TRUE :*/ +// == R_DT_log when we already "know" log_p == TRUE #define R_Q_P01_check(p) \ @@ -112,13 +114,13 @@ /* additions for density functions (C.Loader) */ #define R_D_fexp(f,x) (give_log ? -0.5*log(f)+(x) : exp(x)/sqrt(f)) -#define R_D_forceint(x) floor((x) + 0.5) -#define R_D_nonint(x) (fabs((x) - floor((x)+0.5)) > 1e-7) + /* [neg]ative or [non int]eger : */ -#define R_D_negInonint(x) (x < 0. || R_D_nonint(x)) +#define R_D_negInonint(x) (x < 0. || R_nonint(x)) +// for discrete d(x, ...) : #define R_D_nonint_check(x) \ - if(R_D_nonint(x)) { \ + if(R_nonint(x)) { \ MATHLIB_WARNING("non-integer x = %f", x); \ return R_D__0; \ } diff -Nru jags-3.4.0/src/jrmath/dt.c jags-4.0.0/src/jrmath/dt.c --- jags-3.4.0/src/jrmath/dt.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/dt.c 2015-02-22 20:05:50.000000000 +0000 @@ -4,7 +4,7 @@ * October 23, 2000. * * Merge in to R: - * Copyright (C) 2000, The R Core Development Team + * Copyright (C) 2000-2013 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -37,23 +37,46 @@ double dt(double x, double n, int give_log) { - double t, u; #ifdef IEEE_754 if (ISNAN(x) || ISNAN(n)) return x + n; #endif - if (n <= 0) ML_ERR_return_NAN; if(!R_FINITE(x)) return R_D__0; if(!R_FINITE(n)) return dnorm(x, 0., 1., give_log); - t = -bd0(n/2.,(n+1)/2.) + stirlerr((n+1)/2.) - stirlerr(n/2.); - if ( x*x > 0.2*n ) - u = log( 1+ x*x/n ) * n/2; - else + double u, ax, t = -bd0(n/2.,(n+1)/2.) + stirlerr((n+1)/2.) - stirlerr(n/2.), + x2n = x*x/n, // in [0, Inf] + l_x2n; // := log(sqrt(1 + x2n)) = log(1 + x2n)/2 + Rboolean lrg_x2n = (x2n > 1./DBL_EPSILON); + if (lrg_x2n) { // large x^2/n : + ax = fabs(x); + l_x2n = log(ax) - log(n)/2.; // = log(x2n)/2 = 1/2 * log(x^2 / n) + u = // log(1 + x2n) * n/2 = n * log(1 + x2n)/2 = + n * l_x2n; + } + else if (x2n > 0.2) { + l_x2n = log(1 + x2n)/2.; + u = n * l_x2n; + } else { + l_x2n = log1p(x2n)/2.; u = -bd0(n/2.,(n+x*x)/2.) + x*x/2.; + } + + //old: return R_D_fexp(M_2PI*(1+x2n), t-u); + + // R_D_fexp(f,x) := (give_log ? -0.5*log(f)+(x) : exp(x)/sqrt(f)) + // f = 2pi*(1+x2n) + // ==> 0.5*log(f) = log(2pi)/2 + log(1+x2n)/2 = log(2pi)/2 + l_x2n + // 1/sqrt(f) = 1/sqrt(2pi * (1+ x^2 / n)) + // = 1/sqrt(2pi)/(|x|/sqrt(n)*sqrt(1+1/x2n)) + // = M_1_SQRT_2PI * sqrt(n)/ (|x|*sqrt(1+1/x2n)) + if(give_log) + return t-u - (M_LN_SQRT_2PI + l_x2n); - return R_D_fexp(M_2PI*(1+x*x/n), t-u); + // else : if(lrg_x2n) : sqrt(1 + 1/x2n) ='= sqrt(1) = 1 + double I_sqrt_ = (lrg_x2n ? sqrt(n)/ax : exp(-l_x2n)); + return exp(t-u) * M_1_SQRT_2PI * I_sqrt_; } diff -Nru jags-3.4.0/src/jrmath/dunif.c jags-4.0.0/src/jrmath/dunif.c --- jags-3.4.0/src/jrmath/dunif.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/dunif.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -Nru jags-3.4.0/src/jrmath/dweibull.c jags-4.0.0/src/jrmath/dweibull.c --- jags-3.4.0/src/jrmath/dweibull.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/dweibull.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-6 The R Development Core Team + * Copyright (C) 2000-6 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -Nru jags-3.4.0/src/jrmath/fprec.c jags-4.0.0/src/jrmath/fprec.c --- jags-3.4.0/src/jrmath/fprec.c 2013-08-22 15:44:58.000000000 +0000 +++ jags-4.0.0/src/jrmath/fprec.c 2015-02-24 21:27:38.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000, 2001, 2005-2006 The R Development Core Team + * Copyright (C) 2000-2014 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -38,19 +38,20 @@ #include #include "nmath.h" -#ifndef HAVE_RINT -#define USE_BUILTIN_RINT -#endif -#ifdef USE_BUILTIN_RINT -#define R_rint private_rint -extern double private_rint(double x); +/* nearbyint is C99, so all platforms should have it (and AFAIK, all do) */ +#ifdef HAVE_NEARBYINT +# define R_rint nearbyint +#elif defined(HAVE_RINT) +# define R_rint rint #else -#define R_rint rint +# define R_rint private_rint +extern double private_rint(double x); #endif + /* Improvements by Martin Maechler, May 1997; further ones, Feb.2000: - Replace pow(x, (double)i) by R_pow_di(x, i) {and use int dig} */ + Replace pow(x, (double)i) by JR_pow_di(x, i) {and use int dig} */ #define MAX_DIGITS 22 /* was till R 0.99: DBL_DIG := digits of precision of a double, usually 15 */ @@ -70,19 +71,17 @@ double l10, pow10, sgn, p10, P10; int e10, e2, do_round, dig; /* Max.expon. of 10 (=308.2547) */ - const static int max10e = DBL_MAX_EXP * M_LOG10_2; + const static int max10e = (int) (DBL_MAX_EXP * M_LOG10_2); -#ifdef IEEE_754 if (ISNAN(x) || ISNAN(digits)) return x + digits; if (!R_FINITE(x)) return x; if (!R_FINITE(digits)) { - if(digits > 0) return x; - else return 0; + if(digits > 0.0) return x; + else digits = 1.0; } -#endif if(x == 0) return x; - dig = (int)floor(digits+0.5); + dig = (int)round(digits); if (dig > MAX_DIGITS) { return x; } else if (dig < 1) @@ -98,22 +97,22 @@ if(fabs(l10) < max10e - 2) { p10 = 1.0; if(e10 > max10e) { /* numbers less than 10^(dig-1) * 1e-308 */ - p10 = R_pow_di(10., e10-max10e); + p10 = JR_pow_di(10., e10-max10e); e10 = max10e; } if(e10 > 0) { /* Try always to have pow >= 1 and so exactly representable */ - pow10 = R_pow_di(10., e10); + pow10 = JR_pow_di(10., e10); return(sgn*(R_rint((x*pow10)*p10)/pow10)/p10); } else { - pow10 = R_pow_di(10., -e10); + pow10 = JR_pow_di(10., -e10); return(sgn*(R_rint((x/pow10))*pow10)); } } else { /* -- LARGE or small -- */ - do_round = max10e - l10 >= R_pow_di(10., -dig); + do_round = max10e - l10 >= JR_pow_di(10., -dig); e2 = dig + ((e10>0)? 1 : -1) * MAX_DIGITS; - p10 = R_pow_di(10., e2); x *= p10; - P10 = R_pow_di(10., e10-e2); x *= P10; + p10 = JR_pow_di(10., e2); x *= p10; + P10 = JR_pow_di(10., e10-e2); x *= P10; /*-- p10 * P10 = 10 ^ e10 */ if(do_round) x += 0.5; x = floor(x) / p10; diff -Nru jags-3.4.0/src/jrmath/fround.c jags-4.0.0/src/jrmath/fround.c --- jags-3.4.0/src/jrmath/fround.c 2011-11-14 08:22:13.000000000 +0000 +++ jags-4.0.0/src/jrmath/fround.c 2015-02-22 22:26:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-2001, 2005 The R Development Core Team + * Copyright (C) 2000-11 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -28,17 +28,21 @@ * */ -#include /* needed for HAVE_RINT and USE_BUILTIN_RINT */ +#include /* needed for HAVE_*, IEEE_754 */ +#include #include "nmath.h" -/* USE_BUILTIN_RINT could also be defined by a configure test */ -#ifndef HAVE_RINT -#define USE_BUILTIN_RINT -#endif -#ifdef USE_BUILTIN_RINT -#define R_rint private_rint +/* nearbyint is C99, so all platforms should have it (and AFAIK, all do) */ +#ifdef HAVE_NEARBYINT +# define R_rint nearbyint +#elif defined(HAVE_RINT) +# define R_rint rint +#else +# define R_rint private_rint +extern double private_rint(double x); +/* also used potentially in fprec.c and main/format.c */ double attribute_hidden private_rint(double x) { double tmp, sgn = 1.0; @@ -63,8 +67,6 @@ } return sgn * tmp; } -#else -#define R_rint rint #endif double fround(double x, double digits) { @@ -74,14 +76,14 @@ LDOUBLE pow10, sgn, intx; int dig; -#ifdef IEEE_754 if (ISNAN(x) || ISNAN(digits)) return x + digits; if(!R_FINITE(x)) return x; -#endif - if (digits > MAX_DIGITS) - digits = MAX_DIGITS; + if(digits == ML_POSINF) return x; + else if(digits == ML_NEGINF) return 0.0; + + if (digits > MAX_DIGITS) digits = MAX_DIGITS; dig = (int)floor(digits + 0.5); if(x < 0.) { sgn = -1.; @@ -89,13 +91,13 @@ } else sgn = 1.; if (dig == 0) { - return sgn * R_rint(x); + return (double)(sgn * R_rint(x)); } else if (dig > 0) { - pow10 = R_pow_di(10., dig); + pow10 = JR_pow_di(10., dig); intx = floor(x); - return sgn * (intx + R_rint((x-intx) * pow10) / pow10); + return (double)(sgn * (intx + R_rint((double)((x-intx) * pow10)) / pow10)); } else { - pow10 = R_pow_di(10., -dig); - return sgn * R_rint(x/pow10) * pow10; + pow10 = JR_pow_di(10., -dig); + return (double)(sgn * R_rint((double)(x/pow10)) * pow10); } } diff -Nru jags-3.4.0/src/jrmath/ftrunc.c jags-4.0.0/src/jrmath/ftrunc.c --- jags-3.4.0/src/jrmath/ftrunc.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/ftrunc.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,6 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka + * Copyright (C) 2013 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -28,8 +29,16 @@ #include "nmath.h" +#ifdef OLD double ftrunc(double x) { if(x >= 0) return floor(x); else return ceil(x); } +#else +// use C99 function +double ftrunc(double x) +{ + return trunc(x); +} +#endif diff -Nru jags-3.4.0/src/jrmath/gamma.c jags-4.0.0/src/jrmath/gamma.c --- jags-3.4.0/src/jrmath/gamma.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/gamma.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-2001 The R Development Core Team + * Copyright (C) 2000-2013 The R Core Team * Copyright (C) 2002-2004 The R Foundation * * This program is free software; you can redistribute it and/or modify @@ -123,7 +123,7 @@ /* If the argument is exactly zero or a negative integer * then return NaN. */ - if (x == 0 || (x < 0 && x == (long)x)) { + if (x == 0 || (x < 0 && x == round(x))) { ML_ERROR(ME_DOMAIN, "gammafn"); return ML_NAN; } @@ -136,7 +136,7 @@ * Reduce the interval and find gamma(1 + y) for 0 <= y < 1 * first of all. */ - n = x; + n = (int) x; if(x < 0) --n; y = x - n;/* n = floor(x) ==> y in [ 0, 1 ) */ --n; @@ -210,7 +210,7 @@ ML_ERROR(ME_PRECISION, "gammafn"); } - sinpiy = sin(M_PI * y); + sinpiy = sinpi(y); if (sinpiy == 0) { /* Negative integer arg - overflow */ ML_ERROR(ME_RANGE, "gammafn"); return ML_POSINF; diff -Nru jags-3.4.0/src/jrmath/gamma_cody.c jags-4.0.0/src/jrmath/gamma_cody.c --- jags-3.4.0/src/jrmath/gamma_cody.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/gamma_cody.c 2015-02-24 21:16:15.000000000 +0000 @@ -0,0 +1,244 @@ +/* From http://www.netlib.org/specfun/gamma Fortran translated by f2c,... + * ------------------------------##### Martin Maechler, ETH Zurich + * + *=========== was part of ribesl (Bessel I(.)) + *=========== ~~~~~~ + */ + +// used in bessel_i.c and bessel_j.c, hidden if possible. + +#include "nmath.h" + +double attribute_hidden jags_gamma_cody(double x) +{ +/* ---------------------------------------------------------------------- + + This routine calculates the GAMMA function for a float argument X. + Computation is based on an algorithm outlined in reference [1]. + The program uses rational functions that approximate the GAMMA + function to at least 20 significant decimal digits. Coefficients + for the approximation over the interval (1,2) are unpublished. + Those for the approximation for X >= 12 are from reference [2]. + The accuracy achieved depends on the arithmetic system, the + compiler, the intrinsic functions, and proper selection of the + machine-dependent constants. + + ******************************************************************* + + Error returns + + The program returns the value XINF for singularities or + when overflow would occur. The computation is believed + to be free of underflow and overflow. + + Intrinsic functions required are: + + INT, DBLE, EXP, LOG, REAL, SIN + + + References: + [1] "An Overview of Software Development for Special Functions", + W. J. Cody, Lecture Notes in Mathematics, 506, + Numerical Analysis Dundee, 1975, G. A. Watson (ed.), + Springer Verlag, Berlin, 1976. + + [2] Computer Approximations, Hart, Et. Al., Wiley and sons, New York, 1968. + + Latest modification: October 12, 1989 + + Authors: W. J. Cody and L. Stoltz + Applied Mathematics Division + Argonne National Laboratory + Argonne, IL 60439 + ----------------------------------------------------------------------*/ + +/* ---------------------------------------------------------------------- + Mathematical constants + ----------------------------------------------------------------------*/ + const static double sqrtpi = .9189385332046727417803297; /* == ??? */ + +/* ******************************************************************* + + Explanation of machine-dependent constants + + beta - radix for the floating-point representation + maxexp - the smallest positive power of beta that overflows + XBIG - the largest argument for which GAMMA(X) is representable + in the machine, i.e., the solution to the equation + GAMMA(XBIG) = beta**maxexp + XINF - the largest machine representable floating-point number; + approximately beta**maxexp + EPS - the smallest positive floating-point number such that 1.0+EPS > 1.0 + XMININ - the smallest positive floating-point number such that + 1/XMININ is machine representable + + Approximate values for some important machines are: + + beta maxexp XBIG + + CRAY-1 (S.P.) 2 8191 966.961 + Cyber 180/855 + under NOS (S.P.) 2 1070 177.803 + IEEE (IBM/XT, + SUN, etc.) (S.P.) 2 128 35.040 + IEEE (IBM/XT, + SUN, etc.) (D.P.) 2 1024 171.624 + IBM 3033 (D.P.) 16 63 57.574 + VAX D-Format (D.P.) 2 127 34.844 + VAX G-Format (D.P.) 2 1023 171.489 + + XINF EPS XMININ + + CRAY-1 (S.P.) 5.45E+2465 7.11E-15 1.84E-2466 + Cyber 180/855 + under NOS (S.P.) 1.26E+322 3.55E-15 3.14E-294 + IEEE (IBM/XT, + SUN, etc.) (S.P.) 3.40E+38 1.19E-7 1.18E-38 + IEEE (IBM/XT, + SUN, etc.) (D.P.) 1.79D+308 2.22D-16 2.23D-308 + IBM 3033 (D.P.) 7.23D+75 2.22D-16 1.39D-76 + VAX D-Format (D.P.) 1.70D+38 1.39D-17 5.88D-39 + VAX G-Format (D.P.) 8.98D+307 1.11D-16 1.12D-308 + + ******************************************************************* + + ---------------------------------------------------------------------- + Machine dependent parameters + ---------------------------------------------------------------------- + */ + + + const static double xbig = 171.624; + /* ML_POSINF == const double xinf = 1.79e308;*/ + /* DBL_EPSILON = const double eps = 2.22e-16;*/ + /* DBL_MIN == const double xminin = 2.23e-308;*/ + + /*---------------------------------------------------------------------- + Numerator and denominator coefficients for rational minimax + approximation over (1,2). + ----------------------------------------------------------------------*/ + const static double p[8] = { + -1.71618513886549492533811, + 24.7656508055759199108314,-379.804256470945635097577, + 629.331155312818442661052,866.966202790413211295064, + -31451.2729688483675254357,-36144.4134186911729807069, + 66456.1438202405440627855 }; + const static double q[8] = { + -30.8402300119738975254353, + 315.350626979604161529144,-1015.15636749021914166146, + -3107.77167157231109440444,22538.1184209801510330112, + 4755.84627752788110767815,-134659.959864969306392456, + -115132.259675553483497211 }; + /*---------------------------------------------------------------------- + Coefficients for minimax approximation over (12, INF). + ----------------------------------------------------------------------*/ + const static double c[7] = { + -.001910444077728,8.4171387781295e-4, + -5.952379913043012e-4,7.93650793500350248e-4, + -.002777777777777681622553,.08333333333333333331554247, + .0057083835261 }; + + /* Local variables */ + int i, n; + int parity;/*logical*/ + double fact, xden, xnum, y, z, yi, res, sum, ysq; + + parity = (0); + fact = 1.; + n = 0; + y = x; + if (y <= 0.) { + /* ------------------------------------------------------------- + Argument is negative + ------------------------------------------------------------- */ + y = -x; + yi = trunc(y); + res = y - yi; + if (res != 0.) { + if (yi != trunc(yi * .5) * 2.) + parity = (1); + fact = -M_PI / sinpi(res); + y += 1.; + } else { + return(ML_POSINF); + } + } + /* ----------------------------------------------------------------- + Argument is positive + -----------------------------------------------------------------*/ + if (y < DBL_EPSILON) { + /* -------------------------------------------------------------- + Argument < EPS + -------------------------------------------------------------- */ + if (y >= DBL_MIN) { + res = 1. / y; + } else { + return(ML_POSINF); + } + } else if (y < 12.) { + yi = y; + if (y < 1.) { + /* --------------------------------------------------------- + EPS < argument < 1 + --------------------------------------------------------- */ + z = y; + y += 1.; + } else { + /* ----------------------------------------------------------- + 1 <= argument < 12, reduce argument if necessary + ----------------------------------------------------------- */ + n = (int) y - 1; + y -= (double) n; + z = y - 1.; + } + /* --------------------------------------------------------- + Evaluate approximation for 1. < argument < 2. + ---------------------------------------------------------*/ + xnum = 0.; + xden = 1.; + for (i = 0; i < 8; ++i) { + xnum = (xnum + p[i]) * z; + xden = xden * z + q[i]; + } + res = xnum / xden + 1.; + if (yi < y) { + /* -------------------------------------------------------- + Adjust result for case 0. < argument < 1. + -------------------------------------------------------- */ + res /= yi; + } else if (yi > y) { + /* ---------------------------------------------------------- + Adjust result for case 2. < argument < 12. + ---------------------------------------------------------- */ + for (i = 0; i < n; ++i) { + res *= y; + y += 1.; + } + } + } else { + /* ------------------------------------------------------------- + Evaluate for argument >= 12., + ------------------------------------------------------------- */ + if (y <= xbig) { + ysq = y * y; + sum = c[6]; + for (i = 0; i < 6; ++i) { + sum = sum / ysq + c[i]; + } + sum = sum / y - y + sqrtpi; + sum += (y - .5) * log(y); + res = exp(sum); + } else { + return(ML_POSINF); + } + } + /* ---------------------------------------------------------------------- + Final adjustments and return + ----------------------------------------------------------------------*/ + if (parity) + res = -res; + if (fact != 1.) + res = fact / res; + return res; +} + diff -Nru jags-3.4.0/src/jrmath/gammalims.c jags-4.0.0/src/jrmath/gammalims.c --- jags-3.4.0/src/jrmath/gammalims.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/gammalims.c 2015-02-22 20:05:50.000000000 +0000 @@ -0,0 +1,93 @@ +/* + * Mathlib : A C Library of Special Functions + * Copyright (C) 1998 Ross Ihaka + * Copyright (C) 1999-2000 The R Core Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + * + * SYNOPSIS + * + * #include + * void gammalims(double *xmin, double *xmax); + * + * DESCRIPTION + * + * This function calculates the minimum and maximum legal bounds + * for x in gammafn(x). These are not the only bounds, but they + * are the only non-trivial ones to calculate. + * + * NOTES + * + * This routine is a translation into C of a Fortran subroutine + * by W. Fullerton of Los Alamos Scientific Laboratory. + */ + +#include "nmath.h" + +void attribute_hidden gammalims(double *xmin, double *xmax) +{ +/* FIXME: Even better: If IEEE, #define these in nmath.h + and don't call gammalims() at all +*/ +#ifdef IEEE_754 + *xmin = -170.5674972726612; + *xmax = 171.61447887182298;/*(3 Intel/Sparc architectures)*/ +#else + double alnbig, alnsml, xln, xold; + int i; + + alnsml = log(d1mach(1)); + *xmin = -alnsml; + for (i=1; i<=10; ++i) { + xold = *xmin; + xln = log(*xmin); + *xmin -= *xmin * ((*xmin + .5) * xln - *xmin - .2258 + alnsml) / + (*xmin * xln + .5); + if (fabs(*xmin - xold) < .005) { + *xmin = -(*xmin) + .01; + goto find_xmax; + } + } + + /* unable to find xmin */ + + ML_ERROR(ME_NOCONV, "gammalims"); + *xmin = *xmax = ML_NAN; + +find_xmax: + + alnbig = log(d1mach(2)); + *xmax = alnbig; + for (i=1; i<=10; ++i) { + xold = *xmax; + xln = log(*xmax); + *xmax -= *xmax * ((*xmax - .5) * xln - *xmax + .9189 - alnbig) / + (*xmax * xln - .5); + if (fabs(*xmax - xold) < .005) { + *xmax += -.01; + goto done; + } + } + + /* unable to find xmax */ + + ML_ERROR(ME_NOCONV, "gammalims"); + *xmin = *xmax = ML_NAN; + +done: + *xmin = fmax2(*xmin, -(*xmax) + 1); +#endif +} + diff -Nru jags-3.4.0/src/jrmath/i1mach.c jags-4.0.0/src/jrmath/i1mach.c --- jags-3.4.0/src/jrmath/i1mach.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/i1mach.c 2015-02-24 21:16:26.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib - A Mathematical Function Library * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-7 The R Development Core Team + * Copyright (C) 2000-7 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -50,3 +50,8 @@ default: return 0; } } + +int F77_NAME(i1mach)(int *i) +{ + return jags_i1mach(*i); +} diff -Nru jags-3.4.0/src/jrmath/lbeta.c jags-4.0.0/src/jrmath/lbeta.c --- jags-3.4.0/src/jrmath/lbeta.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/lbeta.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000-12 The R Core Team * Copyright (C) 2003 The R Foundation * * This program is free software; you can redistribute it and/or modify @@ -39,23 +39,21 @@ { double corr, p, q; - p = q = a; - if(b < p) p = b;/* := min(a,b) */ - if(b > q) q = b;/* := max(a,b) */ - #ifdef IEEE_754 if(ISNAN(a) || ISNAN(b)) return a + b; #endif + p = q = a; + if(b < p) p = b;/* := min(a,b) */ + if(b > q) q = b;/* := max(a,b) */ /* both arguments must be >= 0 */ - if (p < 0) ML_ERR_return_NAN else if (p == 0) { return ML_POSINF; } - else if (!R_FINITE(q)) { + else if (!R_FINITE(q)) { /* q == +Inf */ return ML_NEGINF; } @@ -73,5 +71,7 @@ } else /* p and q are small: p <= q < 10. */ + /* R change for very small args */ + if (p < 1e-306) return lgamma(p) + (lgamma(q) - lgamma(p+q)); return log(gammafn(p) * (gammafn(q) / gammafn(p + q))); } diff -Nru jags-3.4.0/src/jrmath/lgamma.c jags-4.0.0/src/jrmath/lgamma.c --- jags-3.4.0/src/jrmath/lgamma.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/lgamma.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-2001 The R Development Core Team + * Copyright (C) 2000-2012 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -59,7 +59,7 @@ dxrel = sqrt(DBL_EPSILON) = 2^-26 = 5^26 * 1e-26 (is *exact* below !) */ #define xmax 2.5327372760800758e+305 -#define dxrel 1.490116119384765696e-8 +#define dxrel 1.490116119384765625e-8 #endif if (sgn != NULL) *sgn = 1; @@ -68,8 +68,8 @@ if(ISNAN(x)) return x; #endif - if (x < 0 && fmod(floor(-x), 2.) == 0) - if (sgn != NULL) *sgn = -1; + if (sgn != NULL && x < 0 && fmod(floor(-x), 2.) == 0) + *sgn = -1; if (x <= 0 && x == trunc(x)) { /* Negative integer argument */ ML_ERROR(ME_RANGE, "lgamma"); @@ -78,8 +78,8 @@ y = fabs(x); - if (y <= 10) - return log(fabs(gammafn(x))); + if (y < 1e-306) return -log(y); // denormalized range, R change + if (y <= 10) return log(fabs(gammafn(x))); /* ELSE y = |x| > 10 ---------------------- */ @@ -99,7 +99,7 @@ return M_LN_SQRT_2PI + (x - 0.5) * log(x) - x + lgammacor(x); } /* else: x < -10; y = -x */ - sinpiy = fabs(sin(M_PI * y)); + sinpiy = fabs(sinpi(y)); if (sinpiy == 0) { /* Negative integer argument === Now UNNECESSARY: caught above */ diff -Nru jags-3.4.0/src/jrmath/lgammacor.c jags-4.0.0/src/jrmath/lgammacor.c --- jags-3.4.0/src/jrmath/lgammacor.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/lgammacor.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-2001 The R Development Core Team + * Copyright (C) 2000-2001 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -Nru jags-3.4.0/src/jrmath/log1p.c jags-4.0.0/src/jrmath/log1p.c --- jags-3.4.0/src/jrmath/log1p.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/log1p.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,186 +0,0 @@ -/* - * Mathlib : A C Library of Special Functions - * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000, 2003 The R Development Core Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, a copy is available at - * http://www.r-project.org/Licenses/ - * - * SYNOPSIS - * - * #include - * double log1p(double x); - * - * DESCRIPTION - * - * Compute the relative error logarithm. - * - * log(1 + x) - * - * NOTES - * - * This code is a translation of the Fortran subroutine `dlnrel' - * written by W. Fullerton of Los Alamos Scientific Laboratory. - */ - -#ifdef HAVE_CONFIG_H -# include -#endif -#include "nmath.h" - -/* want to compile log1p as Rlog1p if HAVE_LOG1P && !HAVE_WORKING_LOG1P */ -#if defined(HAVE_LOG1P) && !defined(HAVE_WORKING_LOG1P) -#undef HAVE_LOG1P -#endif - -#ifndef HAVE_LOG1P -double log1p(double x) -{ - /* series for log1p on the interval -.375 to .375 - * with weighted error 6.35e-32 - * log weighted error 31.20 - * significant figures required 30.93 - * decimal places required 32.01 - */ - const static double alnrcs[43] = { - +.10378693562743769800686267719098e+1, - -.13364301504908918098766041553133e+0, - +.19408249135520563357926199374750e-1, - -.30107551127535777690376537776592e-2, - +.48694614797154850090456366509137e-3, - -.81054881893175356066809943008622e-4, - +.13778847799559524782938251496059e-4, - -.23802210894358970251369992914935e-5, - +.41640416213865183476391859901989e-6, - -.73595828378075994984266837031998e-7, - +.13117611876241674949152294345011e-7, - -.23546709317742425136696092330175e-8, - +.42522773276034997775638052962567e-9, - -.77190894134840796826108107493300e-10, - +.14075746481359069909215356472191e-10, - -.25769072058024680627537078627584e-11, - +.47342406666294421849154395005938e-12, - -.87249012674742641745301263292675e-13, - +.16124614902740551465739833119115e-13, - -.29875652015665773006710792416815e-14, - +.55480701209082887983041321697279e-15, - -.10324619158271569595141333961932e-15, - +.19250239203049851177878503244868e-16, - -.35955073465265150011189707844266e-17, - +.67264542537876857892194574226773e-18, - -.12602624168735219252082425637546e-18, - +.23644884408606210044916158955519e-19, - -.44419377050807936898878389179733e-20, - +.83546594464034259016241293994666e-21, - -.15731559416479562574899253521066e-21, - +.29653128740247422686154369706666e-22, - -.55949583481815947292156013226666e-23, - +.10566354268835681048187284138666e-23, - -.19972483680670204548314999466666e-24, - +.37782977818839361421049855999999e-25, - -.71531586889081740345038165333333e-26, - +.13552488463674213646502024533333e-26, - -.25694673048487567430079829333333e-27, - +.48747756066216949076459519999999e-28, - -.92542112530849715321132373333333e-29, - +.17578597841760239233269760000000e-29, - -.33410026677731010351377066666666e-30, - +.63533936180236187354180266666666e-31, - }; - -#ifdef NOMORE_FOR_THREADS - static int nlnrel = 0; - static double xmin = 0.0; - - if (xmin == 0.0) xmin = -1 + sqrt(DBL_EPSILON);/*was sqrt(d1mach(4)); */ - if (nlnrel == 0) /* initialize chebychev coefficients */ - nlnrel = chebyshev_init(alnrcs, 43, DBL_EPSILON/20);/*was .1*d1mach(3)*/ -#else -# define nlnrel 22 - const static double xmin = -0.999999985; -/* 22: for IEEE double precision where DBL_EPSILON = 2.22044604925031e-16 */ -#endif - - if (x == 0.) return 0.;/* speed */ - if (x == -1) return(ML_NEGINF); - if (x < -1) ML_ERR_return_NAN; - - if (fabs(x) <= .375) { - /* Improve on speed (only); - again give result accurate to IEEE double precision: */ - if(fabs(x) < .5 * DBL_EPSILON) - return x; - - if( (0 < x && x < 1e-8) || (-1e-9 < x && x < 0)) - return x * (1 - .5 * x); - /* else */ - return x * (1 - x * chebyshev_eval(x / .375, alnrcs, nlnrel)); - } - /* else */ - if (x < xmin) { - /* answer less than half precision because x too near -1 */ - ML_ERROR(ME_PRECISION, "log1p"); - } - return log(1 + x); -} -#endif - - - -/* pythag(a,b) finds sqrt(a^2 + b^2) - * without overflow or destructive underflow. - */ - -double pythag(double a, double b) -{ -#ifndef HAVE_HYPOT - double p, r, s, t, tmp, u; -#endif - - if(ISNAN(a) || ISNAN(b)) /* propagate Na(N)s: */ - return -#ifdef IEEE_754 - a + b; -#else - ML_NAN; -#endif - if (!R_FINITE(a) || !R_FINITE(b)) { - return ML_POSINF; - } -#ifdef HAVE_HYPOT - return hypot(a, b); -#else - p = fmax2(fabs(a), fabs(b)); - if (p != 0.0) { - - /* r = (min(|a|,|b|) / p) ^2 */ - tmp = fmin2(fabs(a), fabs(b))/p; - r = tmp * tmp; - for(;;) { - t = 4.0 + r; - /* This was a test of 4.0 + r == 4.0, but optimizing - compilers nowadays infinite loop on that. */ - if(fabs(r) < 2*DBL_EPSILON) break; - s = r / t; - u = 1. + 2. * s; - p *= u ; - - /* r = (s / u)^2 * r */ - tmp = s / u; - r *= tmp * tmp; - } - } - return p; -#endif -} diff -Nru jags-3.4.0/src/jrmath/Makefile.am jags-4.0.0/src/jrmath/Makefile.am --- jags-3.4.0/src/jrmath/Makefile.am 2013-08-22 15:44:58.000000000 +0000 +++ jags-4.0.0/src/jrmath/Makefile.am 2015-09-10 05:42:23.000000000 +0000 @@ -1,14 +1,19 @@ lib_LTLIBRARIES = libjrmath.la -libjrmath_la_CPPFLAGS = -I$(top_srcdir)/src/include +libjrmath_la_CPPFLAGS = -I$(top_srcdir)/src/include -DMATHLIB_STANDALONE + +libjrmath_la_CFLAGS = -std=c99 libjrmath_la_LDFLAGS = -no-undefined -version-info 0:0:0 +libjrmath_la_LIBADD = -lm + libjrmath_la_SOURCES = callbacks.cc \ -mlutils.c stirlerr.c bd0.c choose.c gamma.c lgamma.c toms708.c \ +beta.c gamma.c gammalims.c lgamma.c polygamma.c toms708.c \ +mlutils.c stirlerr.c bd0.c choose.c \ d1mach.c i1mach.c fsign.c imax2.c imin2.c \ fmin2.c fmax2.c fprec.c fround.c ftrunc.c \ -chebyshev.c lgammacor.c log1p.c lbeta.c \ +chebyshev.c lgammacor.c lbeta.c \ rbeta.c dbeta.c pbeta.c qbeta.c \ rbinom.c dbinom.c pbinom.c qbinom.c \ rchisq.c dchisq.c pchisq.c qchisq.c \ @@ -26,8 +31,13 @@ rnchisq.c dnchisq.c pnchisq.c qnchisq.c \ rcauchy.c dcauchy.c pcauchy.c qcauchy.c \ rf.c df.c pf.c qf.c \ -polygamma.c +cospi.c gamma_cody.c bessel_i.c bessel_j.c bessel_k.c bessel_y.c \ +dgeom.c pgeom.c qgeom.c rgeom.c \ +dnbeta.c pnbeta.c qnbeta.c \ +dnf.c pnf.c qnf.c \ +dnt.c pnt.c qnt.c \ +sign.c -noinst_HEADERS = nmath.h dpq.h +noinst_HEADERS = nmath.h dpq.h bessel.h EXTRA_DIST = README diff -Nru jags-3.4.0/src/jrmath/Makefile.in jags-4.0.0/src/jrmath/Makefile.in --- jags-3.4.0/src/jrmath/Makefile.in 2013-08-30 13:23:26.000000000 +0000 +++ jags-4.0.0/src/jrmath/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/jrmath -DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,6 +99,8 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -97,18 +134,19 @@ } am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) -libjrmath_la_LIBADD = +libjrmath_la_DEPENDENCIES = am_libjrmath_la_OBJECTS = libjrmath_la-callbacks.lo \ + libjrmath_la-beta.lo libjrmath_la-gamma.lo \ + libjrmath_la-gammalims.lo libjrmath_la-lgamma.lo \ + libjrmath_la-polygamma.lo libjrmath_la-toms708.lo \ libjrmath_la-mlutils.lo libjrmath_la-stirlerr.lo \ libjrmath_la-bd0.lo libjrmath_la-choose.lo \ - libjrmath_la-gamma.lo libjrmath_la-lgamma.lo \ - libjrmath_la-toms708.lo libjrmath_la-d1mach.lo \ - libjrmath_la-i1mach.lo libjrmath_la-fsign.lo \ - libjrmath_la-imax2.lo libjrmath_la-imin2.lo \ - libjrmath_la-fmin2.lo libjrmath_la-fmax2.lo \ - libjrmath_la-fprec.lo libjrmath_la-fround.lo \ - libjrmath_la-ftrunc.lo libjrmath_la-chebyshev.lo \ - libjrmath_la-lgammacor.lo libjrmath_la-log1p.lo \ + libjrmath_la-d1mach.lo libjrmath_la-i1mach.lo \ + libjrmath_la-fsign.lo libjrmath_la-imax2.lo \ + libjrmath_la-imin2.lo libjrmath_la-fmin2.lo \ + libjrmath_la-fmax2.lo libjrmath_la-fprec.lo \ + libjrmath_la-fround.lo libjrmath_la-ftrunc.lo \ + libjrmath_la-chebyshev.lo libjrmath_la-lgammacor.lo \ libjrmath_la-lbeta.lo libjrmath_la-rbeta.lo \ libjrmath_la-dbeta.lo libjrmath_la-pbeta.lo \ libjrmath_la-qbeta.lo libjrmath_la-rbinom.lo \ @@ -141,33 +179,76 @@ libjrmath_la-rcauchy.lo libjrmath_la-dcauchy.lo \ libjrmath_la-pcauchy.lo libjrmath_la-qcauchy.lo \ libjrmath_la-rf.lo libjrmath_la-df.lo libjrmath_la-pf.lo \ - libjrmath_la-qf.lo libjrmath_la-polygamma.lo + libjrmath_la-qf.lo libjrmath_la-cospi.lo \ + libjrmath_la-gamma_cody.lo libjrmath_la-bessel_i.lo \ + libjrmath_la-bessel_j.lo libjrmath_la-bessel_k.lo \ + libjrmath_la-bessel_y.lo libjrmath_la-dgeom.lo \ + libjrmath_la-pgeom.lo libjrmath_la-qgeom.lo \ + libjrmath_la-rgeom.lo libjrmath_la-dnbeta.lo \ + libjrmath_la-pnbeta.lo libjrmath_la-qnbeta.lo \ + libjrmath_la-dnf.lo libjrmath_la-pnf.lo libjrmath_la-qnf.lo \ + libjrmath_la-dnt.lo libjrmath_la-pnt.lo libjrmath_la-qnt.lo \ + libjrmath_la-sign.lo libjrmath_la_OBJECTS = $(am_libjrmath_la_OBJECTS) -libjrmath_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libjrmath_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libjrmath_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(libjrmath_la_SOURCES) DIST_SOURCES = $(libjrmath_la_SOURCES) am__can_run_installinfo = \ @@ -176,11 +257,30 @@ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -194,6 +294,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -263,10 +366,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -333,13 +432,16 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ lib_LTLIBRARIES = libjrmath.la -libjrmath_la_CPPFLAGS = -I$(top_srcdir)/src/include +libjrmath_la_CPPFLAGS = -I$(top_srcdir)/src/include -DMATHLIB_STANDALONE +libjrmath_la_CFLAGS = -std=c99 libjrmath_la_LDFLAGS = -no-undefined -version-info 0:0:0 +libjrmath_la_LIBADD = -lm libjrmath_la_SOURCES = callbacks.cc \ -mlutils.c stirlerr.c bd0.c choose.c gamma.c lgamma.c toms708.c \ +beta.c gamma.c gammalims.c lgamma.c polygamma.c toms708.c \ +mlutils.c stirlerr.c bd0.c choose.c \ d1mach.c i1mach.c fsign.c imax2.c imin2.c \ fmin2.c fmax2.c fprec.c fround.c ftrunc.c \ -chebyshev.c lgammacor.c log1p.c lbeta.c \ +chebyshev.c lgammacor.c lbeta.c \ rbeta.c dbeta.c pbeta.c qbeta.c \ rbinom.c dbinom.c pbinom.c qbinom.c \ rchisq.c dchisq.c pchisq.c qchisq.c \ @@ -357,9 +459,14 @@ rnchisq.c dnchisq.c pnchisq.c qnchisq.c \ rcauchy.c dcauchy.c pcauchy.c qcauchy.c \ rf.c df.c pf.c qf.c \ -polygamma.c +cospi.c gamma_cody.c bessel_i.c bessel_j.c bessel_k.c bessel_y.c \ +dgeom.c pgeom.c qgeom.c rgeom.c \ +dnbeta.c pnbeta.c qnbeta.c \ +dnf.c pnf.c qnf.c \ +dnt.c pnt.c qnt.c \ +sign.c -noinst_HEADERS = nmath.h dpq.h +noinst_HEADERS = nmath.h dpq.h bessel.h EXTRA_DIST = README all: all-am @@ -377,7 +484,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/jrmath/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/jrmath/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -395,6 +501,7 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ @@ -421,14 +528,17 @@ clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libjrmath.la: $(libjrmath_la_OBJECTS) $(libjrmath_la_DEPENDENCIES) $(EXTRA_libjrmath_la_DEPENDENCIES) - $(libjrmath_la_LINK) -rpath $(libdir) $(libjrmath_la_OBJECTS) $(libjrmath_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(libjrmath_la_LINK) -rpath $(libdir) $(libjrmath_la_OBJECTS) $(libjrmath_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -437,9 +547,15 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-bd0.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-bessel_i.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-bessel_j.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-bessel_k.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-bessel_y.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-beta.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-callbacks.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-chebyshev.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-choose.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-cospi.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-d1mach.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-dbeta.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-dbinom.Plo@am__quote@ @@ -448,12 +564,16 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-dexp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-df.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-dgamma.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-dgeom.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-dhyper.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-dlnorm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-dlogis.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-dnbeta.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-dnbinom.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-dnchisq.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-dnf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-dnorm.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-dnt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-dpois.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-dt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-dunif.Plo@am__quote@ @@ -465,13 +585,14 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-fsign.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-ftrunc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-gamma.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-gamma_cody.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-gammalims.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-i1mach.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-imax2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-imin2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-lbeta.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-lgamma.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-lgammacor.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-log1p.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-mlutils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-pbeta.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-pbinom.Plo@am__quote@ @@ -480,12 +601,16 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-pexp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-pf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-pgamma.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-pgeom.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-phyper.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-plnorm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-plogis.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-pnbeta.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-pnbinom.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-pnchisq.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-pnf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-pnorm.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-pnt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-polygamma.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-ppois.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-pt.Plo@am__quote@ @@ -498,12 +623,16 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-qexp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-qf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-qgamma.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-qgeom.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-qhyper.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-qlnorm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-qlogis.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-qnbeta.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-qnbinom.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-qnchisq.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-qnf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-qnorm.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-qnt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-qpois.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-qt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-qunif.Plo@am__quote@ @@ -515,6 +644,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-rexp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-rf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-rgamma.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-rgeom.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-rhyper.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-rlnorm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-rlogis.Plo@am__quote@ @@ -525,687 +655,841 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-rt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-runif.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-rweibull.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-sign.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-stirlerr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjrmath_la-toms708.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libjrmath_la-beta.lo: beta.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-beta.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-beta.Tpo -c -o libjrmath_la-beta.lo `test -f 'beta.c' || echo '$(srcdir)/'`beta.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-beta.Tpo $(DEPDIR)/libjrmath_la-beta.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='beta.c' object='libjrmath_la-beta.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-beta.lo `test -f 'beta.c' || echo '$(srcdir)/'`beta.c -libjrmath_la-mlutils.lo: mlutils.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-mlutils.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-mlutils.Tpo -c -o libjrmath_la-mlutils.lo `test -f 'mlutils.c' || echo '$(srcdir)/'`mlutils.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-mlutils.Tpo $(DEPDIR)/libjrmath_la-mlutils.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mlutils.c' object='libjrmath_la-mlutils.lo' libtool=yes @AMDEPBACKSLASH@ +libjrmath_la-gamma.lo: gamma.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-gamma.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-gamma.Tpo -c -o libjrmath_la-gamma.lo `test -f 'gamma.c' || echo '$(srcdir)/'`gamma.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-gamma.Tpo $(DEPDIR)/libjrmath_la-gamma.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gamma.c' object='libjrmath_la-gamma.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-gamma.lo `test -f 'gamma.c' || echo '$(srcdir)/'`gamma.c + +libjrmath_la-gammalims.lo: gammalims.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-gammalims.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-gammalims.Tpo -c -o libjrmath_la-gammalims.lo `test -f 'gammalims.c' || echo '$(srcdir)/'`gammalims.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-gammalims.Tpo $(DEPDIR)/libjrmath_la-gammalims.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gammalims.c' object='libjrmath_la-gammalims.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-mlutils.lo `test -f 'mlutils.c' || echo '$(srcdir)/'`mlutils.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-gammalims.lo `test -f 'gammalims.c' || echo '$(srcdir)/'`gammalims.c -libjrmath_la-stirlerr.lo: stirlerr.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-stirlerr.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-stirlerr.Tpo -c -o libjrmath_la-stirlerr.lo `test -f 'stirlerr.c' || echo '$(srcdir)/'`stirlerr.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-stirlerr.Tpo $(DEPDIR)/libjrmath_la-stirlerr.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stirlerr.c' object='libjrmath_la-stirlerr.lo' libtool=yes @AMDEPBACKSLASH@ +libjrmath_la-lgamma.lo: lgamma.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-lgamma.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-lgamma.Tpo -c -o libjrmath_la-lgamma.lo `test -f 'lgamma.c' || echo '$(srcdir)/'`lgamma.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-lgamma.Tpo $(DEPDIR)/libjrmath_la-lgamma.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lgamma.c' object='libjrmath_la-lgamma.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-stirlerr.lo `test -f 'stirlerr.c' || echo '$(srcdir)/'`stirlerr.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-lgamma.lo `test -f 'lgamma.c' || echo '$(srcdir)/'`lgamma.c -libjrmath_la-bd0.lo: bd0.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-bd0.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-bd0.Tpo -c -o libjrmath_la-bd0.lo `test -f 'bd0.c' || echo '$(srcdir)/'`bd0.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-bd0.Tpo $(DEPDIR)/libjrmath_la-bd0.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bd0.c' object='libjrmath_la-bd0.lo' libtool=yes @AMDEPBACKSLASH@ +libjrmath_la-polygamma.lo: polygamma.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-polygamma.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-polygamma.Tpo -c -o libjrmath_la-polygamma.lo `test -f 'polygamma.c' || echo '$(srcdir)/'`polygamma.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-polygamma.Tpo $(DEPDIR)/libjrmath_la-polygamma.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='polygamma.c' object='libjrmath_la-polygamma.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-bd0.lo `test -f 'bd0.c' || echo '$(srcdir)/'`bd0.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-polygamma.lo `test -f 'polygamma.c' || echo '$(srcdir)/'`polygamma.c -libjrmath_la-choose.lo: choose.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-choose.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-choose.Tpo -c -o libjrmath_la-choose.lo `test -f 'choose.c' || echo '$(srcdir)/'`choose.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-choose.Tpo $(DEPDIR)/libjrmath_la-choose.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='choose.c' object='libjrmath_la-choose.lo' libtool=yes @AMDEPBACKSLASH@ +libjrmath_la-toms708.lo: toms708.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-toms708.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-toms708.Tpo -c -o libjrmath_la-toms708.lo `test -f 'toms708.c' || echo '$(srcdir)/'`toms708.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-toms708.Tpo $(DEPDIR)/libjrmath_la-toms708.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='toms708.c' object='libjrmath_la-toms708.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-choose.lo `test -f 'choose.c' || echo '$(srcdir)/'`choose.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-toms708.lo `test -f 'toms708.c' || echo '$(srcdir)/'`toms708.c -libjrmath_la-gamma.lo: gamma.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-gamma.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-gamma.Tpo -c -o libjrmath_la-gamma.lo `test -f 'gamma.c' || echo '$(srcdir)/'`gamma.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-gamma.Tpo $(DEPDIR)/libjrmath_la-gamma.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gamma.c' object='libjrmath_la-gamma.lo' libtool=yes @AMDEPBACKSLASH@ +libjrmath_la-mlutils.lo: mlutils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-mlutils.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-mlutils.Tpo -c -o libjrmath_la-mlutils.lo `test -f 'mlutils.c' || echo '$(srcdir)/'`mlutils.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-mlutils.Tpo $(DEPDIR)/libjrmath_la-mlutils.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mlutils.c' object='libjrmath_la-mlutils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-gamma.lo `test -f 'gamma.c' || echo '$(srcdir)/'`gamma.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-mlutils.lo `test -f 'mlutils.c' || echo '$(srcdir)/'`mlutils.c -libjrmath_la-lgamma.lo: lgamma.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-lgamma.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-lgamma.Tpo -c -o libjrmath_la-lgamma.lo `test -f 'lgamma.c' || echo '$(srcdir)/'`lgamma.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-lgamma.Tpo $(DEPDIR)/libjrmath_la-lgamma.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lgamma.c' object='libjrmath_la-lgamma.lo' libtool=yes @AMDEPBACKSLASH@ +libjrmath_la-stirlerr.lo: stirlerr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-stirlerr.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-stirlerr.Tpo -c -o libjrmath_la-stirlerr.lo `test -f 'stirlerr.c' || echo '$(srcdir)/'`stirlerr.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-stirlerr.Tpo $(DEPDIR)/libjrmath_la-stirlerr.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stirlerr.c' object='libjrmath_la-stirlerr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-lgamma.lo `test -f 'lgamma.c' || echo '$(srcdir)/'`lgamma.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-stirlerr.lo `test -f 'stirlerr.c' || echo '$(srcdir)/'`stirlerr.c -libjrmath_la-toms708.lo: toms708.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-toms708.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-toms708.Tpo -c -o libjrmath_la-toms708.lo `test -f 'toms708.c' || echo '$(srcdir)/'`toms708.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-toms708.Tpo $(DEPDIR)/libjrmath_la-toms708.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toms708.c' object='libjrmath_la-toms708.lo' libtool=yes @AMDEPBACKSLASH@ +libjrmath_la-bd0.lo: bd0.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-bd0.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-bd0.Tpo -c -o libjrmath_la-bd0.lo `test -f 'bd0.c' || echo '$(srcdir)/'`bd0.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-bd0.Tpo $(DEPDIR)/libjrmath_la-bd0.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bd0.c' object='libjrmath_la-bd0.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-toms708.lo `test -f 'toms708.c' || echo '$(srcdir)/'`toms708.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-bd0.lo `test -f 'bd0.c' || echo '$(srcdir)/'`bd0.c + +libjrmath_la-choose.lo: choose.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-choose.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-choose.Tpo -c -o libjrmath_la-choose.lo `test -f 'choose.c' || echo '$(srcdir)/'`choose.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-choose.Tpo $(DEPDIR)/libjrmath_la-choose.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='choose.c' object='libjrmath_la-choose.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-choose.lo `test -f 'choose.c' || echo '$(srcdir)/'`choose.c libjrmath_la-d1mach.lo: d1mach.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-d1mach.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-d1mach.Tpo -c -o libjrmath_la-d1mach.lo `test -f 'd1mach.c' || echo '$(srcdir)/'`d1mach.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-d1mach.Tpo $(DEPDIR)/libjrmath_la-d1mach.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='d1mach.c' object='libjrmath_la-d1mach.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-d1mach.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-d1mach.Tpo -c -o libjrmath_la-d1mach.lo `test -f 'd1mach.c' || echo '$(srcdir)/'`d1mach.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-d1mach.Tpo $(DEPDIR)/libjrmath_la-d1mach.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='d1mach.c' object='libjrmath_la-d1mach.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-d1mach.lo `test -f 'd1mach.c' || echo '$(srcdir)/'`d1mach.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-d1mach.lo `test -f 'd1mach.c' || echo '$(srcdir)/'`d1mach.c libjrmath_la-i1mach.lo: i1mach.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-i1mach.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-i1mach.Tpo -c -o libjrmath_la-i1mach.lo `test -f 'i1mach.c' || echo '$(srcdir)/'`i1mach.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-i1mach.Tpo $(DEPDIR)/libjrmath_la-i1mach.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='i1mach.c' object='libjrmath_la-i1mach.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-i1mach.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-i1mach.Tpo -c -o libjrmath_la-i1mach.lo `test -f 'i1mach.c' || echo '$(srcdir)/'`i1mach.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-i1mach.Tpo $(DEPDIR)/libjrmath_la-i1mach.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='i1mach.c' object='libjrmath_la-i1mach.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-i1mach.lo `test -f 'i1mach.c' || echo '$(srcdir)/'`i1mach.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-i1mach.lo `test -f 'i1mach.c' || echo '$(srcdir)/'`i1mach.c libjrmath_la-fsign.lo: fsign.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-fsign.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-fsign.Tpo -c -o libjrmath_la-fsign.lo `test -f 'fsign.c' || echo '$(srcdir)/'`fsign.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-fsign.Tpo $(DEPDIR)/libjrmath_la-fsign.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsign.c' object='libjrmath_la-fsign.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-fsign.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-fsign.Tpo -c -o libjrmath_la-fsign.lo `test -f 'fsign.c' || echo '$(srcdir)/'`fsign.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-fsign.Tpo $(DEPDIR)/libjrmath_la-fsign.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsign.c' object='libjrmath_la-fsign.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-fsign.lo `test -f 'fsign.c' || echo '$(srcdir)/'`fsign.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-fsign.lo `test -f 'fsign.c' || echo '$(srcdir)/'`fsign.c libjrmath_la-imax2.lo: imax2.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-imax2.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-imax2.Tpo -c -o libjrmath_la-imax2.lo `test -f 'imax2.c' || echo '$(srcdir)/'`imax2.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-imax2.Tpo $(DEPDIR)/libjrmath_la-imax2.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='imax2.c' object='libjrmath_la-imax2.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-imax2.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-imax2.Tpo -c -o libjrmath_la-imax2.lo `test -f 'imax2.c' || echo '$(srcdir)/'`imax2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-imax2.Tpo $(DEPDIR)/libjrmath_la-imax2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='imax2.c' object='libjrmath_la-imax2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-imax2.lo `test -f 'imax2.c' || echo '$(srcdir)/'`imax2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-imax2.lo `test -f 'imax2.c' || echo '$(srcdir)/'`imax2.c libjrmath_la-imin2.lo: imin2.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-imin2.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-imin2.Tpo -c -o libjrmath_la-imin2.lo `test -f 'imin2.c' || echo '$(srcdir)/'`imin2.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-imin2.Tpo $(DEPDIR)/libjrmath_la-imin2.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='imin2.c' object='libjrmath_la-imin2.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-imin2.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-imin2.Tpo -c -o libjrmath_la-imin2.lo `test -f 'imin2.c' || echo '$(srcdir)/'`imin2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-imin2.Tpo $(DEPDIR)/libjrmath_la-imin2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='imin2.c' object='libjrmath_la-imin2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-imin2.lo `test -f 'imin2.c' || echo '$(srcdir)/'`imin2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-imin2.lo `test -f 'imin2.c' || echo '$(srcdir)/'`imin2.c libjrmath_la-fmin2.lo: fmin2.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-fmin2.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-fmin2.Tpo -c -o libjrmath_la-fmin2.lo `test -f 'fmin2.c' || echo '$(srcdir)/'`fmin2.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-fmin2.Tpo $(DEPDIR)/libjrmath_la-fmin2.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fmin2.c' object='libjrmath_la-fmin2.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-fmin2.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-fmin2.Tpo -c -o libjrmath_la-fmin2.lo `test -f 'fmin2.c' || echo '$(srcdir)/'`fmin2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-fmin2.Tpo $(DEPDIR)/libjrmath_la-fmin2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fmin2.c' object='libjrmath_la-fmin2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-fmin2.lo `test -f 'fmin2.c' || echo '$(srcdir)/'`fmin2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-fmin2.lo `test -f 'fmin2.c' || echo '$(srcdir)/'`fmin2.c libjrmath_la-fmax2.lo: fmax2.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-fmax2.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-fmax2.Tpo -c -o libjrmath_la-fmax2.lo `test -f 'fmax2.c' || echo '$(srcdir)/'`fmax2.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-fmax2.Tpo $(DEPDIR)/libjrmath_la-fmax2.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fmax2.c' object='libjrmath_la-fmax2.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-fmax2.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-fmax2.Tpo -c -o libjrmath_la-fmax2.lo `test -f 'fmax2.c' || echo '$(srcdir)/'`fmax2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-fmax2.Tpo $(DEPDIR)/libjrmath_la-fmax2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fmax2.c' object='libjrmath_la-fmax2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-fmax2.lo `test -f 'fmax2.c' || echo '$(srcdir)/'`fmax2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-fmax2.lo `test -f 'fmax2.c' || echo '$(srcdir)/'`fmax2.c libjrmath_la-fprec.lo: fprec.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-fprec.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-fprec.Tpo -c -o libjrmath_la-fprec.lo `test -f 'fprec.c' || echo '$(srcdir)/'`fprec.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-fprec.Tpo $(DEPDIR)/libjrmath_la-fprec.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fprec.c' object='libjrmath_la-fprec.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-fprec.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-fprec.Tpo -c -o libjrmath_la-fprec.lo `test -f 'fprec.c' || echo '$(srcdir)/'`fprec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-fprec.Tpo $(DEPDIR)/libjrmath_la-fprec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fprec.c' object='libjrmath_la-fprec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-fprec.lo `test -f 'fprec.c' || echo '$(srcdir)/'`fprec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-fprec.lo `test -f 'fprec.c' || echo '$(srcdir)/'`fprec.c libjrmath_la-fround.lo: fround.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-fround.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-fround.Tpo -c -o libjrmath_la-fround.lo `test -f 'fround.c' || echo '$(srcdir)/'`fround.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-fround.Tpo $(DEPDIR)/libjrmath_la-fround.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fround.c' object='libjrmath_la-fround.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-fround.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-fround.Tpo -c -o libjrmath_la-fround.lo `test -f 'fround.c' || echo '$(srcdir)/'`fround.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-fround.Tpo $(DEPDIR)/libjrmath_la-fround.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fround.c' object='libjrmath_la-fround.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-fround.lo `test -f 'fround.c' || echo '$(srcdir)/'`fround.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-fround.lo `test -f 'fround.c' || echo '$(srcdir)/'`fround.c libjrmath_la-ftrunc.lo: ftrunc.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-ftrunc.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-ftrunc.Tpo -c -o libjrmath_la-ftrunc.lo `test -f 'ftrunc.c' || echo '$(srcdir)/'`ftrunc.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-ftrunc.Tpo $(DEPDIR)/libjrmath_la-ftrunc.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ftrunc.c' object='libjrmath_la-ftrunc.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-ftrunc.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-ftrunc.Tpo -c -o libjrmath_la-ftrunc.lo `test -f 'ftrunc.c' || echo '$(srcdir)/'`ftrunc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-ftrunc.Tpo $(DEPDIR)/libjrmath_la-ftrunc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ftrunc.c' object='libjrmath_la-ftrunc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-ftrunc.lo `test -f 'ftrunc.c' || echo '$(srcdir)/'`ftrunc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-ftrunc.lo `test -f 'ftrunc.c' || echo '$(srcdir)/'`ftrunc.c libjrmath_la-chebyshev.lo: chebyshev.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-chebyshev.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-chebyshev.Tpo -c -o libjrmath_la-chebyshev.lo `test -f 'chebyshev.c' || echo '$(srcdir)/'`chebyshev.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-chebyshev.Tpo $(DEPDIR)/libjrmath_la-chebyshev.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='chebyshev.c' object='libjrmath_la-chebyshev.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-chebyshev.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-chebyshev.Tpo -c -o libjrmath_la-chebyshev.lo `test -f 'chebyshev.c' || echo '$(srcdir)/'`chebyshev.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-chebyshev.Tpo $(DEPDIR)/libjrmath_la-chebyshev.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='chebyshev.c' object='libjrmath_la-chebyshev.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-chebyshev.lo `test -f 'chebyshev.c' || echo '$(srcdir)/'`chebyshev.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-chebyshev.lo `test -f 'chebyshev.c' || echo '$(srcdir)/'`chebyshev.c libjrmath_la-lgammacor.lo: lgammacor.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-lgammacor.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-lgammacor.Tpo -c -o libjrmath_la-lgammacor.lo `test -f 'lgammacor.c' || echo '$(srcdir)/'`lgammacor.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-lgammacor.Tpo $(DEPDIR)/libjrmath_la-lgammacor.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lgammacor.c' object='libjrmath_la-lgammacor.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-lgammacor.lo `test -f 'lgammacor.c' || echo '$(srcdir)/'`lgammacor.c - -libjrmath_la-log1p.lo: log1p.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-log1p.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-log1p.Tpo -c -o libjrmath_la-log1p.lo `test -f 'log1p.c' || echo '$(srcdir)/'`log1p.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-log1p.Tpo $(DEPDIR)/libjrmath_la-log1p.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='log1p.c' object='libjrmath_la-log1p.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-lgammacor.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-lgammacor.Tpo -c -o libjrmath_la-lgammacor.lo `test -f 'lgammacor.c' || echo '$(srcdir)/'`lgammacor.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-lgammacor.Tpo $(DEPDIR)/libjrmath_la-lgammacor.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lgammacor.c' object='libjrmath_la-lgammacor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-log1p.lo `test -f 'log1p.c' || echo '$(srcdir)/'`log1p.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-lgammacor.lo `test -f 'lgammacor.c' || echo '$(srcdir)/'`lgammacor.c libjrmath_la-lbeta.lo: lbeta.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-lbeta.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-lbeta.Tpo -c -o libjrmath_la-lbeta.lo `test -f 'lbeta.c' || echo '$(srcdir)/'`lbeta.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-lbeta.Tpo $(DEPDIR)/libjrmath_la-lbeta.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lbeta.c' object='libjrmath_la-lbeta.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-lbeta.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-lbeta.Tpo -c -o libjrmath_la-lbeta.lo `test -f 'lbeta.c' || echo '$(srcdir)/'`lbeta.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-lbeta.Tpo $(DEPDIR)/libjrmath_la-lbeta.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lbeta.c' object='libjrmath_la-lbeta.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-lbeta.lo `test -f 'lbeta.c' || echo '$(srcdir)/'`lbeta.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-lbeta.lo `test -f 'lbeta.c' || echo '$(srcdir)/'`lbeta.c libjrmath_la-rbeta.lo: rbeta.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-rbeta.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rbeta.Tpo -c -o libjrmath_la-rbeta.lo `test -f 'rbeta.c' || echo '$(srcdir)/'`rbeta.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-rbeta.Tpo $(DEPDIR)/libjrmath_la-rbeta.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rbeta.c' object='libjrmath_la-rbeta.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-rbeta.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rbeta.Tpo -c -o libjrmath_la-rbeta.lo `test -f 'rbeta.c' || echo '$(srcdir)/'`rbeta.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-rbeta.Tpo $(DEPDIR)/libjrmath_la-rbeta.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rbeta.c' object='libjrmath_la-rbeta.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rbeta.lo `test -f 'rbeta.c' || echo '$(srcdir)/'`rbeta.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rbeta.lo `test -f 'rbeta.c' || echo '$(srcdir)/'`rbeta.c libjrmath_la-dbeta.lo: dbeta.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-dbeta.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dbeta.Tpo -c -o libjrmath_la-dbeta.lo `test -f 'dbeta.c' || echo '$(srcdir)/'`dbeta.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-dbeta.Tpo $(DEPDIR)/libjrmath_la-dbeta.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dbeta.c' object='libjrmath_la-dbeta.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dbeta.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dbeta.Tpo -c -o libjrmath_la-dbeta.lo `test -f 'dbeta.c' || echo '$(srcdir)/'`dbeta.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dbeta.Tpo $(DEPDIR)/libjrmath_la-dbeta.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dbeta.c' object='libjrmath_la-dbeta.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dbeta.lo `test -f 'dbeta.c' || echo '$(srcdir)/'`dbeta.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dbeta.lo `test -f 'dbeta.c' || echo '$(srcdir)/'`dbeta.c libjrmath_la-pbeta.lo: pbeta.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-pbeta.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pbeta.Tpo -c -o libjrmath_la-pbeta.lo `test -f 'pbeta.c' || echo '$(srcdir)/'`pbeta.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-pbeta.Tpo $(DEPDIR)/libjrmath_la-pbeta.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pbeta.c' object='libjrmath_la-pbeta.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-pbeta.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pbeta.Tpo -c -o libjrmath_la-pbeta.lo `test -f 'pbeta.c' || echo '$(srcdir)/'`pbeta.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-pbeta.Tpo $(DEPDIR)/libjrmath_la-pbeta.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pbeta.c' object='libjrmath_la-pbeta.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pbeta.lo `test -f 'pbeta.c' || echo '$(srcdir)/'`pbeta.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pbeta.lo `test -f 'pbeta.c' || echo '$(srcdir)/'`pbeta.c libjrmath_la-qbeta.lo: qbeta.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-qbeta.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qbeta.Tpo -c -o libjrmath_la-qbeta.lo `test -f 'qbeta.c' || echo '$(srcdir)/'`qbeta.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-qbeta.Tpo $(DEPDIR)/libjrmath_la-qbeta.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qbeta.c' object='libjrmath_la-qbeta.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qbeta.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qbeta.Tpo -c -o libjrmath_la-qbeta.lo `test -f 'qbeta.c' || echo '$(srcdir)/'`qbeta.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qbeta.Tpo $(DEPDIR)/libjrmath_la-qbeta.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qbeta.c' object='libjrmath_la-qbeta.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qbeta.lo `test -f 'qbeta.c' || echo '$(srcdir)/'`qbeta.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qbeta.lo `test -f 'qbeta.c' || echo '$(srcdir)/'`qbeta.c libjrmath_la-rbinom.lo: rbinom.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-rbinom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rbinom.Tpo -c -o libjrmath_la-rbinom.lo `test -f 'rbinom.c' || echo '$(srcdir)/'`rbinom.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-rbinom.Tpo $(DEPDIR)/libjrmath_la-rbinom.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rbinom.c' object='libjrmath_la-rbinom.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-rbinom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rbinom.Tpo -c -o libjrmath_la-rbinom.lo `test -f 'rbinom.c' || echo '$(srcdir)/'`rbinom.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-rbinom.Tpo $(DEPDIR)/libjrmath_la-rbinom.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rbinom.c' object='libjrmath_la-rbinom.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rbinom.lo `test -f 'rbinom.c' || echo '$(srcdir)/'`rbinom.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rbinom.lo `test -f 'rbinom.c' || echo '$(srcdir)/'`rbinom.c libjrmath_la-dbinom.lo: dbinom.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-dbinom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dbinom.Tpo -c -o libjrmath_la-dbinom.lo `test -f 'dbinom.c' || echo '$(srcdir)/'`dbinom.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-dbinom.Tpo $(DEPDIR)/libjrmath_la-dbinom.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dbinom.c' object='libjrmath_la-dbinom.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dbinom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dbinom.Tpo -c -o libjrmath_la-dbinom.lo `test -f 'dbinom.c' || echo '$(srcdir)/'`dbinom.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dbinom.Tpo $(DEPDIR)/libjrmath_la-dbinom.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dbinom.c' object='libjrmath_la-dbinom.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dbinom.lo `test -f 'dbinom.c' || echo '$(srcdir)/'`dbinom.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dbinom.lo `test -f 'dbinom.c' || echo '$(srcdir)/'`dbinom.c libjrmath_la-pbinom.lo: pbinom.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-pbinom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pbinom.Tpo -c -o libjrmath_la-pbinom.lo `test -f 'pbinom.c' || echo '$(srcdir)/'`pbinom.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-pbinom.Tpo $(DEPDIR)/libjrmath_la-pbinom.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pbinom.c' object='libjrmath_la-pbinom.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-pbinom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pbinom.Tpo -c -o libjrmath_la-pbinom.lo `test -f 'pbinom.c' || echo '$(srcdir)/'`pbinom.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-pbinom.Tpo $(DEPDIR)/libjrmath_la-pbinom.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pbinom.c' object='libjrmath_la-pbinom.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pbinom.lo `test -f 'pbinom.c' || echo '$(srcdir)/'`pbinom.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pbinom.lo `test -f 'pbinom.c' || echo '$(srcdir)/'`pbinom.c libjrmath_la-qbinom.lo: qbinom.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-qbinom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qbinom.Tpo -c -o libjrmath_la-qbinom.lo `test -f 'qbinom.c' || echo '$(srcdir)/'`qbinom.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-qbinom.Tpo $(DEPDIR)/libjrmath_la-qbinom.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qbinom.c' object='libjrmath_la-qbinom.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qbinom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qbinom.Tpo -c -o libjrmath_la-qbinom.lo `test -f 'qbinom.c' || echo '$(srcdir)/'`qbinom.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qbinom.Tpo $(DEPDIR)/libjrmath_la-qbinom.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qbinom.c' object='libjrmath_la-qbinom.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qbinom.lo `test -f 'qbinom.c' || echo '$(srcdir)/'`qbinom.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qbinom.lo `test -f 'qbinom.c' || echo '$(srcdir)/'`qbinom.c libjrmath_la-rchisq.lo: rchisq.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-rchisq.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rchisq.Tpo -c -o libjrmath_la-rchisq.lo `test -f 'rchisq.c' || echo '$(srcdir)/'`rchisq.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-rchisq.Tpo $(DEPDIR)/libjrmath_la-rchisq.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rchisq.c' object='libjrmath_la-rchisq.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-rchisq.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rchisq.Tpo -c -o libjrmath_la-rchisq.lo `test -f 'rchisq.c' || echo '$(srcdir)/'`rchisq.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-rchisq.Tpo $(DEPDIR)/libjrmath_la-rchisq.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rchisq.c' object='libjrmath_la-rchisq.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rchisq.lo `test -f 'rchisq.c' || echo '$(srcdir)/'`rchisq.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rchisq.lo `test -f 'rchisq.c' || echo '$(srcdir)/'`rchisq.c libjrmath_la-dchisq.lo: dchisq.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-dchisq.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dchisq.Tpo -c -o libjrmath_la-dchisq.lo `test -f 'dchisq.c' || echo '$(srcdir)/'`dchisq.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-dchisq.Tpo $(DEPDIR)/libjrmath_la-dchisq.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dchisq.c' object='libjrmath_la-dchisq.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dchisq.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dchisq.Tpo -c -o libjrmath_la-dchisq.lo `test -f 'dchisq.c' || echo '$(srcdir)/'`dchisq.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dchisq.Tpo $(DEPDIR)/libjrmath_la-dchisq.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dchisq.c' object='libjrmath_la-dchisq.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dchisq.lo `test -f 'dchisq.c' || echo '$(srcdir)/'`dchisq.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dchisq.lo `test -f 'dchisq.c' || echo '$(srcdir)/'`dchisq.c libjrmath_la-pchisq.lo: pchisq.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-pchisq.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pchisq.Tpo -c -o libjrmath_la-pchisq.lo `test -f 'pchisq.c' || echo '$(srcdir)/'`pchisq.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-pchisq.Tpo $(DEPDIR)/libjrmath_la-pchisq.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pchisq.c' object='libjrmath_la-pchisq.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-pchisq.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pchisq.Tpo -c -o libjrmath_la-pchisq.lo `test -f 'pchisq.c' || echo '$(srcdir)/'`pchisq.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-pchisq.Tpo $(DEPDIR)/libjrmath_la-pchisq.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pchisq.c' object='libjrmath_la-pchisq.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pchisq.lo `test -f 'pchisq.c' || echo '$(srcdir)/'`pchisq.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pchisq.lo `test -f 'pchisq.c' || echo '$(srcdir)/'`pchisq.c libjrmath_la-qchisq.lo: qchisq.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-qchisq.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qchisq.Tpo -c -o libjrmath_la-qchisq.lo `test -f 'qchisq.c' || echo '$(srcdir)/'`qchisq.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-qchisq.Tpo $(DEPDIR)/libjrmath_la-qchisq.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qchisq.c' object='libjrmath_la-qchisq.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qchisq.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qchisq.Tpo -c -o libjrmath_la-qchisq.lo `test -f 'qchisq.c' || echo '$(srcdir)/'`qchisq.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qchisq.Tpo $(DEPDIR)/libjrmath_la-qchisq.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qchisq.c' object='libjrmath_la-qchisq.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qchisq.lo `test -f 'qchisq.c' || echo '$(srcdir)/'`qchisq.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qchisq.lo `test -f 'qchisq.c' || echo '$(srcdir)/'`qchisq.c libjrmath_la-rexp.lo: rexp.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-rexp.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rexp.Tpo -c -o libjrmath_la-rexp.lo `test -f 'rexp.c' || echo '$(srcdir)/'`rexp.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-rexp.Tpo $(DEPDIR)/libjrmath_la-rexp.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rexp.c' object='libjrmath_la-rexp.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-rexp.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rexp.Tpo -c -o libjrmath_la-rexp.lo `test -f 'rexp.c' || echo '$(srcdir)/'`rexp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-rexp.Tpo $(DEPDIR)/libjrmath_la-rexp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rexp.c' object='libjrmath_la-rexp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rexp.lo `test -f 'rexp.c' || echo '$(srcdir)/'`rexp.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rexp.lo `test -f 'rexp.c' || echo '$(srcdir)/'`rexp.c libjrmath_la-dexp.lo: dexp.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-dexp.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dexp.Tpo -c -o libjrmath_la-dexp.lo `test -f 'dexp.c' || echo '$(srcdir)/'`dexp.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-dexp.Tpo $(DEPDIR)/libjrmath_la-dexp.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dexp.c' object='libjrmath_la-dexp.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dexp.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dexp.Tpo -c -o libjrmath_la-dexp.lo `test -f 'dexp.c' || echo '$(srcdir)/'`dexp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dexp.Tpo $(DEPDIR)/libjrmath_la-dexp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dexp.c' object='libjrmath_la-dexp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dexp.lo `test -f 'dexp.c' || echo '$(srcdir)/'`dexp.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dexp.lo `test -f 'dexp.c' || echo '$(srcdir)/'`dexp.c libjrmath_la-pexp.lo: pexp.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-pexp.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pexp.Tpo -c -o libjrmath_la-pexp.lo `test -f 'pexp.c' || echo '$(srcdir)/'`pexp.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-pexp.Tpo $(DEPDIR)/libjrmath_la-pexp.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pexp.c' object='libjrmath_la-pexp.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-pexp.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pexp.Tpo -c -o libjrmath_la-pexp.lo `test -f 'pexp.c' || echo '$(srcdir)/'`pexp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-pexp.Tpo $(DEPDIR)/libjrmath_la-pexp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pexp.c' object='libjrmath_la-pexp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pexp.lo `test -f 'pexp.c' || echo '$(srcdir)/'`pexp.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pexp.lo `test -f 'pexp.c' || echo '$(srcdir)/'`pexp.c libjrmath_la-qexp.lo: qexp.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-qexp.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qexp.Tpo -c -o libjrmath_la-qexp.lo `test -f 'qexp.c' || echo '$(srcdir)/'`qexp.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-qexp.Tpo $(DEPDIR)/libjrmath_la-qexp.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qexp.c' object='libjrmath_la-qexp.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qexp.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qexp.Tpo -c -o libjrmath_la-qexp.lo `test -f 'qexp.c' || echo '$(srcdir)/'`qexp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qexp.Tpo $(DEPDIR)/libjrmath_la-qexp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qexp.c' object='libjrmath_la-qexp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qexp.lo `test -f 'qexp.c' || echo '$(srcdir)/'`qexp.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qexp.lo `test -f 'qexp.c' || echo '$(srcdir)/'`qexp.c libjrmath_la-rgamma.lo: rgamma.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-rgamma.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rgamma.Tpo -c -o libjrmath_la-rgamma.lo `test -f 'rgamma.c' || echo '$(srcdir)/'`rgamma.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-rgamma.Tpo $(DEPDIR)/libjrmath_la-rgamma.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rgamma.c' object='libjrmath_la-rgamma.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-rgamma.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rgamma.Tpo -c -o libjrmath_la-rgamma.lo `test -f 'rgamma.c' || echo '$(srcdir)/'`rgamma.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-rgamma.Tpo $(DEPDIR)/libjrmath_la-rgamma.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rgamma.c' object='libjrmath_la-rgamma.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rgamma.lo `test -f 'rgamma.c' || echo '$(srcdir)/'`rgamma.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rgamma.lo `test -f 'rgamma.c' || echo '$(srcdir)/'`rgamma.c libjrmath_la-dgamma.lo: dgamma.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-dgamma.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dgamma.Tpo -c -o libjrmath_la-dgamma.lo `test -f 'dgamma.c' || echo '$(srcdir)/'`dgamma.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-dgamma.Tpo $(DEPDIR)/libjrmath_la-dgamma.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dgamma.c' object='libjrmath_la-dgamma.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dgamma.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dgamma.Tpo -c -o libjrmath_la-dgamma.lo `test -f 'dgamma.c' || echo '$(srcdir)/'`dgamma.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dgamma.Tpo $(DEPDIR)/libjrmath_la-dgamma.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dgamma.c' object='libjrmath_la-dgamma.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dgamma.lo `test -f 'dgamma.c' || echo '$(srcdir)/'`dgamma.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dgamma.lo `test -f 'dgamma.c' || echo '$(srcdir)/'`dgamma.c libjrmath_la-pgamma.lo: pgamma.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-pgamma.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pgamma.Tpo -c -o libjrmath_la-pgamma.lo `test -f 'pgamma.c' || echo '$(srcdir)/'`pgamma.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-pgamma.Tpo $(DEPDIR)/libjrmath_la-pgamma.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pgamma.c' object='libjrmath_la-pgamma.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-pgamma.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pgamma.Tpo -c -o libjrmath_la-pgamma.lo `test -f 'pgamma.c' || echo '$(srcdir)/'`pgamma.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-pgamma.Tpo $(DEPDIR)/libjrmath_la-pgamma.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pgamma.c' object='libjrmath_la-pgamma.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pgamma.lo `test -f 'pgamma.c' || echo '$(srcdir)/'`pgamma.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pgamma.lo `test -f 'pgamma.c' || echo '$(srcdir)/'`pgamma.c libjrmath_la-qgamma.lo: qgamma.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-qgamma.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qgamma.Tpo -c -o libjrmath_la-qgamma.lo `test -f 'qgamma.c' || echo '$(srcdir)/'`qgamma.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-qgamma.Tpo $(DEPDIR)/libjrmath_la-qgamma.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qgamma.c' object='libjrmath_la-qgamma.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qgamma.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qgamma.Tpo -c -o libjrmath_la-qgamma.lo `test -f 'qgamma.c' || echo '$(srcdir)/'`qgamma.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qgamma.Tpo $(DEPDIR)/libjrmath_la-qgamma.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qgamma.c' object='libjrmath_la-qgamma.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qgamma.lo `test -f 'qgamma.c' || echo '$(srcdir)/'`qgamma.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qgamma.lo `test -f 'qgamma.c' || echo '$(srcdir)/'`qgamma.c libjrmath_la-rhyper.lo: rhyper.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-rhyper.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rhyper.Tpo -c -o libjrmath_la-rhyper.lo `test -f 'rhyper.c' || echo '$(srcdir)/'`rhyper.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-rhyper.Tpo $(DEPDIR)/libjrmath_la-rhyper.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rhyper.c' object='libjrmath_la-rhyper.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-rhyper.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rhyper.Tpo -c -o libjrmath_la-rhyper.lo `test -f 'rhyper.c' || echo '$(srcdir)/'`rhyper.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-rhyper.Tpo $(DEPDIR)/libjrmath_la-rhyper.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rhyper.c' object='libjrmath_la-rhyper.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rhyper.lo `test -f 'rhyper.c' || echo '$(srcdir)/'`rhyper.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rhyper.lo `test -f 'rhyper.c' || echo '$(srcdir)/'`rhyper.c libjrmath_la-dhyper.lo: dhyper.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-dhyper.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dhyper.Tpo -c -o libjrmath_la-dhyper.lo `test -f 'dhyper.c' || echo '$(srcdir)/'`dhyper.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-dhyper.Tpo $(DEPDIR)/libjrmath_la-dhyper.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dhyper.c' object='libjrmath_la-dhyper.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dhyper.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dhyper.Tpo -c -o libjrmath_la-dhyper.lo `test -f 'dhyper.c' || echo '$(srcdir)/'`dhyper.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dhyper.Tpo $(DEPDIR)/libjrmath_la-dhyper.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dhyper.c' object='libjrmath_la-dhyper.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dhyper.lo `test -f 'dhyper.c' || echo '$(srcdir)/'`dhyper.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dhyper.lo `test -f 'dhyper.c' || echo '$(srcdir)/'`dhyper.c libjrmath_la-phyper.lo: phyper.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-phyper.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-phyper.Tpo -c -o libjrmath_la-phyper.lo `test -f 'phyper.c' || echo '$(srcdir)/'`phyper.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-phyper.Tpo $(DEPDIR)/libjrmath_la-phyper.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='phyper.c' object='libjrmath_la-phyper.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-phyper.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-phyper.Tpo -c -o libjrmath_la-phyper.lo `test -f 'phyper.c' || echo '$(srcdir)/'`phyper.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-phyper.Tpo $(DEPDIR)/libjrmath_la-phyper.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='phyper.c' object='libjrmath_la-phyper.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-phyper.lo `test -f 'phyper.c' || echo '$(srcdir)/'`phyper.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-phyper.lo `test -f 'phyper.c' || echo '$(srcdir)/'`phyper.c libjrmath_la-qhyper.lo: qhyper.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-qhyper.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qhyper.Tpo -c -o libjrmath_la-qhyper.lo `test -f 'qhyper.c' || echo '$(srcdir)/'`qhyper.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-qhyper.Tpo $(DEPDIR)/libjrmath_la-qhyper.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qhyper.c' object='libjrmath_la-qhyper.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qhyper.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qhyper.Tpo -c -o libjrmath_la-qhyper.lo `test -f 'qhyper.c' || echo '$(srcdir)/'`qhyper.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qhyper.Tpo $(DEPDIR)/libjrmath_la-qhyper.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qhyper.c' object='libjrmath_la-qhyper.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qhyper.lo `test -f 'qhyper.c' || echo '$(srcdir)/'`qhyper.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qhyper.lo `test -f 'qhyper.c' || echo '$(srcdir)/'`qhyper.c libjrmath_la-rlnorm.lo: rlnorm.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-rlnorm.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rlnorm.Tpo -c -o libjrmath_la-rlnorm.lo `test -f 'rlnorm.c' || echo '$(srcdir)/'`rlnorm.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-rlnorm.Tpo $(DEPDIR)/libjrmath_la-rlnorm.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rlnorm.c' object='libjrmath_la-rlnorm.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-rlnorm.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rlnorm.Tpo -c -o libjrmath_la-rlnorm.lo `test -f 'rlnorm.c' || echo '$(srcdir)/'`rlnorm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-rlnorm.Tpo $(DEPDIR)/libjrmath_la-rlnorm.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rlnorm.c' object='libjrmath_la-rlnorm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rlnorm.lo `test -f 'rlnorm.c' || echo '$(srcdir)/'`rlnorm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rlnorm.lo `test -f 'rlnorm.c' || echo '$(srcdir)/'`rlnorm.c libjrmath_la-dlnorm.lo: dlnorm.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-dlnorm.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dlnorm.Tpo -c -o libjrmath_la-dlnorm.lo `test -f 'dlnorm.c' || echo '$(srcdir)/'`dlnorm.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-dlnorm.Tpo $(DEPDIR)/libjrmath_la-dlnorm.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dlnorm.c' object='libjrmath_la-dlnorm.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dlnorm.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dlnorm.Tpo -c -o libjrmath_la-dlnorm.lo `test -f 'dlnorm.c' || echo '$(srcdir)/'`dlnorm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dlnorm.Tpo $(DEPDIR)/libjrmath_la-dlnorm.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dlnorm.c' object='libjrmath_la-dlnorm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dlnorm.lo `test -f 'dlnorm.c' || echo '$(srcdir)/'`dlnorm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dlnorm.lo `test -f 'dlnorm.c' || echo '$(srcdir)/'`dlnorm.c libjrmath_la-plnorm.lo: plnorm.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-plnorm.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-plnorm.Tpo -c -o libjrmath_la-plnorm.lo `test -f 'plnorm.c' || echo '$(srcdir)/'`plnorm.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-plnorm.Tpo $(DEPDIR)/libjrmath_la-plnorm.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plnorm.c' object='libjrmath_la-plnorm.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-plnorm.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-plnorm.Tpo -c -o libjrmath_la-plnorm.lo `test -f 'plnorm.c' || echo '$(srcdir)/'`plnorm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-plnorm.Tpo $(DEPDIR)/libjrmath_la-plnorm.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plnorm.c' object='libjrmath_la-plnorm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-plnorm.lo `test -f 'plnorm.c' || echo '$(srcdir)/'`plnorm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-plnorm.lo `test -f 'plnorm.c' || echo '$(srcdir)/'`plnorm.c libjrmath_la-qlnorm.lo: qlnorm.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-qlnorm.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qlnorm.Tpo -c -o libjrmath_la-qlnorm.lo `test -f 'qlnorm.c' || echo '$(srcdir)/'`qlnorm.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-qlnorm.Tpo $(DEPDIR)/libjrmath_la-qlnorm.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qlnorm.c' object='libjrmath_la-qlnorm.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qlnorm.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qlnorm.Tpo -c -o libjrmath_la-qlnorm.lo `test -f 'qlnorm.c' || echo '$(srcdir)/'`qlnorm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qlnorm.Tpo $(DEPDIR)/libjrmath_la-qlnorm.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qlnorm.c' object='libjrmath_la-qlnorm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qlnorm.lo `test -f 'qlnorm.c' || echo '$(srcdir)/'`qlnorm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qlnorm.lo `test -f 'qlnorm.c' || echo '$(srcdir)/'`qlnorm.c libjrmath_la-rlogis.lo: rlogis.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-rlogis.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rlogis.Tpo -c -o libjrmath_la-rlogis.lo `test -f 'rlogis.c' || echo '$(srcdir)/'`rlogis.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-rlogis.Tpo $(DEPDIR)/libjrmath_la-rlogis.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rlogis.c' object='libjrmath_la-rlogis.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-rlogis.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rlogis.Tpo -c -o libjrmath_la-rlogis.lo `test -f 'rlogis.c' || echo '$(srcdir)/'`rlogis.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-rlogis.Tpo $(DEPDIR)/libjrmath_la-rlogis.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rlogis.c' object='libjrmath_la-rlogis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rlogis.lo `test -f 'rlogis.c' || echo '$(srcdir)/'`rlogis.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rlogis.lo `test -f 'rlogis.c' || echo '$(srcdir)/'`rlogis.c libjrmath_la-dlogis.lo: dlogis.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-dlogis.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dlogis.Tpo -c -o libjrmath_la-dlogis.lo `test -f 'dlogis.c' || echo '$(srcdir)/'`dlogis.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-dlogis.Tpo $(DEPDIR)/libjrmath_la-dlogis.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dlogis.c' object='libjrmath_la-dlogis.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dlogis.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dlogis.Tpo -c -o libjrmath_la-dlogis.lo `test -f 'dlogis.c' || echo '$(srcdir)/'`dlogis.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dlogis.Tpo $(DEPDIR)/libjrmath_la-dlogis.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dlogis.c' object='libjrmath_la-dlogis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dlogis.lo `test -f 'dlogis.c' || echo '$(srcdir)/'`dlogis.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dlogis.lo `test -f 'dlogis.c' || echo '$(srcdir)/'`dlogis.c libjrmath_la-plogis.lo: plogis.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-plogis.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-plogis.Tpo -c -o libjrmath_la-plogis.lo `test -f 'plogis.c' || echo '$(srcdir)/'`plogis.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-plogis.Tpo $(DEPDIR)/libjrmath_la-plogis.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plogis.c' object='libjrmath_la-plogis.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-plogis.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-plogis.Tpo -c -o libjrmath_la-plogis.lo `test -f 'plogis.c' || echo '$(srcdir)/'`plogis.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-plogis.Tpo $(DEPDIR)/libjrmath_la-plogis.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plogis.c' object='libjrmath_la-plogis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-plogis.lo `test -f 'plogis.c' || echo '$(srcdir)/'`plogis.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-plogis.lo `test -f 'plogis.c' || echo '$(srcdir)/'`plogis.c libjrmath_la-qlogis.lo: qlogis.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-qlogis.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qlogis.Tpo -c -o libjrmath_la-qlogis.lo `test -f 'qlogis.c' || echo '$(srcdir)/'`qlogis.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-qlogis.Tpo $(DEPDIR)/libjrmath_la-qlogis.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qlogis.c' object='libjrmath_la-qlogis.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qlogis.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qlogis.Tpo -c -o libjrmath_la-qlogis.lo `test -f 'qlogis.c' || echo '$(srcdir)/'`qlogis.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qlogis.Tpo $(DEPDIR)/libjrmath_la-qlogis.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qlogis.c' object='libjrmath_la-qlogis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qlogis.lo `test -f 'qlogis.c' || echo '$(srcdir)/'`qlogis.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qlogis.lo `test -f 'qlogis.c' || echo '$(srcdir)/'`qlogis.c libjrmath_la-rnbinom.lo: rnbinom.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-rnbinom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rnbinom.Tpo -c -o libjrmath_la-rnbinom.lo `test -f 'rnbinom.c' || echo '$(srcdir)/'`rnbinom.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-rnbinom.Tpo $(DEPDIR)/libjrmath_la-rnbinom.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rnbinom.c' object='libjrmath_la-rnbinom.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-rnbinom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rnbinom.Tpo -c -o libjrmath_la-rnbinom.lo `test -f 'rnbinom.c' || echo '$(srcdir)/'`rnbinom.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-rnbinom.Tpo $(DEPDIR)/libjrmath_la-rnbinom.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rnbinom.c' object='libjrmath_la-rnbinom.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rnbinom.lo `test -f 'rnbinom.c' || echo '$(srcdir)/'`rnbinom.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rnbinom.lo `test -f 'rnbinom.c' || echo '$(srcdir)/'`rnbinom.c libjrmath_la-dnbinom.lo: dnbinom.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-dnbinom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dnbinom.Tpo -c -o libjrmath_la-dnbinom.lo `test -f 'dnbinom.c' || echo '$(srcdir)/'`dnbinom.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-dnbinom.Tpo $(DEPDIR)/libjrmath_la-dnbinom.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dnbinom.c' object='libjrmath_la-dnbinom.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dnbinom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dnbinom.Tpo -c -o libjrmath_la-dnbinom.lo `test -f 'dnbinom.c' || echo '$(srcdir)/'`dnbinom.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dnbinom.Tpo $(DEPDIR)/libjrmath_la-dnbinom.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dnbinom.c' object='libjrmath_la-dnbinom.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dnbinom.lo `test -f 'dnbinom.c' || echo '$(srcdir)/'`dnbinom.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dnbinom.lo `test -f 'dnbinom.c' || echo '$(srcdir)/'`dnbinom.c libjrmath_la-pnbinom.lo: pnbinom.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-pnbinom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pnbinom.Tpo -c -o libjrmath_la-pnbinom.lo `test -f 'pnbinom.c' || echo '$(srcdir)/'`pnbinom.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-pnbinom.Tpo $(DEPDIR)/libjrmath_la-pnbinom.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pnbinom.c' object='libjrmath_la-pnbinom.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-pnbinom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pnbinom.Tpo -c -o libjrmath_la-pnbinom.lo `test -f 'pnbinom.c' || echo '$(srcdir)/'`pnbinom.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-pnbinom.Tpo $(DEPDIR)/libjrmath_la-pnbinom.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pnbinom.c' object='libjrmath_la-pnbinom.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pnbinom.lo `test -f 'pnbinom.c' || echo '$(srcdir)/'`pnbinom.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pnbinom.lo `test -f 'pnbinom.c' || echo '$(srcdir)/'`pnbinom.c libjrmath_la-qnbinom.lo: qnbinom.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-qnbinom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qnbinom.Tpo -c -o libjrmath_la-qnbinom.lo `test -f 'qnbinom.c' || echo '$(srcdir)/'`qnbinom.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-qnbinom.Tpo $(DEPDIR)/libjrmath_la-qnbinom.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qnbinom.c' object='libjrmath_la-qnbinom.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qnbinom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qnbinom.Tpo -c -o libjrmath_la-qnbinom.lo `test -f 'qnbinom.c' || echo '$(srcdir)/'`qnbinom.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qnbinom.Tpo $(DEPDIR)/libjrmath_la-qnbinom.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qnbinom.c' object='libjrmath_la-qnbinom.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qnbinom.lo `test -f 'qnbinom.c' || echo '$(srcdir)/'`qnbinom.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qnbinom.lo `test -f 'qnbinom.c' || echo '$(srcdir)/'`qnbinom.c libjrmath_la-rnorm.lo: rnorm.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-rnorm.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rnorm.Tpo -c -o libjrmath_la-rnorm.lo `test -f 'rnorm.c' || echo '$(srcdir)/'`rnorm.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-rnorm.Tpo $(DEPDIR)/libjrmath_la-rnorm.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rnorm.c' object='libjrmath_la-rnorm.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-rnorm.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rnorm.Tpo -c -o libjrmath_la-rnorm.lo `test -f 'rnorm.c' || echo '$(srcdir)/'`rnorm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-rnorm.Tpo $(DEPDIR)/libjrmath_la-rnorm.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rnorm.c' object='libjrmath_la-rnorm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rnorm.lo `test -f 'rnorm.c' || echo '$(srcdir)/'`rnorm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rnorm.lo `test -f 'rnorm.c' || echo '$(srcdir)/'`rnorm.c libjrmath_la-dnorm.lo: dnorm.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-dnorm.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dnorm.Tpo -c -o libjrmath_la-dnorm.lo `test -f 'dnorm.c' || echo '$(srcdir)/'`dnorm.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-dnorm.Tpo $(DEPDIR)/libjrmath_la-dnorm.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dnorm.c' object='libjrmath_la-dnorm.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dnorm.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dnorm.Tpo -c -o libjrmath_la-dnorm.lo `test -f 'dnorm.c' || echo '$(srcdir)/'`dnorm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dnorm.Tpo $(DEPDIR)/libjrmath_la-dnorm.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dnorm.c' object='libjrmath_la-dnorm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dnorm.lo `test -f 'dnorm.c' || echo '$(srcdir)/'`dnorm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dnorm.lo `test -f 'dnorm.c' || echo '$(srcdir)/'`dnorm.c libjrmath_la-pnorm.lo: pnorm.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-pnorm.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pnorm.Tpo -c -o libjrmath_la-pnorm.lo `test -f 'pnorm.c' || echo '$(srcdir)/'`pnorm.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-pnorm.Tpo $(DEPDIR)/libjrmath_la-pnorm.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pnorm.c' object='libjrmath_la-pnorm.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-pnorm.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pnorm.Tpo -c -o libjrmath_la-pnorm.lo `test -f 'pnorm.c' || echo '$(srcdir)/'`pnorm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-pnorm.Tpo $(DEPDIR)/libjrmath_la-pnorm.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pnorm.c' object='libjrmath_la-pnorm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pnorm.lo `test -f 'pnorm.c' || echo '$(srcdir)/'`pnorm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pnorm.lo `test -f 'pnorm.c' || echo '$(srcdir)/'`pnorm.c libjrmath_la-qnorm.lo: qnorm.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-qnorm.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qnorm.Tpo -c -o libjrmath_la-qnorm.lo `test -f 'qnorm.c' || echo '$(srcdir)/'`qnorm.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-qnorm.Tpo $(DEPDIR)/libjrmath_la-qnorm.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qnorm.c' object='libjrmath_la-qnorm.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qnorm.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qnorm.Tpo -c -o libjrmath_la-qnorm.lo `test -f 'qnorm.c' || echo '$(srcdir)/'`qnorm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qnorm.Tpo $(DEPDIR)/libjrmath_la-qnorm.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qnorm.c' object='libjrmath_la-qnorm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qnorm.lo `test -f 'qnorm.c' || echo '$(srcdir)/'`qnorm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qnorm.lo `test -f 'qnorm.c' || echo '$(srcdir)/'`qnorm.c libjrmath_la-rpois.lo: rpois.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-rpois.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rpois.Tpo -c -o libjrmath_la-rpois.lo `test -f 'rpois.c' || echo '$(srcdir)/'`rpois.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-rpois.Tpo $(DEPDIR)/libjrmath_la-rpois.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rpois.c' object='libjrmath_la-rpois.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-rpois.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rpois.Tpo -c -o libjrmath_la-rpois.lo `test -f 'rpois.c' || echo '$(srcdir)/'`rpois.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-rpois.Tpo $(DEPDIR)/libjrmath_la-rpois.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rpois.c' object='libjrmath_la-rpois.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rpois.lo `test -f 'rpois.c' || echo '$(srcdir)/'`rpois.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rpois.lo `test -f 'rpois.c' || echo '$(srcdir)/'`rpois.c libjrmath_la-dpois.lo: dpois.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-dpois.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dpois.Tpo -c -o libjrmath_la-dpois.lo `test -f 'dpois.c' || echo '$(srcdir)/'`dpois.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-dpois.Tpo $(DEPDIR)/libjrmath_la-dpois.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dpois.c' object='libjrmath_la-dpois.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dpois.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dpois.Tpo -c -o libjrmath_la-dpois.lo `test -f 'dpois.c' || echo '$(srcdir)/'`dpois.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dpois.Tpo $(DEPDIR)/libjrmath_la-dpois.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dpois.c' object='libjrmath_la-dpois.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dpois.lo `test -f 'dpois.c' || echo '$(srcdir)/'`dpois.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dpois.lo `test -f 'dpois.c' || echo '$(srcdir)/'`dpois.c libjrmath_la-ppois.lo: ppois.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-ppois.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-ppois.Tpo -c -o libjrmath_la-ppois.lo `test -f 'ppois.c' || echo '$(srcdir)/'`ppois.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-ppois.Tpo $(DEPDIR)/libjrmath_la-ppois.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ppois.c' object='libjrmath_la-ppois.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-ppois.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-ppois.Tpo -c -o libjrmath_la-ppois.lo `test -f 'ppois.c' || echo '$(srcdir)/'`ppois.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-ppois.Tpo $(DEPDIR)/libjrmath_la-ppois.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ppois.c' object='libjrmath_la-ppois.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-ppois.lo `test -f 'ppois.c' || echo '$(srcdir)/'`ppois.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-ppois.lo `test -f 'ppois.c' || echo '$(srcdir)/'`ppois.c libjrmath_la-qpois.lo: qpois.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-qpois.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qpois.Tpo -c -o libjrmath_la-qpois.lo `test -f 'qpois.c' || echo '$(srcdir)/'`qpois.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-qpois.Tpo $(DEPDIR)/libjrmath_la-qpois.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qpois.c' object='libjrmath_la-qpois.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qpois.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qpois.Tpo -c -o libjrmath_la-qpois.lo `test -f 'qpois.c' || echo '$(srcdir)/'`qpois.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qpois.Tpo $(DEPDIR)/libjrmath_la-qpois.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qpois.c' object='libjrmath_la-qpois.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qpois.lo `test -f 'qpois.c' || echo '$(srcdir)/'`qpois.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qpois.lo `test -f 'qpois.c' || echo '$(srcdir)/'`qpois.c libjrmath_la-rt.lo: rt.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-rt.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rt.Tpo -c -o libjrmath_la-rt.lo `test -f 'rt.c' || echo '$(srcdir)/'`rt.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-rt.Tpo $(DEPDIR)/libjrmath_la-rt.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rt.c' object='libjrmath_la-rt.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-rt.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rt.Tpo -c -o libjrmath_la-rt.lo `test -f 'rt.c' || echo '$(srcdir)/'`rt.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-rt.Tpo $(DEPDIR)/libjrmath_la-rt.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rt.c' object='libjrmath_la-rt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rt.lo `test -f 'rt.c' || echo '$(srcdir)/'`rt.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rt.lo `test -f 'rt.c' || echo '$(srcdir)/'`rt.c libjrmath_la-dt.lo: dt.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-dt.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dt.Tpo -c -o libjrmath_la-dt.lo `test -f 'dt.c' || echo '$(srcdir)/'`dt.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-dt.Tpo $(DEPDIR)/libjrmath_la-dt.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dt.c' object='libjrmath_la-dt.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dt.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dt.Tpo -c -o libjrmath_la-dt.lo `test -f 'dt.c' || echo '$(srcdir)/'`dt.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dt.Tpo $(DEPDIR)/libjrmath_la-dt.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dt.c' object='libjrmath_la-dt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dt.lo `test -f 'dt.c' || echo '$(srcdir)/'`dt.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dt.lo `test -f 'dt.c' || echo '$(srcdir)/'`dt.c libjrmath_la-pt.lo: pt.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-pt.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pt.Tpo -c -o libjrmath_la-pt.lo `test -f 'pt.c' || echo '$(srcdir)/'`pt.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-pt.Tpo $(DEPDIR)/libjrmath_la-pt.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pt.c' object='libjrmath_la-pt.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-pt.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pt.Tpo -c -o libjrmath_la-pt.lo `test -f 'pt.c' || echo '$(srcdir)/'`pt.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-pt.Tpo $(DEPDIR)/libjrmath_la-pt.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pt.c' object='libjrmath_la-pt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pt.lo `test -f 'pt.c' || echo '$(srcdir)/'`pt.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pt.lo `test -f 'pt.c' || echo '$(srcdir)/'`pt.c libjrmath_la-qt.lo: qt.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-qt.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qt.Tpo -c -o libjrmath_la-qt.lo `test -f 'qt.c' || echo '$(srcdir)/'`qt.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-qt.Tpo $(DEPDIR)/libjrmath_la-qt.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qt.c' object='libjrmath_la-qt.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qt.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qt.Tpo -c -o libjrmath_la-qt.lo `test -f 'qt.c' || echo '$(srcdir)/'`qt.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qt.Tpo $(DEPDIR)/libjrmath_la-qt.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qt.c' object='libjrmath_la-qt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qt.lo `test -f 'qt.c' || echo '$(srcdir)/'`qt.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qt.lo `test -f 'qt.c' || echo '$(srcdir)/'`qt.c libjrmath_la-runif.lo: runif.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-runif.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-runif.Tpo -c -o libjrmath_la-runif.lo `test -f 'runif.c' || echo '$(srcdir)/'`runif.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-runif.Tpo $(DEPDIR)/libjrmath_la-runif.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runif.c' object='libjrmath_la-runif.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-runif.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-runif.Tpo -c -o libjrmath_la-runif.lo `test -f 'runif.c' || echo '$(srcdir)/'`runif.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-runif.Tpo $(DEPDIR)/libjrmath_la-runif.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='runif.c' object='libjrmath_la-runif.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-runif.lo `test -f 'runif.c' || echo '$(srcdir)/'`runif.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-runif.lo `test -f 'runif.c' || echo '$(srcdir)/'`runif.c libjrmath_la-dunif.lo: dunif.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-dunif.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dunif.Tpo -c -o libjrmath_la-dunif.lo `test -f 'dunif.c' || echo '$(srcdir)/'`dunif.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-dunif.Tpo $(DEPDIR)/libjrmath_la-dunif.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dunif.c' object='libjrmath_la-dunif.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dunif.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dunif.Tpo -c -o libjrmath_la-dunif.lo `test -f 'dunif.c' || echo '$(srcdir)/'`dunif.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dunif.Tpo $(DEPDIR)/libjrmath_la-dunif.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dunif.c' object='libjrmath_la-dunif.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dunif.lo `test -f 'dunif.c' || echo '$(srcdir)/'`dunif.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dunif.lo `test -f 'dunif.c' || echo '$(srcdir)/'`dunif.c libjrmath_la-punif.lo: punif.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-punif.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-punif.Tpo -c -o libjrmath_la-punif.lo `test -f 'punif.c' || echo '$(srcdir)/'`punif.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-punif.Tpo $(DEPDIR)/libjrmath_la-punif.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='punif.c' object='libjrmath_la-punif.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-punif.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-punif.Tpo -c -o libjrmath_la-punif.lo `test -f 'punif.c' || echo '$(srcdir)/'`punif.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-punif.Tpo $(DEPDIR)/libjrmath_la-punif.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='punif.c' object='libjrmath_la-punif.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-punif.lo `test -f 'punif.c' || echo '$(srcdir)/'`punif.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-punif.lo `test -f 'punif.c' || echo '$(srcdir)/'`punif.c libjrmath_la-qunif.lo: qunif.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-qunif.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qunif.Tpo -c -o libjrmath_la-qunif.lo `test -f 'qunif.c' || echo '$(srcdir)/'`qunif.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-qunif.Tpo $(DEPDIR)/libjrmath_la-qunif.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qunif.c' object='libjrmath_la-qunif.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qunif.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qunif.Tpo -c -o libjrmath_la-qunif.lo `test -f 'qunif.c' || echo '$(srcdir)/'`qunif.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qunif.Tpo $(DEPDIR)/libjrmath_la-qunif.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qunif.c' object='libjrmath_la-qunif.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qunif.lo `test -f 'qunif.c' || echo '$(srcdir)/'`qunif.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qunif.lo `test -f 'qunif.c' || echo '$(srcdir)/'`qunif.c libjrmath_la-rweibull.lo: rweibull.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-rweibull.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rweibull.Tpo -c -o libjrmath_la-rweibull.lo `test -f 'rweibull.c' || echo '$(srcdir)/'`rweibull.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-rweibull.Tpo $(DEPDIR)/libjrmath_la-rweibull.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rweibull.c' object='libjrmath_la-rweibull.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-rweibull.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rweibull.Tpo -c -o libjrmath_la-rweibull.lo `test -f 'rweibull.c' || echo '$(srcdir)/'`rweibull.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-rweibull.Tpo $(DEPDIR)/libjrmath_la-rweibull.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rweibull.c' object='libjrmath_la-rweibull.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rweibull.lo `test -f 'rweibull.c' || echo '$(srcdir)/'`rweibull.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rweibull.lo `test -f 'rweibull.c' || echo '$(srcdir)/'`rweibull.c libjrmath_la-dweibull.lo: dweibull.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-dweibull.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dweibull.Tpo -c -o libjrmath_la-dweibull.lo `test -f 'dweibull.c' || echo '$(srcdir)/'`dweibull.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-dweibull.Tpo $(DEPDIR)/libjrmath_la-dweibull.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dweibull.c' object='libjrmath_la-dweibull.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dweibull.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dweibull.Tpo -c -o libjrmath_la-dweibull.lo `test -f 'dweibull.c' || echo '$(srcdir)/'`dweibull.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dweibull.Tpo $(DEPDIR)/libjrmath_la-dweibull.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dweibull.c' object='libjrmath_la-dweibull.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dweibull.lo `test -f 'dweibull.c' || echo '$(srcdir)/'`dweibull.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dweibull.lo `test -f 'dweibull.c' || echo '$(srcdir)/'`dweibull.c libjrmath_la-pweibull.lo: pweibull.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-pweibull.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pweibull.Tpo -c -o libjrmath_la-pweibull.lo `test -f 'pweibull.c' || echo '$(srcdir)/'`pweibull.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-pweibull.Tpo $(DEPDIR)/libjrmath_la-pweibull.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pweibull.c' object='libjrmath_la-pweibull.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-pweibull.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pweibull.Tpo -c -o libjrmath_la-pweibull.lo `test -f 'pweibull.c' || echo '$(srcdir)/'`pweibull.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-pweibull.Tpo $(DEPDIR)/libjrmath_la-pweibull.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pweibull.c' object='libjrmath_la-pweibull.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pweibull.lo `test -f 'pweibull.c' || echo '$(srcdir)/'`pweibull.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pweibull.lo `test -f 'pweibull.c' || echo '$(srcdir)/'`pweibull.c libjrmath_la-qweibull.lo: qweibull.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-qweibull.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qweibull.Tpo -c -o libjrmath_la-qweibull.lo `test -f 'qweibull.c' || echo '$(srcdir)/'`qweibull.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-qweibull.Tpo $(DEPDIR)/libjrmath_la-qweibull.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qweibull.c' object='libjrmath_la-qweibull.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qweibull.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qweibull.Tpo -c -o libjrmath_la-qweibull.lo `test -f 'qweibull.c' || echo '$(srcdir)/'`qweibull.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qweibull.Tpo $(DEPDIR)/libjrmath_la-qweibull.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qweibull.c' object='libjrmath_la-qweibull.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qweibull.lo `test -f 'qweibull.c' || echo '$(srcdir)/'`qweibull.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qweibull.lo `test -f 'qweibull.c' || echo '$(srcdir)/'`qweibull.c libjrmath_la-rnchisq.lo: rnchisq.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-rnchisq.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rnchisq.Tpo -c -o libjrmath_la-rnchisq.lo `test -f 'rnchisq.c' || echo '$(srcdir)/'`rnchisq.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-rnchisq.Tpo $(DEPDIR)/libjrmath_la-rnchisq.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rnchisq.c' object='libjrmath_la-rnchisq.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-rnchisq.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rnchisq.Tpo -c -o libjrmath_la-rnchisq.lo `test -f 'rnchisq.c' || echo '$(srcdir)/'`rnchisq.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-rnchisq.Tpo $(DEPDIR)/libjrmath_la-rnchisq.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rnchisq.c' object='libjrmath_la-rnchisq.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rnchisq.lo `test -f 'rnchisq.c' || echo '$(srcdir)/'`rnchisq.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rnchisq.lo `test -f 'rnchisq.c' || echo '$(srcdir)/'`rnchisq.c libjrmath_la-dnchisq.lo: dnchisq.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-dnchisq.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dnchisq.Tpo -c -o libjrmath_la-dnchisq.lo `test -f 'dnchisq.c' || echo '$(srcdir)/'`dnchisq.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-dnchisq.Tpo $(DEPDIR)/libjrmath_la-dnchisq.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dnchisq.c' object='libjrmath_la-dnchisq.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dnchisq.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dnchisq.Tpo -c -o libjrmath_la-dnchisq.lo `test -f 'dnchisq.c' || echo '$(srcdir)/'`dnchisq.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dnchisq.Tpo $(DEPDIR)/libjrmath_la-dnchisq.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dnchisq.c' object='libjrmath_la-dnchisq.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dnchisq.lo `test -f 'dnchisq.c' || echo '$(srcdir)/'`dnchisq.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dnchisq.lo `test -f 'dnchisq.c' || echo '$(srcdir)/'`dnchisq.c libjrmath_la-pnchisq.lo: pnchisq.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-pnchisq.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pnchisq.Tpo -c -o libjrmath_la-pnchisq.lo `test -f 'pnchisq.c' || echo '$(srcdir)/'`pnchisq.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-pnchisq.Tpo $(DEPDIR)/libjrmath_la-pnchisq.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pnchisq.c' object='libjrmath_la-pnchisq.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-pnchisq.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pnchisq.Tpo -c -o libjrmath_la-pnchisq.lo `test -f 'pnchisq.c' || echo '$(srcdir)/'`pnchisq.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-pnchisq.Tpo $(DEPDIR)/libjrmath_la-pnchisq.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pnchisq.c' object='libjrmath_la-pnchisq.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pnchisq.lo `test -f 'pnchisq.c' || echo '$(srcdir)/'`pnchisq.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pnchisq.lo `test -f 'pnchisq.c' || echo '$(srcdir)/'`pnchisq.c libjrmath_la-qnchisq.lo: qnchisq.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-qnchisq.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qnchisq.Tpo -c -o libjrmath_la-qnchisq.lo `test -f 'qnchisq.c' || echo '$(srcdir)/'`qnchisq.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-qnchisq.Tpo $(DEPDIR)/libjrmath_la-qnchisq.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qnchisq.c' object='libjrmath_la-qnchisq.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qnchisq.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qnchisq.Tpo -c -o libjrmath_la-qnchisq.lo `test -f 'qnchisq.c' || echo '$(srcdir)/'`qnchisq.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qnchisq.Tpo $(DEPDIR)/libjrmath_la-qnchisq.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qnchisq.c' object='libjrmath_la-qnchisq.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qnchisq.lo `test -f 'qnchisq.c' || echo '$(srcdir)/'`qnchisq.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qnchisq.lo `test -f 'qnchisq.c' || echo '$(srcdir)/'`qnchisq.c libjrmath_la-rcauchy.lo: rcauchy.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-rcauchy.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rcauchy.Tpo -c -o libjrmath_la-rcauchy.lo `test -f 'rcauchy.c' || echo '$(srcdir)/'`rcauchy.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-rcauchy.Tpo $(DEPDIR)/libjrmath_la-rcauchy.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rcauchy.c' object='libjrmath_la-rcauchy.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-rcauchy.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rcauchy.Tpo -c -o libjrmath_la-rcauchy.lo `test -f 'rcauchy.c' || echo '$(srcdir)/'`rcauchy.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-rcauchy.Tpo $(DEPDIR)/libjrmath_la-rcauchy.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rcauchy.c' object='libjrmath_la-rcauchy.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rcauchy.lo `test -f 'rcauchy.c' || echo '$(srcdir)/'`rcauchy.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rcauchy.lo `test -f 'rcauchy.c' || echo '$(srcdir)/'`rcauchy.c libjrmath_la-dcauchy.lo: dcauchy.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-dcauchy.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dcauchy.Tpo -c -o libjrmath_la-dcauchy.lo `test -f 'dcauchy.c' || echo '$(srcdir)/'`dcauchy.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-dcauchy.Tpo $(DEPDIR)/libjrmath_la-dcauchy.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dcauchy.c' object='libjrmath_la-dcauchy.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dcauchy.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dcauchy.Tpo -c -o libjrmath_la-dcauchy.lo `test -f 'dcauchy.c' || echo '$(srcdir)/'`dcauchy.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dcauchy.Tpo $(DEPDIR)/libjrmath_la-dcauchy.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dcauchy.c' object='libjrmath_la-dcauchy.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dcauchy.lo `test -f 'dcauchy.c' || echo '$(srcdir)/'`dcauchy.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dcauchy.lo `test -f 'dcauchy.c' || echo '$(srcdir)/'`dcauchy.c libjrmath_la-pcauchy.lo: pcauchy.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-pcauchy.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pcauchy.Tpo -c -o libjrmath_la-pcauchy.lo `test -f 'pcauchy.c' || echo '$(srcdir)/'`pcauchy.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-pcauchy.Tpo $(DEPDIR)/libjrmath_la-pcauchy.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pcauchy.c' object='libjrmath_la-pcauchy.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-pcauchy.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pcauchy.Tpo -c -o libjrmath_la-pcauchy.lo `test -f 'pcauchy.c' || echo '$(srcdir)/'`pcauchy.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-pcauchy.Tpo $(DEPDIR)/libjrmath_la-pcauchy.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pcauchy.c' object='libjrmath_la-pcauchy.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pcauchy.lo `test -f 'pcauchy.c' || echo '$(srcdir)/'`pcauchy.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pcauchy.lo `test -f 'pcauchy.c' || echo '$(srcdir)/'`pcauchy.c libjrmath_la-qcauchy.lo: qcauchy.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-qcauchy.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qcauchy.Tpo -c -o libjrmath_la-qcauchy.lo `test -f 'qcauchy.c' || echo '$(srcdir)/'`qcauchy.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-qcauchy.Tpo $(DEPDIR)/libjrmath_la-qcauchy.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qcauchy.c' object='libjrmath_la-qcauchy.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qcauchy.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qcauchy.Tpo -c -o libjrmath_la-qcauchy.lo `test -f 'qcauchy.c' || echo '$(srcdir)/'`qcauchy.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qcauchy.Tpo $(DEPDIR)/libjrmath_la-qcauchy.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qcauchy.c' object='libjrmath_la-qcauchy.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qcauchy.lo `test -f 'qcauchy.c' || echo '$(srcdir)/'`qcauchy.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qcauchy.lo `test -f 'qcauchy.c' || echo '$(srcdir)/'`qcauchy.c libjrmath_la-rf.lo: rf.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-rf.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rf.Tpo -c -o libjrmath_la-rf.lo `test -f 'rf.c' || echo '$(srcdir)/'`rf.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-rf.Tpo $(DEPDIR)/libjrmath_la-rf.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rf.c' object='libjrmath_la-rf.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-rf.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rf.Tpo -c -o libjrmath_la-rf.lo `test -f 'rf.c' || echo '$(srcdir)/'`rf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-rf.Tpo $(DEPDIR)/libjrmath_la-rf.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rf.c' object='libjrmath_la-rf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rf.lo `test -f 'rf.c' || echo '$(srcdir)/'`rf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rf.lo `test -f 'rf.c' || echo '$(srcdir)/'`rf.c libjrmath_la-df.lo: df.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-df.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-df.Tpo -c -o libjrmath_la-df.lo `test -f 'df.c' || echo '$(srcdir)/'`df.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-df.Tpo $(DEPDIR)/libjrmath_la-df.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='df.c' object='libjrmath_la-df.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-df.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-df.Tpo -c -o libjrmath_la-df.lo `test -f 'df.c' || echo '$(srcdir)/'`df.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-df.Tpo $(DEPDIR)/libjrmath_la-df.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='df.c' object='libjrmath_la-df.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-df.lo `test -f 'df.c' || echo '$(srcdir)/'`df.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-df.lo `test -f 'df.c' || echo '$(srcdir)/'`df.c libjrmath_la-pf.lo: pf.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-pf.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pf.Tpo -c -o libjrmath_la-pf.lo `test -f 'pf.c' || echo '$(srcdir)/'`pf.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-pf.Tpo $(DEPDIR)/libjrmath_la-pf.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pf.c' object='libjrmath_la-pf.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-pf.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pf.Tpo -c -o libjrmath_la-pf.lo `test -f 'pf.c' || echo '$(srcdir)/'`pf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-pf.Tpo $(DEPDIR)/libjrmath_la-pf.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pf.c' object='libjrmath_la-pf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pf.lo `test -f 'pf.c' || echo '$(srcdir)/'`pf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pf.lo `test -f 'pf.c' || echo '$(srcdir)/'`pf.c libjrmath_la-qf.lo: qf.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-qf.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qf.Tpo -c -o libjrmath_la-qf.lo `test -f 'qf.c' || echo '$(srcdir)/'`qf.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-qf.Tpo $(DEPDIR)/libjrmath_la-qf.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qf.c' object='libjrmath_la-qf.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qf.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qf.Tpo -c -o libjrmath_la-qf.lo `test -f 'qf.c' || echo '$(srcdir)/'`qf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qf.Tpo $(DEPDIR)/libjrmath_la-qf.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qf.c' object='libjrmath_la-qf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qf.lo `test -f 'qf.c' || echo '$(srcdir)/'`qf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qf.lo `test -f 'qf.c' || echo '$(srcdir)/'`qf.c -libjrmath_la-polygamma.lo: polygamma.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libjrmath_la-polygamma.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-polygamma.Tpo -c -o libjrmath_la-polygamma.lo `test -f 'polygamma.c' || echo '$(srcdir)/'`polygamma.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-polygamma.Tpo $(DEPDIR)/libjrmath_la-polygamma.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='polygamma.c' object='libjrmath_la-polygamma.lo' libtool=yes @AMDEPBACKSLASH@ +libjrmath_la-cospi.lo: cospi.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-cospi.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-cospi.Tpo -c -o libjrmath_la-cospi.lo `test -f 'cospi.c' || echo '$(srcdir)/'`cospi.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-cospi.Tpo $(DEPDIR)/libjrmath_la-cospi.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cospi.c' object='libjrmath_la-cospi.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-cospi.lo `test -f 'cospi.c' || echo '$(srcdir)/'`cospi.c + +libjrmath_la-gamma_cody.lo: gamma_cody.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-gamma_cody.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-gamma_cody.Tpo -c -o libjrmath_la-gamma_cody.lo `test -f 'gamma_cody.c' || echo '$(srcdir)/'`gamma_cody.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-gamma_cody.Tpo $(DEPDIR)/libjrmath_la-gamma_cody.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gamma_cody.c' object='libjrmath_la-gamma_cody.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-gamma_cody.lo `test -f 'gamma_cody.c' || echo '$(srcdir)/'`gamma_cody.c + +libjrmath_la-bessel_i.lo: bessel_i.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-bessel_i.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-bessel_i.Tpo -c -o libjrmath_la-bessel_i.lo `test -f 'bessel_i.c' || echo '$(srcdir)/'`bessel_i.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-bessel_i.Tpo $(DEPDIR)/libjrmath_la-bessel_i.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bessel_i.c' object='libjrmath_la-bessel_i.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-bessel_i.lo `test -f 'bessel_i.c' || echo '$(srcdir)/'`bessel_i.c + +libjrmath_la-bessel_j.lo: bessel_j.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-bessel_j.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-bessel_j.Tpo -c -o libjrmath_la-bessel_j.lo `test -f 'bessel_j.c' || echo '$(srcdir)/'`bessel_j.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-bessel_j.Tpo $(DEPDIR)/libjrmath_la-bessel_j.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bessel_j.c' object='libjrmath_la-bessel_j.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-bessel_j.lo `test -f 'bessel_j.c' || echo '$(srcdir)/'`bessel_j.c + +libjrmath_la-bessel_k.lo: bessel_k.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-bessel_k.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-bessel_k.Tpo -c -o libjrmath_la-bessel_k.lo `test -f 'bessel_k.c' || echo '$(srcdir)/'`bessel_k.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-bessel_k.Tpo $(DEPDIR)/libjrmath_la-bessel_k.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bessel_k.c' object='libjrmath_la-bessel_k.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-bessel_k.lo `test -f 'bessel_k.c' || echo '$(srcdir)/'`bessel_k.c + +libjrmath_la-bessel_y.lo: bessel_y.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-bessel_y.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-bessel_y.Tpo -c -o libjrmath_la-bessel_y.lo `test -f 'bessel_y.c' || echo '$(srcdir)/'`bessel_y.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-bessel_y.Tpo $(DEPDIR)/libjrmath_la-bessel_y.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bessel_y.c' object='libjrmath_la-bessel_y.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-bessel_y.lo `test -f 'bessel_y.c' || echo '$(srcdir)/'`bessel_y.c + +libjrmath_la-dgeom.lo: dgeom.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dgeom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dgeom.Tpo -c -o libjrmath_la-dgeom.lo `test -f 'dgeom.c' || echo '$(srcdir)/'`dgeom.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dgeom.Tpo $(DEPDIR)/libjrmath_la-dgeom.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dgeom.c' object='libjrmath_la-dgeom.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dgeom.lo `test -f 'dgeom.c' || echo '$(srcdir)/'`dgeom.c + +libjrmath_la-pgeom.lo: pgeom.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-pgeom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pgeom.Tpo -c -o libjrmath_la-pgeom.lo `test -f 'pgeom.c' || echo '$(srcdir)/'`pgeom.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-pgeom.Tpo $(DEPDIR)/libjrmath_la-pgeom.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pgeom.c' object='libjrmath_la-pgeom.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pgeom.lo `test -f 'pgeom.c' || echo '$(srcdir)/'`pgeom.c + +libjrmath_la-qgeom.lo: qgeom.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qgeom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qgeom.Tpo -c -o libjrmath_la-qgeom.lo `test -f 'qgeom.c' || echo '$(srcdir)/'`qgeom.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qgeom.Tpo $(DEPDIR)/libjrmath_la-qgeom.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qgeom.c' object='libjrmath_la-qgeom.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qgeom.lo `test -f 'qgeom.c' || echo '$(srcdir)/'`qgeom.c + +libjrmath_la-rgeom.lo: rgeom.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-rgeom.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-rgeom.Tpo -c -o libjrmath_la-rgeom.lo `test -f 'rgeom.c' || echo '$(srcdir)/'`rgeom.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-rgeom.Tpo $(DEPDIR)/libjrmath_la-rgeom.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rgeom.c' object='libjrmath_la-rgeom.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-rgeom.lo `test -f 'rgeom.c' || echo '$(srcdir)/'`rgeom.c + +libjrmath_la-dnbeta.lo: dnbeta.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dnbeta.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dnbeta.Tpo -c -o libjrmath_la-dnbeta.lo `test -f 'dnbeta.c' || echo '$(srcdir)/'`dnbeta.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dnbeta.Tpo $(DEPDIR)/libjrmath_la-dnbeta.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dnbeta.c' object='libjrmath_la-dnbeta.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dnbeta.lo `test -f 'dnbeta.c' || echo '$(srcdir)/'`dnbeta.c + +libjrmath_la-pnbeta.lo: pnbeta.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-pnbeta.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pnbeta.Tpo -c -o libjrmath_la-pnbeta.lo `test -f 'pnbeta.c' || echo '$(srcdir)/'`pnbeta.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-pnbeta.Tpo $(DEPDIR)/libjrmath_la-pnbeta.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pnbeta.c' object='libjrmath_la-pnbeta.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pnbeta.lo `test -f 'pnbeta.c' || echo '$(srcdir)/'`pnbeta.c + +libjrmath_la-qnbeta.lo: qnbeta.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qnbeta.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qnbeta.Tpo -c -o libjrmath_la-qnbeta.lo `test -f 'qnbeta.c' || echo '$(srcdir)/'`qnbeta.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qnbeta.Tpo $(DEPDIR)/libjrmath_la-qnbeta.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qnbeta.c' object='libjrmath_la-qnbeta.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qnbeta.lo `test -f 'qnbeta.c' || echo '$(srcdir)/'`qnbeta.c + +libjrmath_la-dnf.lo: dnf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dnf.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dnf.Tpo -c -o libjrmath_la-dnf.lo `test -f 'dnf.c' || echo '$(srcdir)/'`dnf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dnf.Tpo $(DEPDIR)/libjrmath_la-dnf.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dnf.c' object='libjrmath_la-dnf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libjrmath_la-polygamma.lo `test -f 'polygamma.c' || echo '$(srcdir)/'`polygamma.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dnf.lo `test -f 'dnf.c' || echo '$(srcdir)/'`dnf.c + +libjrmath_la-pnf.lo: pnf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-pnf.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pnf.Tpo -c -o libjrmath_la-pnf.lo `test -f 'pnf.c' || echo '$(srcdir)/'`pnf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-pnf.Tpo $(DEPDIR)/libjrmath_la-pnf.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pnf.c' object='libjrmath_la-pnf.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pnf.lo `test -f 'pnf.c' || echo '$(srcdir)/'`pnf.c + +libjrmath_la-qnf.lo: qnf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qnf.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qnf.Tpo -c -o libjrmath_la-qnf.lo `test -f 'qnf.c' || echo '$(srcdir)/'`qnf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qnf.Tpo $(DEPDIR)/libjrmath_la-qnf.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qnf.c' object='libjrmath_la-qnf.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qnf.lo `test -f 'qnf.c' || echo '$(srcdir)/'`qnf.c + +libjrmath_la-dnt.lo: dnt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-dnt.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-dnt.Tpo -c -o libjrmath_la-dnt.lo `test -f 'dnt.c' || echo '$(srcdir)/'`dnt.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-dnt.Tpo $(DEPDIR)/libjrmath_la-dnt.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dnt.c' object='libjrmath_la-dnt.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-dnt.lo `test -f 'dnt.c' || echo '$(srcdir)/'`dnt.c + +libjrmath_la-pnt.lo: pnt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-pnt.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-pnt.Tpo -c -o libjrmath_la-pnt.lo `test -f 'pnt.c' || echo '$(srcdir)/'`pnt.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-pnt.Tpo $(DEPDIR)/libjrmath_la-pnt.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pnt.c' object='libjrmath_la-pnt.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-pnt.lo `test -f 'pnt.c' || echo '$(srcdir)/'`pnt.c + +libjrmath_la-qnt.lo: qnt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-qnt.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-qnt.Tpo -c -o libjrmath_la-qnt.lo `test -f 'qnt.c' || echo '$(srcdir)/'`qnt.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-qnt.Tpo $(DEPDIR)/libjrmath_la-qnt.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qnt.c' object='libjrmath_la-qnt.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-qnt.lo `test -f 'qnt.c' || echo '$(srcdir)/'`qnt.c + +libjrmath_la-sign.lo: sign.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -MT libjrmath_la-sign.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-sign.Tpo -c -o libjrmath_la-sign.lo `test -f 'sign.c' || echo '$(srcdir)/'`sign.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-sign.Tpo $(DEPDIR)/libjrmath_la-sign.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sign.c' object='libjrmath_la-sign.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(libjrmath_la_CFLAGS) $(CFLAGS) -c -o libjrmath_la-sign.lo `test -f 'sign.c' || echo '$(srcdir)/'`sign.c .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< libjrmath_la-callbacks.lo: callbacks.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libjrmath_la-callbacks.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-callbacks.Tpo -c -o libjrmath_la-callbacks.lo `test -f 'callbacks.cc' || echo '$(srcdir)/'`callbacks.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libjrmath_la-callbacks.Tpo $(DEPDIR)/libjrmath_la-callbacks.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='callbacks.cc' object='libjrmath_la-callbacks.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libjrmath_la-callbacks.lo -MD -MP -MF $(DEPDIR)/libjrmath_la-callbacks.Tpo -c -o libjrmath_la-callbacks.lo `test -f 'callbacks.cc' || echo '$(srcdir)/'`callbacks.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjrmath_la-callbacks.Tpo $(DEPDIR)/libjrmath_la-callbacks.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='callbacks.cc' object='libjrmath_la-callbacks.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libjrmath_la-callbacks.lo `test -f 'callbacks.cc' || echo '$(srcdir)/'`callbacks.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjrmath_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libjrmath_la-callbacks.lo `test -f 'callbacks.cc' || echo '$(srcdir)/'`callbacks.cc mostlyclean-libtool: -rm -f *.lo @@ -1213,26 +1497,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -1244,15 +1517,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -1261,6 +1530,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -1405,19 +1689,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libLTLIBRARIES clean-libtool ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am \ - install-libLTLIBRARIES install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libLTLIBRARIES install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-libLTLIBRARIES + tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/jrmath/mlutils.c jags-4.0.0/src/jrmath/mlutils.c --- jags-3.4.0/src/jrmath/mlutils.c 2013-08-22 15:44:58.000000000 +0000 +++ jags-4.0.0/src/jrmath/mlutils.c 2015-09-10 05:42:23.000000000 +0000 @@ -1,6 +1,6 @@ /* * Mathlib : A C Library of Special Functions - * Copyright (C) 1998-2006 Ross Ihaka and the R Development Core Team + * Copyright (C) 1998-2006 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -29,7 +29,7 @@ * used only in standalone Rmath lib. */ -int R_finite(double x) +int JR_finite(double x) { #ifdef HAVE_WORKING_ISFINITE return isfinite(x); @@ -40,7 +40,7 @@ /* C++ math header undefines any isnan macro. This file doesn't get C++ headers and so is safe. */ -int R_isnancpp(double x) +int JR_isnancpp(double x) { return (isnan(x) != 0); } @@ -51,7 +51,7 @@ return x1 - floor(q) * x2; } -double R_pow(double x, double y) /* = x ^ y */ +double JR_pow(double x, double y) /* = x ^ y */ { if(x == 1. || y == 0.) return(1.); @@ -88,13 +88,13 @@ non-int}; (neg)^{+-Inf} */ } -double R_pow_di(double x, int n) +double JR_pow_di(double x, int n) { double pow = 1.0; if (ISNAN(x)) return x; if (n != 0) { - if (!R_FINITE(x)) return R_pow(x, (double)n); + if (!R_FINITE(x)) return JR_pow(x, (double)n); if (n < 0) { n = -n; x = 1/x; } for(;;) { if(n & 01) pow *= x; @@ -106,7 +106,7 @@ #include #include -void attribute_hidden REprintf(const char *format, ...) +void attribute_hidden JREprintf(const char *format, ...) { va_list(ap); va_start(ap, format); diff -Nru jags-3.4.0/src/jrmath/nmath.h jags-4.0.0/src/jrmath/nmath.h --- jags-3.4.0/src/jrmath/nmath.h 2013-08-22 15:44:58.000000000 +0000 +++ jags-4.0.0/src/jrmath/nmath.h 2015-02-24 22:00:42.000000000 +0000 @@ -1,6 +1,6 @@ /* * Mathlib : A C Library of Special Functions - * Copyright (C) 1998-2004 The R Development Core Team + * Copyright (C) 1998-2013 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,6 +17,12 @@ * http://www.r-project.org/Licenses/ */ +/* S Like Fortran Interface */ +/* These may not be adequate everywhere. Convex had _ prepending common + blocks, and some compilers may need to specify Fortran linkage */ + + + /* Remap for JAGS */ #define norm_rand jags_norm_rand #define unif_rand jags_unif_rand @@ -30,6 +36,7 @@ # include #endif +/* Required by C99 but might be slow */ #ifdef HAVE_LONG_DOUBLE # define LDOUBLE long double #else @@ -39,50 +46,33 @@ #include #include /* DBL_MIN etc */ -#define MATHLIB_PRIVATE #include -#undef MATHLIB_PRIVATE +/* Used internally only */ double jags_d1mach(int); -#define gamma_cody jags_gamma_cody -double gamma_cody(double); - +double jags_gamma_cody(double); -#ifndef MATHLIB_STANDALONE +/* Copied from R_ext/RS.h */ -#include -# define MATHLIB_ERROR(fmt,x) error(fmt,x); -# define MATHLIB_WARNING(fmt,x) warning(fmt,x) -# define MATHLIB_WARNING2(fmt,x,x2) warning(fmt,x,x2) -# define MATHLIB_WARNING3(fmt,x,x2,x3) warning(fmt,x,x2,x3) -# define MATHLIB_WARNING4(fmt,x,x2,x3,x4) warning(fmt,x,x2,x3,x4) - -#include -#define ML_POSINF R_PosInf -#define ML_NEGINF R_NegInf -#define ML_NAN R_NaN - - -void R_CheckUserInterrupt(void); -/* Ei-ji Nakama reported that AIX 5.2 has calloc as a macro and objected - to redefining it. Tests added for 2.2.1 */ -#ifdef calloc -# undef calloc -#endif -#define calloc R_chk_calloc -#ifdef free -# undef free +#ifdef HAVE_F77_UNDERSCORE +# define F77_CALL(x) x ## _ +#else +# define F77_CALL(x) x #endif -#define free R_chk_free - -#ifdef ENABLE_NLS -#include -#define _(String) gettext (String) +#define F77_NAME(x) F77_CALL(x) +#define F77_SUB(x) F77_CALL(x) +#define F77_COM(x) F77_CALL(x) +#define F77_COMDECL(x) F77_CALL(x) + +/* moved from dpq.h */ +#ifdef HAVE_NEARYINT +# define R_forceint(x) nearbyint() #else -#define _(String) (String) +# define R_forceint(x) round(x) #endif +//R >= 3.1.0: # define R_nonint(x) (fabs((x) - R_forceint(x)) > 1e-7) +# define R_nonint(x) (fabs((x) - R_forceint(x)) > 1e-7*fmax2(1., fabs(x))) -#else /* Mathlib standalone */ #include @@ -92,17 +82,17 @@ #define MATHLIB_WARNING2(fmt,x,x2) printf(fmt,x,x2) #define MATHLIB_WARNING3(fmt,x,x2,x3) printf(fmt,x,x2,x3) #define MATHLIB_WARNING4(fmt,x,x2,x3,x4) printf(fmt,x,x2,x3,x4) +#define MATHLIB_WARNING5(fmt,x,x2,x3,x4,x5) printf(fmt,x,x2,x3,x4,x5) #define ISNAN(x) (isnan(x)!=0) -#define R_FINITE(x) R_finite(x) -int R_finite(double); +#define R_FINITE(x) JR_finite(x) +int JR_finite(double); #define ML_POSINF (1.0 / 0.0) #define ML_NEGINF ((-1.0) / 0.0) #define ML_NAN (0.0 / 0.0) #define _(String) String -#endif /* standalone */ #define ML_VALID(x) (!ISNAN(x)) @@ -130,19 +120,19 @@ char *msg = ""; \ switch(x) { \ case ME_DOMAIN: \ - msg = "argument out of domain in '%s'\n"; \ + msg = _("argument out of domain in '%s'\n"); \ break; \ case ME_RANGE: \ - msg = "value out of range in '%s'\n"; \ + msg = _("value out of range in '%s'\n"); \ break; \ case ME_NOCONV: \ - msg = "convergence failed in '%s'\n"; \ + msg = _("convergence failed in '%s'\n"); \ break; \ case ME_PRECISION: \ - msg = "full precision may not have been achieved in '%s'\n"; \ + msg = _("full precision may not have been achieved in '%s'\n"); \ break; \ case ME_UNDERFLOW: \ - msg = "underflow occurred in '%s'\n"; \ + msg = _("underflow occurred in '%s'\n"); \ break; \ } \ MATHLIB_WARNING(msg, s); \ @@ -169,9 +159,6 @@ #define lfastchoose jags_lfastchoose #define lgammacor jags_lgammacor #define stirlerr jags_stirlerr -/* in Rmath.h -#define gamma_cody jags_gamma_cody -*/ /* Chebyshev Series */ @@ -190,14 +177,15 @@ double attribute_hidden dbinom_raw(double, double, double, double, int); double attribute_hidden dpois_raw (double, double, int); -double attribute_hidden pnchisq_raw(double, double, double, double, double, int, Rboolean); +double attribute_hidden pnchisq_raw(double, double, double, double, double, + int, Rboolean, Rboolean); double attribute_hidden pgamma_raw(double, double, int, int); double attribute_hidden pbeta_raw(double, double, double, int, int); double attribute_hidden qchisq_appr(double, double, double, int, int, double tol); -LDOUBLE attribute_hidden pnbeta_raw(double, double, double, double, double); +LDOUBLE attribute_hidden pnbeta_raw(double, double, double, double, double); double attribute_hidden pnbeta2(double, double, double, double, double, int, int); -int i1mach(int); +int jags_i1mach(int); /* From toms708.c */ void attribute_hidden bratio(double a, double b, double x, double y, diff -Nru jags-3.4.0/src/jrmath/pbeta.c jags-4.0.0/src/jrmath/pbeta.c --- jags-3.4.0/src/jrmath/pbeta.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/pbeta.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,6 +1,6 @@ /* * Mathlib : A C Library of Special Functions - * Copyright (C) 2006 The R Development Core Team + * Copyright (C) 2006 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,8 +20,8 @@ * * #include * - * double pbeta_raw(double x, double pin, double qin, int lower_tail, int log_p) - * double pbeta (double x, double pin, double qin, int lower_tail, int log_p) + * double pbeta_raw(double x, double a, double b, int lower_tail, int log_p) + * double pbeta (double x, double a, double b, int lower_tail, int log_p) * * DESCRIPTION * @@ -38,28 +38,50 @@ #include "dpq.h" attribute_hidden -double pbeta_raw(double x, double pin, double qin, int lower_tail, int log_p) +double pbeta_raw(double x, double a, double b, int lower_tail, int log_p) { + // treat limit cases correctly here: + if(a == 0 || b == 0 || !R_FINITE(a) || !R_FINITE(b)) { + // NB: 0 < x < 1 : + if(a == 0 && b == 0) // point mass 1/2 at each of {0,1} : + return (log_p ? -M_LN2 : 0.5); + if (a == 0 || a/b == 0) // point mass 1 at 0 ==> P(X <= x) = 1, all x > 0 + return R_DT_1; + if (b == 0 || b/a == 0) // point mass 1 at 1 ==> P(X <= x) = 0, all x < 1 + return R_DT_0; + // else, remaining case: a = b = Inf : point mass 1 at 1/2 + if (x < 0.5) + return R_DT_0; + // else, x >= 0.5 : + return R_DT_1; + } + // Now: 0 < a < Inf; 0 < b < Inf + double x1 = 0.5 - x + 0.5, w, wc; int ierr; - bratio(pin, qin, x, x1, &w, &wc, &ierr, log_p); /* -> ./toms708.c */ + //==== + bratio(a, b, x, x1, &w, &wc, &ierr, log_p); /* -> ./toms708.c */ + //==== /* ierr = 8 is about inaccuracy in extreme cases */ if(ierr && (ierr != 8 || log_p) ) - MATHLIB_WARNING(_("pbeta_raw() -> bratio() gave error code %d"), ierr); + MATHLIB_WARNING4(_("pbeta_raw(%g, a=%g, b=%g, ..) -> bratio() gave error code %d"), + x, a,b, ierr); return lower_tail ? w : wc; } /* pbeta_raw() */ -double pbeta(double x, double pin, double qin, int lower_tail, int log_p) +double pbeta(double x, double a, double b, int lower_tail, int log_p) { #ifdef IEEE_754 - if (ISNAN(x) || ISNAN(pin) || ISNAN(qin)) return x + pin + qin; + if (ISNAN(x) || ISNAN(a) || ISNAN(b)) return x + a + b; #endif - if (pin <= 0 || qin <= 0) ML_ERR_return_NAN; + if (a < 0 || b < 0) ML_ERR_return_NAN; + // allowing a==0 and b==0 <==> treat as one- or two-point mass if (x <= 0) return R_DT_0; if (x >= 1) return R_DT_1; - return pbeta_raw(x, pin, qin, lower_tail, log_p); + + return pbeta_raw(x, a, b, lower_tail, log_p); } diff -Nru jags-3.4.0/src/jrmath/pbinom.c jags-4.0.0/src/jrmath/pbinom.c --- jags-3.4.0/src/jrmath/pbinom.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/pbinom.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-6 The R Development Core Team + * Copyright (C) 2000-2014 The R Core Team * Copyright (C) 2004 The R Foundation * * This program is free software; you can redistribute it and/or modify @@ -33,8 +33,11 @@ if (!R_FINITE(n) || !R_FINITE(p)) ML_ERR_return_NAN; #endif - if(R_D_nonint(n)) ML_ERR_return_NAN; - n = R_D_forceint(n); + if(R_nonint(n)) { + MATHLIB_WARNING("non-integer n = %f", n); + ML_ERR_return_NAN; + } + n = R_forceint(n); /* PR#8560: n=0 is a valid value */ if(n < 0 || p < 0 || p > 1) ML_ERR_return_NAN; diff -Nru jags-3.4.0/src/jrmath/pcauchy.c jags-4.0.0/src/jrmath/pcauchy.c --- jags-3.4.0/src/jrmath/pcauchy.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/pcauchy.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000-2014 The R Core Team * Copyright (C) 2004 The R Foundation * * This program is free software; you can redistribute it and/or modify @@ -23,6 +23,12 @@ * The distribution function of the Cauchy distribution. */ +#include + +#ifdef HAVE_ATANPI +double atanpi(double); +#endif + #include "nmath.h" #include "dpq.h" @@ -47,9 +53,17 @@ x = -x; /* for large x, the standard formula suffers from cancellation. * This is from Morten Welinder thanks to Ian Smith's atan(1/x) : */ +#ifdef HAVE_ATANPI + if (fabs(x) > 1) { + double y = atanpi(1/x); + return (x > 0) ? R_D_Clog(y) : R_D_val(-y); + } else + return R_D_val(0.5 + atanpi(x)); +#else if (fabs(x) > 1) { double y = atan(1/x) / M_PI; return (x > 0) ? R_D_Clog(y) : R_D_val(-y); } else return R_D_val(0.5 + atan(x) / M_PI); +#endif } diff -Nru jags-3.4.0/src/jrmath/pchisq.c jags-4.0.0/src/jrmath/pchisq.c --- jags-3.4.0/src/jrmath/pchisq.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/pchisq.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -Nru jags-3.4.0/src/jrmath/pexp.c jags-4.0.0/src/jrmath/pexp.c --- jags-3.4.0/src/jrmath/pexp.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/pexp.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-2002 The R Development Core Team + * Copyright (C) 2000-2002 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -Nru jags-3.4.0/src/jrmath/pf.c jags-4.0.0/src/jrmath/pf.c --- jags-3.4.0/src/jrmath/pf.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/pf.c 2015-02-23 21:46:33.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-8 The R Development Core Team + * Copyright (C) 2000-8 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -Nru jags-3.4.0/src/jrmath/pgamma.c jags-4.0.0/src/jrmath/pgamma.c --- jags-3.4.0/src/jrmath/pgamma.c 2013-08-22 15:44:58.000000000 +0000 +++ jags-4.0.0/src/jrmath/pgamma.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,8 +1,8 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 2005-6 Morten Welinder - * Copyright (C) 2005-6 The R Foundation - * Copyright (C) 2006 The R Core Development Team + * Copyright (C) 2005-10 The R Foundation + * Copyright (C) 2006-10 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -43,7 +43,6 @@ * * Complete redesign by Morten Welinder, originally for Gnumeric. * Improvements (e.g. "while NEEDED_SCALE") by Martin Maechler - * The old version can be activated by compiling with -DR_USE_OLD_PGAMMA * * REFERENCES * @@ -240,12 +239,10 @@ */ double logspace_sub (double logx, double logy) { - return logx + log1p (-exp (logy - logx)); + return logx + R_Log1_Exp(logy - logx); } -#ifndef R_USE_OLD_PGAMMA - /* dpois_wrap (x_P_1, lambda, g_log) == * dpois (x_P_1 - 1, lambda, g_log) := exp(-L) L^k / gamma(k+1) , k := x_P_1 - 1 */ @@ -298,7 +295,7 @@ } while (fabs (term) > DBL_EPSILON * fabs (sum)); #ifdef DEBUG_p - REprintf (" %d terms --> conv.sum=%g;", n, sum); + REprintf ("%5.0f terms --> conv.sum=%g;", n, sum); #endif if (lower_tail) { double f1 = log_p ? log1p (sum) : 1 + sum; @@ -352,13 +349,13 @@ } /* Continued fraction for calculation of - * ??? - * = (y / d) + o(y/d) + * scaled upper-tail F_{gamma} + * ~= (y / d) * [1 + (1-y)/d + O( ((1-y)/d)^2 ) ] */ static double pd_lower_cf (double y, double d) { - double f = 0, of; + double f= 0.0 /* -Wall */, of, f0; double i, c2, c3, c4, a1, b1, a2, b2; #define NEEDED_SCALE \ @@ -374,16 +371,18 @@ #ifdef DEBUG_p REprintf("pd_lower_cf(y=%.14g, d=%.14g)", y, d); #endif - if (y == 0 || (R_FINITE(y) && !R_FINITE(d))) /* includes d = Inf or y = 0 */ - return 0; - /* Needed, e.g. for pgamma(10^c(100,295), shape= 1.1, log=TRUE) */ - if(fabs(y - 1) < fabs(d) * 1e-20) { + if (y == 0) return 0; + + f0 = y/d; + /* Needed, e.g. for pgamma(10^c(100,295), shape= 1.1, log=TRUE): */ + if(fabs(y - 1) < fabs(d) * DBL_EPSILON) { /* includes y < d = Inf */ #ifdef DEBUG_p REprintf(" very small 'y' -> returning (y/d)\n"); #endif - return (y/d); + return (f0); } + if(f0 > 1.) f0 = 1.; c2 = y; c4 = d; /* original (y,d), *not* potentially scaled ones!*/ @@ -392,9 +391,7 @@ while NEEDED_SCALE - /* if(a2 == 0) return 0;/\* just in case, e.g. d=y=0 *\/ */ - - i = 0; + i = 0; of = -1.; /* far away */ while (i < max_it) { i++; c2--; c3 = i * c2; c4 += 2; @@ -410,19 +407,15 @@ if NEEDED_SCALE if (b2 != 0) { - of = f; f = a2 / b2; -#ifdef UP_TO_2009_11_07__NO_LONGER - /* convergence check: relative; absolute for small f : */ - if (fabs (f - of) <= DBL_EPSILON * fmax2(1., fabs(f))) { .. } -#endif - /* convergence check */ - if (fabs(f - of) <= DBL_EPSILON * fabs(f)) { + /* convergence check: relative; "absolute" for very small f : */ + if (fabs (f - of) <= DBL_EPSILON * fmax2(f0, fabs(f))) { #ifdef DEBUG_p REprintf(" %g iter.\n", i); #endif return f; } + of = f; } } @@ -516,7 +509,7 @@ return 1 / sum; } else { - double d = dnorm (x, 0, 1, FALSE); + double d = dnorm (x, 0., 1., FALSE); return d / exp (lp); } } @@ -706,7 +699,7 @@ return x; #endif if(alph == 0.) /* limit case; useful e.g. in pnchisq() */ - return (x < 0) ? R_DT_0: R_DT_1; + return (x <= 0) ? R_DT_0: R_DT_1; /* <= assert pgamma(0,0) ==> 0 */ return pgamma_raw (x, alph, lower_tail, log_p); } /* From: terra@gnome.org (Morten Welinder) @@ -725,161 +718,3 @@ * MM: I've not (yet?) taken logcf(), but the other four */ - - -#else -/* R_USE_OLD_PGAMMA */ -/* - * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 1999-2000 The R Development Core Team - * Copyright (C) 2003-2004 The R Foundation - * based on AS 239 (C) 1988 Royal Statistical Society - * - * ................ - * - * NOTES - * - * This function is an adaptation of Algorithm 239 from the - * Applied Statistics Series. The algorithm is faster than - * those by W. Fullerton in the FNLIB library and also the - * TOMS 542 alorithm of W. Gautschi. It provides comparable - * accuracy to those algorithms and is considerably simpler. - * - * REFERENCES - * - * Algorithm AS 239, Incomplete Gamma Function - * Applied Statistics 37, 1988. - */ - -/* now would need this here: */ -double attribute_hidden pgamma_raw(x, alph, lower_tail, log_p) { - return pgamma(x, alph, 1, lower_tail, log_p); -} - -double pgamma(double x, double alph, double scale, int lower_tail, int log_p) -{ - const static double - xbig = 1.0e+8, - xlarge = 1.0e+37, - - /* normal approx. for alph > alphlimit */ - alphlimit = 1e5;/* was 1000. till R.1.8.x */ - - double pn1, pn2, pn3, pn4, pn5, pn6, arg, a, b, c, an, osum, sum; - long n; - int pearson; - - /* check that we have valid values for x and alph */ - -#ifdef IEEE_754 - if (ISNAN(x) || ISNAN(alph) || ISNAN(scale)) - return x + alph + scale; -#endif -#ifdef DEBUG_p - REprintf("pgamma(x=%4g, alph=%4g, scale=%4g): ",x,alph,scale); -#endif - if(alph <= 0. || scale <= 0.) - ML_ERR_return_NAN; - - x /= scale; -#ifdef DEBUG_p - REprintf("-> x=%4g; ",x); -#endif -#ifdef IEEE_754 - if (ISNAN(x)) /* eg. original x = scale = Inf */ - return x; -#endif - if (x <= 0.) - return R_DT_0; - -#define USE_PNORM \ - pn1 = sqrt(alph) * 3. * (pow(x/alph, 1./3.) + 1. / (9. * alph) - 1.); \ - return pnorm(pn1, 0., 1., lower_tail, log_p); - - if (alph > alphlimit) { /* use a normal approximation */ - USE_PNORM; - } - - if (x > xbig * alph) { - if (x > DBL_MAX * alph) - /* if x is extremely large __compared to alph__ then return 1 */ - return R_DT_1; - else { /* this only "helps" when log_p = TRUE */ - USE_PNORM; - } - } - - if (x <= 1. || x < alph) { - - pearson = 1;/* use pearson's series expansion. */ - - arg = alph * log(x) - x - lgammafn(alph + 1.); -#ifdef DEBUG_p - REprintf("Pearson arg=%g ", arg); -#endif - c = 1.; - sum = 1.; - a = alph; - do { - a += 1.; - c *= x / a; - sum += c; - } while (c > DBL_EPSILON * sum); - } - else { /* x >= max( 1, alph) */ - - pearson = 0;/* use a continued fraction expansion */ - - arg = alph * log(x) - x - lgammafn(alph); -#ifdef DEBUG_p - REprintf("Cont.Fract. arg=%g ", arg); -#endif - a = 1. - alph; - b = a + x + 1.; - pn1 = 1.; - pn2 = x; - pn3 = x + 1.; - pn4 = x * b; - sum = pn3 / pn4; - for (n = 1; ; n++) { - a += 1.;/* = n+1 -alph */ - b += 2.;/* = 2(n+1)-alph+x */ - an = a * n; - pn5 = b * pn3 - an * pn1; - pn6 = b * pn4 - an * pn2; - if (fabs(pn6) > 0.) { - osum = sum; - sum = pn5 / pn6; - if (fabs(osum - sum) <= DBL_EPSILON * fmin2(1., sum)) - break; - } - pn1 = pn3; - pn2 = pn4; - pn3 = pn5; - pn4 = pn6; - if (fabs(pn5) >= xlarge) { - /* re-scale the terms in continued fraction if they are large */ -#ifdef DEBUG_p - REprintf(" [r] "); -#endif - pn1 /= xlarge; - pn2 /= xlarge; - pn3 /= xlarge; - pn4 /= xlarge; - } - } - } - - arg += log(sum); - - lower_tail = (lower_tail == pearson); - - if (log_p && lower_tail) - return(arg); - /* else */ - /* sum = exp(arg); and return if(lower_tail) sum else 1-sum : */ - return (lower_tail) ? exp(arg) : (log_p ? R_Log1_Exp(arg) : -expm1(arg)); -} - -#endif -/* R_USE_OLD_PGAMMA */ diff -Nru jags-3.4.0/src/jrmath/pgeom.c jags-4.0.0/src/jrmath/pgeom.c --- jags-3.4.0/src/jrmath/pgeom.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/pgeom.c 2015-02-22 20:05:50.000000000 +0000 @@ -0,0 +1,50 @@ +/* + * Mathlib : A C Library of Special Functions + * Copyright (C) 1998 Ross Ihaka + * Copyright (C) 2000-2006 The R Core Team + * Copyright (C) 2004 The R Foundation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + * + * DESCRIPTION + * + * The distribution function of the geometric distribution. + */ + +#include "nmath.h" +#include "dpq.h" + +double pgeom(double x, double p, int lower_tail, int log_p) +{ +#ifdef IEEE_754 + if (ISNAN(x) || ISNAN(p)) + return x + p; +#endif + if(p <= 0 || p > 1) ML_ERR_return_NAN; + + if (x < 0.) return R_DT_0; + if (!R_FINITE(x)) return R_DT_1; + x = floor(x +1e-7); + + if(p == 1.) { /* we cannot assume IEEE */ + x = lower_tail ? 1: 0; + return log_p ? log(x) : x; + } + x = log1p(-p) * (x + 1); + if (log_p) + return R_DT_Clog(x); + else + return lower_tail ? -expm1(x) : exp(x); +} diff -Nru jags-3.4.0/src/jrmath/phyper.c jags-4.0.0/src/jrmath/phyper.c --- jags-3.4.0/src/jrmath/phyper.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/phyper.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 1999-2000 The R Development Core Team + * Copyright (C) 1999-2014 The R Core Team * Copyright (C) 2004 Morten Welinder * Copyright (C) 2004 The R Foundation * @@ -69,8 +69,9 @@ sum += term; x--; } - - return log_p ? log1p(sum) : 1 + sum; + + double ss = (double) sum; + return log_p ? log1p(ss) : 1 + ss; } @@ -90,9 +91,9 @@ #endif x = floor (x + 1e-7); - NR = R_D_forceint(NR); - NB = R_D_forceint(NB); - n = R_D_forceint(n); + NR = R_forceint(NR); + NB = R_forceint(NB); + n = R_forceint(n); if (NR < 0 || NB < 0 || !R_FINITE(NR + NB) || n < 0 || n > NR + NB) ML_ERR_return_NAN; diff -Nru jags-3.4.0/src/jrmath/plnorm.c jags-4.0.0/src/jrmath/plnorm.c --- jags-3.4.0/src/jrmath/plnorm.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/plnorm.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-8 The R Development Core Team + * Copyright (C) 2000-8 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -31,7 +31,7 @@ if (ISNAN(x) || ISNAN(meanlog) || ISNAN(sdlog)) return x + meanlog + sdlog; #endif - if (sdlog <= 0) ML_ERR_return_NAN; + if (sdlog < 0) ML_ERR_return_NAN; if (x > 0) return pnorm(log(x), meanlog, sdlog, lower_tail, log_p); diff -Nru jags-3.4.0/src/jrmath/plogis.c jags-4.0.0/src/jrmath/plogis.c --- jags-3.4.0/src/jrmath/plogis.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/plogis.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * R : A Computer Language for Statistical Data Analysis * Copyright (C) 1995, 1996 Robert Gentleman and Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,6 +20,18 @@ #include "nmath.h" #include "dpq.h" +/* Compute log(1 + exp(x)) without overflow (and fast for x > 18) + For the two cutoffs, consider + curve(log1p(exp(x)) - x, 33.1, 33.5, n=2^10) + curve(x+exp(-x) - log1p(exp(x)), 15, 25, n=2^11) +*/ +double log1pexp(double x) { + if(x <= 18.) return log1p(exp(x)); + if(x > 33.3) return x; + // else: 18.0 < x <= 33.3 : + return x + exp(-x); +} + double plogis(double x, double location, double scale, int lower_tail, int log_p) { @@ -33,7 +45,11 @@ if (ISNAN(x)) ML_ERR_return_NAN; R_P_bounds_Inf_01(x); - x = exp(lower_tail ? -x : x); - return (log_p ? -log1p(x) : 1 / (1 + x)); + if(log_p) { + // log(1 / (1 + exp( +- x ))) = -log(1 + exp( +- x)) + return -log1pexp(lower_tail ? -x : x); + } else { + return 1 / (1 + exp(lower_tail ? -x : x)); + } } diff -Nru jags-3.4.0/src/jrmath/pnbeta.c jags-4.0.0/src/jrmath/pnbeta.c --- jags-3.4.0/src/jrmath/pnbeta.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/pnbeta.c 2015-02-22 20:05:50.000000000 +0000 @@ -0,0 +1,122 @@ +/* + * Copyright (C) 2000-2013 The R Core Team + * + * Algorithm AS 226 Appl. Statist. (1987) Vol. 36, No. 2 + * by Russell V. Lenth + * Incorporates modification AS R84 from AS Vol. 39, pp311-2, 1990 + * and AS R95 from AS Vol. 44, pp551-2, 1995 + * by H. Frick and Min Long Lam. + * original (C) Royal Statistical Society 1987, 1990, 1995 + * + * Returns the cumulative probability of x for the non-central + * beta distribution with parameters a, b and non-centrality ncp. + * + * Auxiliary routines required: + * lgamma - log-gamma function + * pbeta - incomplete-beta function {nowadays: pbeta_raw() -> bratio()} + */ + +#include "nmath.h" +#include "dpq.h" + +LDOUBLE attribute_hidden +pnbeta_raw(double x, double o_x, double a, double b, double ncp) +{ + /* o_x == 1 - x but maybe more accurate */ + + /* change errmax and itrmax if desired; + * original (AS 226, R84) had (errmax; itrmax) = (1e-6; 100) */ + const static double errmax = 1.0e-9; + const int itrmax = 10000; /* 100 is not enough for pf(ncp=200) + see PR#11277 */ + + double a0, lbeta, c, errbd, x0, temp, tmp_c; + int ierr; + + LDOUBLE ans, ax, gx, q, sumq; + + if (ncp < 0. || a <= 0. || b <= 0.) ML_ERR_return_NAN; + + if(x < 0. || o_x > 1. || (x == 0. && o_x == 1.)) return 0.; + if(x > 1. || o_x < 0. || (x == 1. && o_x == 0.)) return 1.; + + c = ncp / 2.; + + /* initialize the series */ + + x0 = floor(fmax2(c - 7. * sqrt(c), 0.)); + a0 = a + x0; + lbeta = lgammafn(a0) + lgammafn(b) - lgammafn(a0 + b); + /* temp = pbeta_raw(x, a0, b, TRUE, FALSE), but using (x, o_x): */ + bratio(a0, b, x, o_x, &temp, &tmp_c, &ierr, FALSE); + + gx = exp(a0 * log(x) + b * (x < .5 ? log1p(-x) : log(o_x)) + - lbeta - log(a0)); + if (a0 > a) + q = exp(-c + x0 * log(c) - lgammafn(x0 + 1.)); + else + q = exp(-c); + + sumq = 1. - q; + ans = ax = q * temp; + + /* recurse over subsequent terms until convergence is achieved */ + double j = floor(x0); // x0 could be billions, and is in package EnvStats + do { + j++; + temp -= (double) gx; + gx *= x * (a + b + j - 1.) / (a + j); + q *= c / j; + sumq -= q; + ax = temp * q; + ans += ax; + errbd = (double)((temp - gx) * sumq); + } + while (errbd > errmax && j < itrmax + x0); + + if (errbd > errmax) + ML_ERROR(ME_PRECISION, "pnbeta"); + if (j >= itrmax + x0) + ML_ERROR(ME_NOCONV, "pnbeta"); + + return ans; +} + +double attribute_hidden +pnbeta2(double x, double o_x, double a, double b, double ncp, + /* o_x == 1 - x but maybe more accurate */ + int lower_tail, int log_p) +{ + LDOUBLE ans = pnbeta_raw(x, o_x, a,b, ncp); + + + /* return R_DT_val(ans), but we want to warn about cancellation here */ + if (lower_tail) +#ifdef HAVE_LONG_DOUBLE + return (double) (log_p ? logl(ans) : ans); +#else + return log_p ? log(ans) : ans; +#endif + else { + if (ans > 1. - 1e-10) ML_ERROR(ME_PRECISION, "pnbeta"); + if (ans > 1.0) ans = 1.0; /* Precaution */ +#if defined(HAVE_LONG_DOUBLE) && defined(HAVE_LOG1PL) + return (double) (log_p ? log1pl(-ans) : (1. - ans)); +#else + /* include standalone case */ + return (double) (log_p ? log1p((double)-ans) : (1. - ans)); +#endif + } +} + +double pnbeta(double x, double a, double b, double ncp, + int lower_tail, int log_p) +{ +#ifdef IEEE_754 + if (ISNAN(x) || ISNAN(a) || ISNAN(b) || ISNAN(ncp)) + return x + a + b + ncp; +#endif + + R_P_bounds_01(x, 0., 1.); + return pnbeta2(x, 1-x, a, b, ncp, lower_tail, log_p); +} diff -Nru jags-3.4.0/src/jrmath/pnbinom.c jags-4.0.0/src/jrmath/pnbinom.c --- jags-3.4.0/src/jrmath/pnbinom.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/pnbinom.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-8 The R Development Core Team + * Copyright (C) 2000-2013 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -36,7 +36,11 @@ return x + size + prob; if(!R_FINITE(size) || !R_FINITE(prob)) ML_ERR_return_NAN; #endif - if (size <= 0 || prob <= 0 || prob > 1) ML_ERR_return_NAN; + if (size < 0 || prob <= 0 || prob > 1) ML_ERR_return_NAN; + + /* limiting case: point mass at zero */ + if (size == 0) + return (x >= 0) ? R_DT_1 : R_DT_0; if (x < 0) return R_DT_0; if (!R_FINITE(x)) return R_DT_1; @@ -51,7 +55,11 @@ return x + size + mu; if(!R_FINITE(size) || !R_FINITE(mu)) ML_ERR_return_NAN; #endif - if (size <= 0 || mu < 0) ML_ERR_return_NAN; + if (size < 0 || mu < 0) ML_ERR_return_NAN; + + /* limiting case: point mass at zero */ + if (size == 0) + return (x >= 0) ? R_DT_1 : R_DT_0; if (x < 0) return R_DT_0; if (!R_FINITE(x)) return R_DT_1; diff -Nru jags-3.4.0/src/jrmath/pnchisq.c jags-4.0.0/src/jrmath/pnchisq.c --- jags-3.4.0/src/jrmath/pnchisq.c 2013-08-22 15:44:58.000000000 +0000 +++ jags-4.0.0/src/jrmath/pnchisq.c 2015-02-24 21:54:42.000000000 +0000 @@ -11,21 +11,37 @@ * distribution function. Appl.Statist., 41, 478-482. * Other parts - * Copyright (C) 2000-2009 The R Development Core Team - * Copyright (C) 2003-2009 The R Foundation + * Copyright (C) 2000-2014 The R Core Team + * Copyright (C) 2003-2014 The R Foundation */ + + #include "nmath.h" #include "dpq.h" /*----------- DEBUGGING ------------- * * make CFLAGS='-DDEBUG_pnch ....' +(cd ~/R/D/r-devel/debian-64-inst/src/nmath; gcc -I. -I../../src/include -I../../../R/src/include -I/usr/local/include -DHAVE_CONFIG_H -DDEBUG_pnch -fopenmp -g -pedantic -Wall --std=gnu99 -DDEBUG_q -Wcast-align -Wclobbered -c ../../../R/src/nmath/pnchisq.c -o pnchisq.o ) * -- Feb.6, 2000 (R pre0.99); M.Maechler: still have * bad precision & non-convergence in some cases (x ~= f, both LARGE) */ +#ifdef HAVE_LONG_DOUBLE +# define EXP expl +# define FABS fabsl +# define LOG logl +#else +# define EXP exp +# define FABS fabs +# define LOG log +#endif + +static const double _dbl_min_exp = M_LN2 * DBL_MIN_EXP; +/*= -708.3964 for IEEE double precision */ + double pnchisq(double x, double df, double ncp, int lower_tail, int log_p) { @@ -39,24 +55,33 @@ if (df < 0. || ncp < 0.) ML_ERR_return_NAN; - ans = pnchisq_raw(x, df, ncp, 1e-12, 8*DBL_EPSILON, 1000000, lower_tail); + ans = pnchisq_raw(x, df, ncp, 1e-12, 8*DBL_EPSILON, 1000000, lower_tail, log_p); if(ncp >= 80) { if(lower_tail) { - /* if(ans >= 1-1e-10) have no idea how close to 1 the true value is, - * but ML_ERROR(ME_PRECISION, "pnchisq") seems too harsh */ - ans = fmin2(ans, 1.0); /* e.g., pchisq(555, 1.01, ncp = 80) */ - } - else { /* !lower_tail */ - if(ans < 1e-10) ML_ERROR(ME_PRECISION, "pnchisq"); - ans = fmax2(ans, 0.0); /* Precaution PR#7099 */ + ans = fmin2(ans, R_D__1); /* e.g., pchisq(555, 1.01, ncp = 80) */ + } else { /* !lower_tail */ + /* since we computed the other tail cancellation is likely */ + if(ans < (log_p ? (-10. * M_LN10) : 1e-10)) ML_ERROR(ME_PRECISION, "pnchisq"); + if(!log_p) ans = fmax2(ans, 0.0); /* Precaution PR#7099 */ } } - return log_p ? log(ans) : ans; + if (!log_p || ans < -1e-8) + return ans; + else { // log_p && ans > -1e-8 + // prob. = exp(ans) is near one: we can do better using the other tail +#ifdef DEBUG_pnch + JREprintf(" pnchisq_raw(*, log_p): ans=%g => 2nd call, other tail\n", ans); +#endif + // FIXME: (sum,sum2) will be the same (=> return them as well and reuse here ?) + ans = pnchisq_raw(x, df, ncp, 1e-12, 8*DBL_EPSILON, 1000000, !lower_tail, FALSE); + return log1p(-ans); + } } double attribute_hidden -pnchisq_raw(double x, double f, double theta, - double errmax, double reltol, int itrmax, Rboolean lower_tail) +pnchisq_raw(double x, double f, double theta /* = ncp */, + double errmax, double reltol, int itrmax, + Rboolean lower_tail, Rboolean log_p) { double lam, x2, f2, term, bound, f_x_2n, f_2n; double l_lam = -1., l_x = -1.; /* initialized for -Wall */ @@ -64,9 +89,6 @@ Rboolean lamSml, tSml, is_r, is_b, is_it; LDOUBLE ans, u, v, t, lt, lu =-1; - static const double _dbl_min_exp = M_LN2 * DBL_MIN_EXP; - /*= -708.3964 for IEEE double precision */ - if (x <= 0.) { if(x == 0. && f == 0.) return lower_tail ? exp(-0.5*theta) : -expm1(-0.5*theta); @@ -81,23 +103,60 @@ #endif if(theta < 80) { /* use 110 for Inf, as ppois(110, 80/2, lower.tail=FALSE) is 2e-20 */ - LDOUBLE sum = 0, sum2 = 0, lambda = 0.5*theta, pr = exp(-lambda); - double ans; + LDOUBLE sum, sum2, lambda = 0.5 * theta, pr, ans; int i; - /* we need to renormalize here: the result could be very close to 1 */ - for(i = 0; i < 110; pr *= lambda/++i) { - sum2 += pr; - /* could break once sum2 is essentially 1 */ - sum += pr * pchisq(x, f+2*i, lower_tail, FALSE); + // Have pgamma(x,s) < x^s / Gamma(s+1) (< and ~= for small x) + // ==> pchisq(x, f) = pgamma(x, f/2, 2) = pgamma(x/2, f/2) + // < (x/2)^(f/2) / Gamma(f/2+1) < eps + // <==> f/2 * log(x/2) - log(Gamma(f/2+1)) < log(eps) ( ~= -708.3964 ) + // <==> log(x/2) < 2/f*(log(Gamma(f/2+1)) + log(eps)) + // <==> log(x) < log(2) + 2/f*(log(Gamma(f/2+1)) + log(eps)) + if(lower_tail && f > 0. && + log(x) < M_LN2 + 2/f*(lgamma(f/2. + 1) + _dbl_min_exp)) { + // all pchisq(x, f+2*i, lower_tail, FALSE), i=0,...,110 would underflow to 0. + // ==> work in log scale + sum = sum2 = ML_NEGINF; + pr = -lambda; + /* we need to renormalize here: the result could be very close to 1 */ + for(i = 0; i < 110; pr += LOG(lambda) - LOG(++i)) { + sum2 = logspace_add(sum2, pr); + sum = logspace_add(sum, pr + pchisq(x, f+2*i, lower_tail, TRUE)); + if (sum2 >= -1e-15) /*<=> EXP(sum2) >= 1-1e-15 */ break; + } + ans = sum - sum2; +#ifdef DEBUG_pnch + JREprintf("pnchisq(x=%g, f=%g, th.=%g); th. < 80, logspace: i=%d, ans=(sum=%g)-(sum2=%g)\n", + x,f,theta, i, (double)sum, (double)sum2); +#endif + return (double) (log_p ? ans : EXP(ans)); } - ans = sum/sum2; - return ans; - } - + else { + sum = sum2 = 0; + pr = EXP(-lambda); // does this need a feature test? + /* we need to renormalize here: the result could be very close to 1 */ + for(i = 0; i < 110; pr *= lambda/++i) { + // pr == exp(-lambda) lambda^i / i! == dpois(i, lambda) + sum2 += pr; + // pchisq(*, i, *) is strictly decreasing to 0 for lower_tail=TRUE + // and strictly increasing to 1 for lower_tail=FALSE + sum += pr * pchisq(x, f+2*i, lower_tail, FALSE); + if (sum2 >= 1-1e-15) break; + } + ans = sum/sum2; +#ifdef DEBUG_pnch + JREprintf("pnchisq(x=%g, f=%g, theta=%g); theta < 80: i=%d, sum=%g, sum2=%g\n", + x,f,theta, i, (double)sum, (double)sum2); +#endif + return (double) (log_p ? LOG(ans) : ans); + } + } // if(theta < 80) + // else: theta == ncp >= 80 -------------------------------------------- #ifdef DEBUG_pnch - REprintf("pnchisq(x=%g, f=%g, theta=%g): ",x,f,theta); + JREprintf("pnchisq(x=%g, f=%g, theta=%g >= 80): ",x,f,theta); #endif + // Series expansion ------- FIXME: log_p=TRUE, lower_tail=FALSE only applied at end + lam = .5 * theta; lamSml = (-lam < _dbl_min_exp); if(lamSml) { @@ -118,17 +177,17 @@ f_x_2n = f - x; #ifdef DEBUG_pnch - REprintf("-- v=exp(-th/2)=%g, x/2= %g, f/2= %g\n",v,x2,f2); + JREprintf("-- v=exp(-th/2)=%g, x/2= %g, f/2= %g\n",v,x2,f2); #endif if(f2 * DBL_EPSILON > 0.125 && /* very large f and x ~= f: probably needs */ - fabs(t = x2 - f2) < /* another algorithm anyway */ + FABS(t = x2 - f2) < /* another algorithm anyway */ sqrt(DBL_EPSILON) * f2) { /* evade cancellation error */ /* t = exp((1 - t)*(2 - t/(f2 + 1))) / sqrt(2*M_PI*(f2 + 1));*/ - lt = (1 - t)*(2 - t/(f2 + 1)) - 0.5 * log(2*M_PI*(f2 + 1)); + lt = (1 - t)*(2 - t/(f2 + 1)) - M_LN_SQRT_2PI - 0.5 * log(f2 + 1); #ifdef DEBUG_pnch - REprintf(" (case I) ==> "); + JREprintf(" (case I) ==> "); #endif } else { @@ -136,29 +195,32 @@ lt = f2*log(x2) -x2 - lgammafn(f2 + 1); } #ifdef DEBUG_pnch - REprintf(" lt= %g", lt); + JREprintf(" lt= %g", lt); #endif tSml = (lt < _dbl_min_exp); if(tSml) { +#ifdef DEBUG_pnch + JREprintf(" is very small\n"); +#endif if (x > f + theta + 5* sqrt( 2*(f + 2*theta))) { /* x > E[X] + 5* sigma(X) */ - return lower_tail ? 1. : 0.; /* FIXME: We could be more accurate than 0. */ + return R_DT_1; /* FIXME: could be more accurate than 0. */ } /* else */ l_x = log(x); - ans = term = t = 0.; + ans = term = 0.; t = 0; } else { - t = exp(lt); + t = EXP(lt); #ifdef DEBUG_pnch - REprintf(", t=exp(lt)= %g\n", t); + JREprintf(", t=exp(lt)= %g\n", t); #endif - ans = term = v * t; + ans = term = (double) (v * t); } for (n = 1, f_2n = f + 2., f_x_2n += 2.; ; n++, f_2n += 2, f_x_2n += 2) { -#ifdef DEBUG_pnch - REprintf("\n _OL_: n=%d",n); +#ifdef DEBUG_pnch_n + JREprintf("\n _OL_: n=%d",n); #endif #ifndef MATHLIB_STANDALONE if(n % 1000) R_CheckUserInterrupt(); @@ -168,9 +230,9 @@ if (f_x_2n > 0) { /* find the error bound and check for convergence */ - bound = t * x / f_x_2n; -#ifdef DEBUG_pnch - REprintf("\n L10: n=%d; term= %g; bound= %g",n,term,bound); + bound = (double) (t * x / f_x_2n); +#ifdef DEBUG_pnch_n + JREprintf("\n L10: n=%d; term= %g; bound= %g",n,term,bound); #endif is_r = is_it = FALSE; /* convergence only if BOTH absolute and relative error < 'bnd' */ @@ -178,7 +240,7 @@ (is_r = (term <= reltol * ans))) || (is_it = (n > itrmax))) { #ifdef DEBUG_pnch - REprintf("BREAK n=%d %s; bound= %g %s, rel.err= %g %s\n", + JREprintf("BREAK n=%d %s; bound= %g %s, rel.err= %g %s\n", n, (is_it ? "> itrmax" : ""), bound, (is_b ? "<= errmax" : ""), term/ans, (is_r ? "<= reltol" : "")); @@ -195,11 +257,11 @@ lu += l_lam - log(n); /* u = u* lam / n */ if(lu >= _dbl_min_exp) { /* no underflow anymore ==> change regime */ -#ifdef DEBUG_pnch - REprintf(" n=%d; nomore underflow in u = exp(lu) ==> change\n", +#ifdef DEBUG_pnch_n + JREprintf(" n=%d; nomore underflow in u = exp(lu) ==> change\n", n); #endif - v = u = exp(lu); /* the first non-0 'u' */ + v = u = EXP(lu); /* the first non-0 'u' */ lamSml = FALSE; } } else { @@ -211,17 +273,16 @@ if(lt >= _dbl_min_exp) { /* no underflow anymore ==> change regime */ #ifdef DEBUG_pnch - REprintf(" n=%d; nomore underflow in t = exp(lt) ==> change\n", - n); + JREprintf(" n=%d; nomore underflow in t = exp(lt) ==> change\n", n); #endif - t = exp(lt); /* the first non-0 't' */ + t = EXP(lt); /* the first non-0 't' */ tSml = FALSE; } } else { t *= x / f_2n; } if(!lamSml && !tSml) { - term = v * t; + term = (double) (v * t); ans += term; } @@ -232,7 +293,7 @@ x, itrmax); } #ifdef DEBUG_pnch - REprintf("\n == L_End: n=%d; term= %g; bound=%g\n",n,term,bound); + JREprintf("\n == L_End: n=%d; term= %g; bound=%g\n",n,term,bound); #endif - return lower_tail ? ans : 1 - ans; + return (double) R_DT_val(ans); } diff -Nru jags-3.4.0/src/jrmath/pnf.c jags-4.0.0/src/jrmath/pnf.c --- jags-3.4.0/src/jrmath/pnf.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/pnf.c 2015-02-22 20:05:50.000000000 +0000 @@ -0,0 +1,49 @@ +/* + * Mathlib : A C Library of Special Functions + * Copyright (C) 1998 Ross Ihaka + * Copyright (C) 2000-8 The R Core Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + * + * DESCRIPTION + * + * The distribution function of the non-central F distribution. + */ + +#include "nmath.h" +#include "dpq.h" + +double pnf(double x, double df1, double df2, double ncp, + int lower_tail, int log_p) +{ + double y; +#ifdef IEEE_754 + if (ISNAN(x) || ISNAN(df1) || ISNAN(df2) || ISNAN(ncp)) + return x + df2 + df1 + ncp; +#endif + if (df1 <= 0. || df2 <= 0. || ncp < 0) ML_ERR_return_NAN; + if (!R_FINITE(ncp)) ML_ERR_return_NAN; + if (!R_FINITE(df1) && !R_FINITE(df2)) /* both +Inf */ + ML_ERR_return_NAN; + + R_P_bounds_01(x, 0., ML_POSINF); + + if (df2 > 1e8) /* avoid problems with +Inf and loss of accuracy */ + return pnchisq(x * df1, df1, ncp, lower_tail, log_p); + + y = (df1 / df2) * x; + return pnbeta2(y/(1. + y), 1./(1. + y), df1 / 2., df2 / 2., + ncp, lower_tail, log_p); +} diff -Nru jags-3.4.0/src/jrmath/pnorm.c jags-4.0.0/src/jrmath/pnorm.c --- jags-3.4.0/src/jrmath/pnorm.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/pnorm.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-2002 The R Development Core Team + * Copyright (C) 2000-2013 The R Core Team * Copyright (C) 2003 The R Foundation * * This program is free software; you can redistribute it and/or modify @@ -224,7 +224,7 @@ * * Note that we do want symmetry(0), lower/upper -> hence use y */ - else if(log_p + else if((log_p && y < 1e170) /* avoid underflow below */ /* ^^^^^ MM FIXME: can speedup for log_p and much larger |x| ! * Then, make use of Abramowitz & Stegun, 26.2.13, something like @@ -239,13 +239,15 @@ swap_tail; + [Yes, but xsq might be infinite.] + */ || (lower && -37.5193 < x && x < 8.2924) || (upper && -8.2924 < x && x < 37.5193) ) { /* Evaluate pnorm for x in (-37.5, -5.657) union (5.657, 37.5) */ - xsq = 1.0 / (x * x); + xsq = 1.0 / (x * x); /* (1./x)*(1./x) might be better */ xnum = p[5] * xsq; xden = xsq; for (i = 0; i < 4; ++i) { @@ -257,10 +259,9 @@ do_del(x); swap_tail; - } - else { /* no log_p , large x such that probs are 0 or 1 */ - if(x > 0) { *cum = 1.; *ccum = 0.; } - else { *cum = 0.; *ccum = 1.; } + } else { /* large x such that probs are 0 or 1 */ + if(x > 0) { *cum = R_D__1; *ccum = R_D__0; } + else { *cum = R_D__0; *ccum = R_D__1; } } diff -Nru jags-3.4.0/src/jrmath/pnt.c jags-4.0.0/src/jrmath/pnt.c --- jags-3.4.0/src/jrmath/pnt.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/pnt.c 2015-02-22 20:05:50.000000000 +0000 @@ -0,0 +1,176 @@ +/* + * Mathlib : A C Library of Special Functions + * Copyright (C) 1998-2012 The R Core Team + * based on AS243 (C) 1989 Royal Statistical Society + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + */ + +/* Algorithm AS 243 Lenth,R.V. (1989). Appl. Statist., Vol.38, 185-189. + * ---------------- + * Cumulative probability at t of the non-central t-distribution + * with df degrees of freedom (may be fractional) and non-centrality + * parameter delta. + * + * NOTE + * + * Requires the following auxiliary routines: + * + * lgammafn(x) - log gamma function + * pbeta(x, a, b) - incomplete beta function + * pnorm(x) - normal distribution function + * + * CONSTANTS + * + * M_SQRT_2dPI = 1/ {gamma(1.5) * sqrt(2)} = sqrt(2 / pi) + * M_LN_SQRT_PI = ln(sqrt(pi)) = ln(pi)/2 + */ + +#include "nmath.h" +#include "dpq.h" + +/*----------- DEBUGGING ------------- + * + * make CFLAGS='-DDEBUG_pnt -g' + + * -- Feb.3, 1999; M.Maechler: + - For 't > ncp > 20' (or so) the result is completely WRONG! + */ + +double pnt(double t, double df, double ncp, int lower_tail, int log_p) +{ + double albeta, a, b, del, errbd, lambda, rxb, tt, x; + LDOUBLE geven, godd, p, q, s, tnc, xeven, xodd; + int it, negdel; + + /* note - itrmax and errmax may be changed to suit one's needs. */ + + const int itrmax = 1000; + const static double errmax = 1.e-12; + + if (df <= 0.0) ML_ERR_return_NAN; + if(ncp == 0.0) return pt(t, df, lower_tail, log_p); + + if(!R_FINITE(t)) + return (t < 0) ? R_DT_0 : R_DT_1; + if (t >= 0.) { + negdel = FALSE; tt = t; del = ncp; + } + else { + /* We deal quickly with left tail if extreme, + since pt(q, df, ncp) <= pt(0, df, ncp) = \Phi(-ncp) */ + if (ncp > 40 && (!log_p || !lower_tail)) return R_DT_0; + negdel = TRUE; tt = -t; del = -ncp; + } + + if (df > 4e5 || del*del > 2*M_LN2*(-(DBL_MIN_EXP))) { + /*-- 2nd part: if del > 37.62, then p=0 below + FIXME: test should depend on `df', `tt' AND `del' ! */ + /* Approx. from Abramowitz & Stegun 26.7.10 (p.949) */ + s = 1./(4.*df); + + return pnorm((double)(tt*(1. - s)), del, + sqrt((double) (1. + tt*tt*2.*s)), + lower_tail != negdel, log_p); + } + + /* initialize twin series */ + /* Guenther, J. (1978). Statist. Computn. Simuln. vol.6, 199. */ + + x = t * t; + rxb = df/(x + df);/* := (1 - x) {x below} -- but more accurately */ + x = x / (x + df);/* in [0,1) */ +#ifdef DEBUG_pnt + REprintf("pnt(t=%7g, df=%7g, ncp=%7g) ==> x= %10g:",t,df,ncp, x); +#endif + if (x > 0.) {/* <==> t != 0 */ + lambda = del * del; + p = .5 * exp(-.5 * lambda); +#ifdef DEBUG_pnt + REprintf("\t p=%10Lg\n",p); +#endif + if(p == 0.) { /* underflow! */ + + /*========== really use an other algorithm for this case !!! */ + ML_ERROR(ME_UNDERFLOW, "pnt"); + ML_ERROR(ME_RANGE, "pnt"); /* |ncp| too large */ + return R_DT_0; + } +#ifdef DEBUG_pnt + REprintf("it 1e5*(godd, geven)| p q s" + /* 1.3 1..4..7.9 1..4..7.9|1..4..7.901 1..4..7.901 1..4..7.901 */ + " pnt(*) errbd\n"); + /* 1..4..7..0..34 1..4..7.9*/ +#endif + q = M_SQRT_2dPI * p * del; + s = .5 - p; + /* s = 0.5 - p = 0.5*(1 - exp(-.5 L)) = -0.5*expm1(-.5 L)) */ + if(s < 1e-7) + s = -0.5 * expm1(-0.5 * lambda); + a = .5; + b = .5 * df; + /* rxb = (1 - x) ^ b [ ~= 1 - b*x for tiny x --> see 'xeven' below] + * where '(1 - x)' =: rxb {accurately!} above */ + rxb = pow(rxb, b); + albeta = M_LN_SQRT_PI + lgammafn(b) - lgammafn(.5 + b); + xodd = pbeta(x, a, b, /*lower*/TRUE, /*log_p*/FALSE); + godd = 2. * rxb * exp(a * log(x) - albeta); + tnc = b * x; + xeven = (tnc < DBL_EPSILON) ? tnc : 1. - rxb; + geven = tnc * rxb; + tnc = p * xodd + q * xeven; + + /* repeat until convergence or iteration limit */ + for(it = 1; it <= itrmax; it++) { + a += 1.; + xodd -= godd; + xeven -= geven; + godd *= x * (a + b - 1.) / a; + geven *= x * (a + b - .5) / (a + .5); + p *= lambda / (2 * it); + q *= lambda / (2 * it + 1); + tnc += p * xodd + q * xeven; + s -= p; + /* R 2.4.0 added test for rounding error here. */ + if(s < -1.e-10) { /* happens e.g. for (t,df,ncp)=(40,10,38.5), after 799 it.*/ + ML_ERROR(ME_PRECISION, "pnt"); +#ifdef DEBUG_pnt + REprintf("s = %#14.7Lg < 0 !!! ---> non-convergence!!\n", s); +#endif + goto finis; + } + if(s <= 0 && it > 1) goto finis; + errbd = (double)(2. * s * (xodd - godd)); +#ifdef DEBUG_pnt + REprintf("%3d %#9.4g %#9.4g|%#11.4Lg %#11.4Lg %#11.4Lg %#14.10Lg %#9.4g\n", + it, 1e5*(double)godd, 1e5*(double)geven, p, q, s, tnc, errbd); +#endif + if(fabs(errbd) < errmax) goto finis;/*convergence*/ + } + /* non-convergence:*/ + ML_ERROR(ME_NOCONV, "pnt"); + } + else { /* x = t = 0 */ + tnc = 0.; + } + finis: + tnc += pnorm(- del, 0., 1., /*lower*/TRUE, /*log_p*/FALSE); + + lower_tail = lower_tail != negdel; /* xor */ + if(tnc > 1 - 1e-10 && lower_tail) + ML_ERROR(ME_PRECISION, "pnt{final}"); + + return R_DT_val(fmin2((double)tnc, 1.) /* Precaution */); +} diff -Nru jags-3.4.0/src/jrmath/polygamma.c jags-4.0.0/src/jrmath/polygamma.c --- jags-3.4.0/src/jrmath/polygamma.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/polygamma.c 2015-02-24 21:27:53.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-2007 the R Development Core Team + * Copyright (C) 2000-2014 The R Core Team * Copyright (C) 2004-2009 The R Foundation * * This program is free software; you can redistribute it and/or modify @@ -145,7 +145,7 @@ #define n_max (100) -/* only used for kode = 1, m = 1, n in {0,1,2,3} : */ +/* From R, currently only used for kode = 1, m = 1, n in {0,1,2,3} : */ void dpsifn(double x, int n, int kode, int m, double *ans, int *nz, int *ierr) { const static double bvalues[] = { /* Bernoulli Numbers */ @@ -189,7 +189,7 @@ /* use Abramowitz & Stegun 6.4.7 "Reflection Formula" * psi(k, x) = (-1)^k psi(k, 1-x) - pi^{n+1} (d/dx)^n cot(x) */ - if (x == (long)x) { + if (x == round(x)) { /* non-positive integer : +Inf or NaN depends on n */ for(j=0; j < m; j++) /* k = j + n : */ ans[j] = ((j+n) % 2) ? ML_POSINF : ML_NAN; @@ -210,11 +210,11 @@ if (n == 0) tt = cos(x)/sin(x); else if (n == 1) - tt = -1/pow(sin(x),2); + tt = -1/JR_pow_di(sin(x), 2); else if (n == 2) - tt = 2*cos(x)/pow(sin(x),3); + tt = 2*cos(x)/JR_pow_di(sin(x), 3); else if (n == 3) - tt = -2*(2*pow(cos(x),2) + 1)/pow(sin(x),4); + tt = -2*(2*JR_pow_di(cos(x), 2) + 1.)/JR_pow_di(sin(x), 4); else /* can not happen! */ tt = ML_NAN; /* end cheat */ @@ -274,7 +274,7 @@ } else { if (x < wdtol) { - ans[0] = pow(x, -n-1.0); + ans[0] = JR_pow_di(x, -n-1); if (mm != 1) { for(k = 1; k < mm ; k++) ans[k] = ans[k-1] / x; @@ -493,7 +493,7 @@ if(ISNAN(x)) return x; - deriv = floor(deriv + 0.5); + deriv = R_forceint(deriv); n = (int)deriv; if(n > n_max) { MATHLIB_WARNING2(_("deriv = %d > %d (= n_max)\n"), n, n_max); @@ -501,7 +501,7 @@ } dpsifn(x, n, 1, 1, &ans, &nz, &ierr); ML_TREAT_psigam(ierr); - /* ans == A := (-1)^(n+1) * gamma(n+1) * psi(n, x) */ + /* Now, ans == A := (-1)^(n+1) / gamma(n+1) * psi(n, x) */ ans = -ans; /* = (-1)^(0+1) * gamma(0+1) * A */ for(k = 1; k <= n; k++) ans *= (-k);/* = (-1)^(k+1) * gamma(k+1) * A */ diff -Nru jags-3.4.0/src/jrmath/ppois.c jags-4.0.0/src/jrmath/ppois.c --- jags-3.4.0/src/jrmath/ppois.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/ppois.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -Nru jags-3.4.0/src/jrmath/pt.c jags-4.0.0/src/jrmath/pt.c --- jags-3.4.0/src/jrmath/pt.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/pt.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * R : A Computer Language for Statistical Data Analysis * Copyright (C) 1995, 1996 Robert Gentleman and Ross Ihaka - * Copyright (C) 2000-2007 The R Development Core Team + * Copyright (C) 2000-2007 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -Nru jags-3.4.0/src/jrmath/punif.c jags-4.0.0/src/jrmath/punif.c --- jags-3.4.0/src/jrmath/punif.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/punif.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-2006 The R Development Core Team + * Copyright (C) 2000-2006 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -Nru jags-3.4.0/src/jrmath/pweibull.c jags-4.0.0/src/jrmath/pweibull.c --- jags-3.4.0/src/jrmath/pweibull.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/pweibull.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-2002 The R Development Core Team + * Copyright (C) 2000-2002 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -39,8 +39,7 @@ if (lower_tail) return (log_p /* log(1 - exp(x)) for x < 0 : */ - ? (x > -M_LN2 ? log(-expm1(x)) : log1p(-exp(x))) - : -expm1(x)); + ? R_Log1_Exp(x) : -expm1(x)); /* else: !lower_tail */ return R_D_exp(x); } diff -Nru jags-3.4.0/src/jrmath/qbeta.c jags-4.0.0/src/jrmath/qbeta.c --- jags-3.4.0/src/jrmath/qbeta.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/qbeta.c 2015-02-24 21:54:07.000000000 +0000 @@ -1,7 +1,7 @@ /* * R : A Computer Language for Statistical Data Analysis * Copyright (C) 1995, 1996 Robert Gentleman and Ross Ihaka - * Copyright (C) 1998--2007 The R Development Core Team + * Copyright (C) 1998--2015 The R Core Team * based on code (C) 1979 and later Royal Statistical Society * * This program is free software; you can redistribute it and/or modify @@ -31,6 +31,11 @@ #include "nmath.h" #include "dpq.h" +#ifdef DEBUG_qbeta +/* for JREprintf */ +# include +#endif + /* set the exponent of accu to -2r-2 for r digits of accuracy */ /*---- NEW ---- -- still fails for p = 1e11, q=.5*/ @@ -50,7 +55,10 @@ double qbeta(double alpha, double p, double q, int lower_tail, int log_p) { int swap_tail, i_pb, i_inn; - double a, adj, logbeta, g, h, pp, p_, prev, qq, r, s, t, tx, w, y, yprev; +#ifdef DEBUG_qbeta + Rboolean warned = FALSE; +#endif + double a, la, adj, logbeta, g, h, pp, p_, prev, qq, r, s, t, tx, w, y, wprev; double acu; volatile double xinbta; @@ -65,6 +73,30 @@ R_Q_P01_boundaries(alpha, 0, 1); p_ = R_DT_qIv(alpha);/* lower_tail prob (in any case) */ + // Conceptually, 0 < p_ < 1 (but can be 0 or 1 because of cancellation!) + + // p==0, q==0, p = Inf, q = Inf <==> treat as one- or two-point mass + if(p == 0 || q == 0 || !R_FINITE(p) || !R_FINITE(q)) { + // We know 0 < p_ < 1 : pbeta() is constant and trivial in {0, 1/2, 1} +#ifdef DEBUG_qbeta + JREprintf( + "qbeta(%g, %g, %g, lower_t=%d, log_p=%d): (p,q)-boundary: trivial\n", + alpha, p,q, lower_tail, log_p); +#endif + if(p == 0 && q == 0) { // point mass 1/2 at each of {0,1} : + if(alpha < R_D_half) return 0.; + if(alpha > R_D_half) return 1.; + // else: alpha == "1/2" + return 0.5; + } else if (p == 0 || p/q == 0) { // point mass 1 at 0 - "flipped around" + return 0.; + } else if (q == 0 || q/p == 0) { // point mass 1 at 0 - "flipped around" + return 1; + } + // else: p = q = Inf : point mass 1 at 1/2 + return 0.5; + } + if(log_p && (p_ == 0. || p_ == 1.)) return p_; /* better than NaN or infinite loop; @@ -76,31 +108,53 @@ /* change tail if necessary; afterwards 0 < a <= 1/2 */ if (p_ <= 0.5) { a = p_; pp = p; qq = q; swap_tail = 0; + la = lower_tail ? R_D_log(alpha) : R_D_LExp(alpha); } else { /* change tail, swap p <-> q :*/ - a = (!lower_tail && !log_p)? alpha : 1 - p_; + a = R_DT_CIv(alpha); // = 1 - p_ < 1/2 + /* la := log(a), but without numerical cancellation: */ + la = lower_tail ? R_D_LExp(alpha) : R_D_log(alpha); pp = q; qq = p; swap_tail = 1; } +#ifdef DEBUG_qbeta + JREprintf("qbeta(%g, %g, %g, lower_t=%d, log_p=%d):%s\n" + " swap_tail=%d, la=%g: ", + alpha, p,q, lower_tail, log_p, + (log_p && (p_ == 0. || p_ == 1.)) ? (p_==0.?" p_=0":" p_=1") : "", + swap_tail, la); +#endif /* calculate the initial approximation */ /* y := {fast approximation of} qnorm(1 - a) :*/ - r = sqrt(-2 * log(a)); + r = sqrt(-2 * la); y = r - (const1 + const2 * r) / (1. + (const3 + const4 * r) * r); - if (pp > 1 && qq > 1) { + if (pp > 1 && qq > 1) { // use Carter(1947), see AS 109, remark '5.' r = (y * y - 3.) / 6.; s = 1. / (pp + pp - 1.); t = 1. / (qq + qq - 1.); h = 2. / (s + t); w = y * sqrt(h + r) / h - (t - s) * (r + 5. / 6. - 2. / (3. * h)); +#ifdef DEBUG_qbeta + JREprintf("p,q > 1 => w=%g", w); +#endif xinbta = pp / (pp + qq * exp(w + w)); } else { r = qq + qq; t = 1. / (9. * qq); - t = r * pow(1. - t + y * sqrt(t), 3.0); - if (t <= 0.) + t = r * JR_pow_di(1. - t + y * sqrt(t), 3); +#ifdef DEBUG_qbeta + JREprintf("min(p,q) <= 1: t=%g", t); +#endif + if (t <= 0.) { +#ifdef DEBUG_qbeta + JREprintf(" t <= 0: log1p(-a)=%.15g\n", log1p(-a)); +#endif xinbta = 1. - exp((log1p(-a)+ log(qq) + logbeta) / qq); - else { + } else { t = (4. * pp + r - 2.) / t; +#ifdef DEBUG_qbeta + JREprintf(" t >= 0: new t = %g ( > 1 ?)\n", t); +#endif if (t <= 1.) xinbta = exp((log(a * pp) + logbeta) / pp); else @@ -108,12 +162,27 @@ } } + /* Desired accuracy for Newton iterations (below) should depend on (a,p) + * This is from Remark .. on AS 109, adapted. + * However, it's not clear if this is "optimal" for IEEE double prec. + + * acu = fmax2(acu_min, pow(10., -25. - 5./(pp * pp) - 1./(a * a))); + + * NEW: 'acu' accuracy NOT for squared adjustment, but simple; + * ---- i.e., "new acu" = sqrt(old acu) + */ + acu = fmax2(acu_min, pow(10.0, -13.0 - 2.5/(pp * pp) - 0.5/(a * a))); + +#ifdef DEBUG_qbeta + JREprintf(" -> xinbta = %.16g (Newton acu=%g)\n", xinbta, acu); +#endif + /* solve for x by a modified newton-raphson method, */ /* using the function pbeta_raw */ r = 1 - pp; t = 1 - qq; - yprev = 0.; + wprev = 0.; adj = 1; /* Sometimes the approximation is negative! */ if (xinbta < lower) @@ -121,19 +190,7 @@ else if (xinbta > upper) xinbta = 0.5; - /* Desired accuracy should depend on (a,p) - * This is from Remark .. on AS 109, adapted. - * However, it's not clear if this is "optimal" for IEEE double prec. - - * acu = fmax2(acu_min, pow(10., -25. - 5./(pp * pp) - 1./(a * a))); - - * NEW: 'acu' accuracy NOT for squared adjustment, but simple; - * ---- i.e., "new acu" = sqrt(old acu) - - */ - acu = fmax2(acu_min, pow(10., -13 - 2.5/(pp * pp) - 0.5/(a * a))); tx = prev = 0.; /* keep -Wall happy */ - for (i_pb=0; i_pb < 1000; i_pb++) { y = pbeta_raw(xinbta, pp, qq, /*lower_tail = */ TRUE, FALSE); #ifdef IEEE_754 @@ -143,31 +200,50 @@ #endif ML_ERR_return_NAN; - y = (y - a) * + w = (y - a) * exp(logbeta + r * log(xinbta) + t * log1p(-xinbta)); - if (y * yprev <= 0.) + if (w * wprev <= 0.) prev = fmax2(fabs(adj),fpu); g = 1; +#ifdef DEBUG_qbeta + JREprintf("N(i=%d): x0=%.15g, pb(x0)=%.15g, w=%.15g, prev=%g,", i_pb, xinbta, y, w, prev); +#endif for (i_inn=0; i_inn < 1000;i_inn++) { - adj = g * y; + adj = g * w; if (fabs(adj) < prev) { - tx = xinbta - adj; /* trial new x */ - if (tx >= 0. && tx <= 1) { - if (prev <= acu) goto L_converged; - if (fabs(y) <= acu) goto L_converged; + tx = xinbta - adj; // x_{n+1} = x_n - g*w + if (0. <= tx && tx <= 1.) { + if (prev <= acu || fabs(w) <= acu) { +#ifdef DEBUG_qbeta + JREprintf(" it{in}=%d, delta(x)=%g, %s <= acu ==> convergence\n", + i_inn, -adj, (prev <= acu) ? "prev" : "|w|"); +#endif + goto L_converged; + } if (tx != 0. && tx != 1) break; } } g /= 3; } - if (fabs(tx - xinbta) < 1e-15*xinbta) goto L_converged; +#ifdef DEBUG_qbeta + JREprintf(" it{in}=%d, delta(x)=%g\n", i_inn, -adj); +#endif + if (fabs(tx - xinbta) <= 1e-15 * xinbta) // "<=" for xinbta == 0 + goto L_converged; xinbta = tx; - yprev = y; + wprev = w; } /*-- NOT converged: Iteration count --*/ +#ifdef DEBUG_qbeta + warned = TRUE; +#endif ML_ERROR(ME_PRECISION, "qbeta"); L_converged: +#ifdef DEBUG_qbeta + JREprintf(" %s: Final delta(y) = %g\n", + warned ? "_NO_ convergence" : "converged", y - a); +#endif return swap_tail ? 1 - xinbta : xinbta; } diff -Nru jags-3.4.0/src/jrmath/qbinom.c jags-4.0.0/src/jrmath/qbinom.c --- jags-3.4.0/src/jrmath/qbinom.c 2013-08-22 15:44:58.000000000 +0000 +++ jags-4.0.0/src/jrmath/qbinom.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-2009 The R Development Core Team + * Copyright (C) 2000-2009 The R Core Team * Copyright (C) 2003-2009 The R Foundation * * This program is free software; you can redistribute it and/or modify diff -Nru jags-3.4.0/src/jrmath/qcauchy.c jags-4.0.0/src/jrmath/qcauchy.c --- jags-3.4.0/src/jrmath/qcauchy.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/qcauchy.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,8 +1,8 @@ /* * Mathlib : A C Library of Special Functions - * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000 The R Development Core Team - * Copyright (C) 2005-6 The R Foundation + * Copyright (C) 1998 Ross Ihaka + * Copyright (C) 2000-2013 The R Core Team + * Copyright (C) 2005-6 The R Foundation * * This version is based on a suggestion by Morten Welinder. * @@ -54,9 +54,17 @@ p = -expm1(p); } else p = exp(p); - } else if (p == 1.) - return my_INF; + } else { + if (p > 0.5) { + if (p == 1.) + return my_INF; + p = 1 - p; + lower_tail = !lower_tail; + } + } - return location + (lower_tail ? -scale : scale) / tan(M_PI * p); + if (p == 0.5) return location; // avoid 1/Inf below + if (p == 0.) return location + (lower_tail ? scale : -scale) * ML_NEGINF; // p = 1. is handled above + return location + (lower_tail ? -scale : scale) / tanpi(p); /* -1/tan(pi * p) = -cot(pi * p) = tan(pi * (p - 1/2)) */ } diff -Nru jags-3.4.0/src/jrmath/qchisq.c jags-4.0.0/src/jrmath/qchisq.c --- jags-3.4.0/src/jrmath/qchisq.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/qchisq.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -Nru jags-3.4.0/src/jrmath/qexp.c jags-4.0.0/src/jrmath/qexp.c --- jags-3.4.0/src/jrmath/qexp.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/qexp.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -Nru jags-3.4.0/src/jrmath/qf.c jags-4.0.0/src/jrmath/qf.c --- jags-3.4.0/src/jrmath/qf.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/qf.c 2015-02-23 21:46:49.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-8 The R Development Core Team + * Copyright (C) 2000-8 The R Core Team * Copyright (C) 2005 The R Foundation * * This program is free software; you can redistribute it and/or modify diff -Nru jags-3.4.0/src/jrmath/qgamma.c jags-4.0.0/src/jrmath/qgamma.c --- jags-3.4.0/src/jrmath/qgamma.c 2013-08-22 15:44:58.000000000 +0000 +++ jags-4.0.0/src/jrmath/qgamma.c 2015-02-24 21:53:53.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000--2009 The R Development Core Team + * Copyright (C) 2000--2011 The R Core Team * Copyright (C) 2004--2009 The R Foundation * based on AS 91 (C) 1979 Royal Statistical Society * @@ -47,7 +47,7 @@ #endif attribute_hidden -double qchisq_appr(double p, double nu, double g/* = log Gamma(nu/2) */, +double qchisq_appr(double p, double nu, double g /* = log Gamma(nu/2) */, int lower_tail, int log_p, double tol /* EPS1 */) { #define C7 4.67 @@ -55,7 +55,7 @@ #define C9 6.73 #define C10 13.32 - double p_, alpha, a, c, ch, p1; + double alpha, a, c, ch, p1; double p2, q, t, x; /* test arguments and initialise */ @@ -67,8 +67,6 @@ R_Q_P01_check(p); if (nu <= 0) ML_ERR_return_NAN; - p_ = R_DT_qIv(p);/* lower_tail prob (in any case) */ - alpha = 0.5 * nu;/* = [pq]gamma() shape */ c = alpha-1; @@ -80,7 +78,7 @@ double lgam1pa = (alpha < 0.5) ? lgamma1p(alpha) : (log(alpha) + g); ch = exp((lgam1pa + p1)/alpha + M_LN2); #ifdef DEBUG_qgamma - REprintf(" small chi-sq., ch0 = %g\n", ch); + JREprintf(" small chi-sq., ch0 = %g\n", ch); #endif } else if(nu > 0.32) { /* using Wilson and Hilferty estimate */ @@ -90,7 +88,7 @@ ch = nu*pow(x*sqrt(p1) + 1-p1, 3); #ifdef DEBUG_qgamma - REprintf(" nu > .32: Wilson-Hilferty; x = %7g\n", x); + JREprintf(" nu > .32: Wilson-Hilferty; x = %7g\n", x); #endif /* approximation for p tending to 1: */ if( ch > 2.2*nu + 6 ) @@ -101,7 +99,7 @@ ch = 0.4; a = R_DT_Clog(p) + g + c*M_LN2; #ifdef DEBUG_qgamma - REprintf(" nu <= .32: a = %7g\n", a); + JREprintf(" nu <= .32: a = %7g\n", a); #endif do { q = ch; @@ -160,7 +158,7 @@ p_ = R_DT_qIv(p);/* lower_tail prob (in any case) */ #ifdef DEBUG_qgamma - REprintf("qgamma(p=%7g, alpha=%7g, scale=%7g, l.t.=%2d, log_p=%2d): ", + JREprintf("qgamma(p=%7g, alpha=%7g, scale=%7g, l.t.=%2d, log_p=%2d): ", p,alpha,scale, lower_tail, log_p); #endif g = lgammafn(alpha);/* log Gamma(v/2) */ @@ -186,7 +184,7 @@ } #ifdef DEBUG_qgamma - REprintf("\t==> ch = %10g:", ch); + JREprintf("\t==> ch = %10g:", ch); #endif /*----- Phase II: Iteration @@ -201,8 +199,8 @@ p1 = 0.5*ch; p2 = p_ - pgamma_raw(p1, alpha, /*lower_tail*/TRUE, /*log_p*/FALSE); #ifdef DEBUG_qgamma - if(i == 1) REprintf(" Ph.II iter; ch=%g, p2=%g\n", ch, p2); - if(i >= 2) REprintf(" it=%d, ch=%g, p2=%g\n", i, ch, p2); + if(i == 1) JREprintf(" Ph.II iter; ch=%g, p2=%g\n", ch, p2); + if(i >= 2) JREprintf(" it=%d, ch=%g, p2=%g\n", i, ch, p2); #endif #ifdef IEEE_754 if(!R_FINITE(p2) || ch <= 0) @@ -247,7 +245,6 @@ * - optionally *iterate* Newton */ x = 0.5*scale*ch; - if(max_it_Newton) { /* always use log scale */ if (!log_p) { @@ -266,12 +263,13 @@ } else p_ = pgamma(x, alpha, scale, lower_tail, log_p); + if(p_ == ML_NEGINF) return 0; /* PR#14710 */ for(i = 1; i <= max_it_Newton; i++) { p1 = p_ - p; #ifdef DEBUG_qgamma - if(i == 1) REprintf("\n it=%d: p=%g, x = %g, p.=%g; p1=d{p}=%g\n", + if(i == 1) JREprintf("\n it=%d: p=%g, x = %g, p.=%g; p1=d{p}=%g\n", i, p, x, p_, p1); - if(i >= 2) REprintf(" x{it= %d} = %g, p.=%g, p1=d{p}=%g\n", + if(i >= 2) JREprintf(" x{it= %d} = %g, p.=%g, p1=d{p}=%g\n", i, x, p_, p1); #endif if(fabs(p1) < fabs(EPS_N * p)) @@ -279,7 +277,7 @@ /* else */ if((g = dgamma(x, alpha, scale, log_p)) == R_D__0) { #ifdef DEBUG_q - if(i == 1) REprintf("no final Newton step because dgamma(*)== 0!\n"); + if(i == 1) JREprintf("no final Newton step because dgamma(*)== 0!\n"); #endif break; } @@ -296,7 +294,7 @@ /* no improvement */ #ifdef DEBUG_qgamma if(i == 1 && max_it_Newton > 1) - REprintf("no Newton step done since delta{p} >= last delta\n"); + JREprintf("no Newton step done since delta{p} >= last delta\n"); #endif break; } /* else : */ diff -Nru jags-3.4.0/src/jrmath/qgeom.c jags-4.0.0/src/jrmath/qgeom.c --- jags-3.4.0/src/jrmath/qgeom.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/qgeom.c 2015-02-22 20:05:50.000000000 +0000 @@ -0,0 +1,43 @@ +/* + * Mathlib : A C Library of Special Functions + * Copyright (C) 1998 Ross Ihaka + * Copyright (C) 2000-12 The R Core Team + * Copyright (C) 2004--2005 The R Foundation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + * + * DESCRIPTION + * + * The quantile function of the geometric distribution. + */ + +#include "nmath.h" +#include "dpq.h" + +double qgeom(double p, double prob, int lower_tail, int log_p) +{ + if (prob <= 0 || prob > 1) ML_ERR_return_NAN; + + R_Q_P01_boundaries(p, 0, ML_POSINF); + +#ifdef IEEE_754 + if (ISNAN(p) || ISNAN(prob)) + return p + prob; +#endif + + if (prob == 1) return(0); +/* add a fuzz to ensure left continuity, but value must be >= 0 */ + return fmax2(0, ceil(R_DT_Clog(p) / log1p(- prob) - 1 - 1e-12)); +} diff -Nru jags-3.4.0/src/jrmath/qhyper.c jags-4.0.0/src/jrmath/qhyper.c --- jags-3.4.0/src/jrmath/qhyper.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/qhyper.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000-2014 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -38,10 +38,10 @@ if(!R_FINITE(p) || !R_FINITE(NR) || !R_FINITE(NB) || !R_FINITE(n)) ML_ERR_return_NAN; - NR = floor(NR + 0.5); - NB = floor(NB + 0.5); + NR = R_forceint(NR); + NB = R_forceint(NB); N = NR + NB; - n = floor(n + 0.5); + n = R_forceint(n); if (NR < 0 || NB < 0 || n < 0 || n > N) ML_ERR_return_NAN; diff -Nru jags-3.4.0/src/jrmath/qlnorm.c jags-4.0.0/src/jrmath/qlnorm.c --- jags-3.4.0/src/jrmath/qlnorm.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/qlnorm.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-8 The R Development Core Team + * Copyright (C) 2000-8 The R Core Team * Copyright (C) 2005 The R Foundation * * This program is free software; you can redistribute it and/or modify diff -Nru jags-3.4.0/src/jrmath/qlogis.c jags-4.0.0/src/jrmath/qlogis.c --- jags-3.4.0/src/jrmath/qlogis.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/qlogis.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * R : A Computer Language for Statistical Data Analysis * Copyright (C) 1995, 1996 Robert Gentleman and Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000 The R Core Team * Copyright (C) 2005 The R Foundation * * This program is free software; you can redistribute it and/or modify @@ -36,9 +36,9 @@ /* p := logit(p) = log( p / (1-p) ) : */ if(log_p) { if(lower_tail) - p = p - log1p(- exp(p)); + p = p - R_Log1_Exp(p); else - p = log1p(- exp(p)) - p; + p = R_Log1_Exp(p) - p; } else p = log(lower_tail ? (p / (1. - p)) : ((1. - p) / p)); diff -Nru jags-3.4.0/src/jrmath/qnbeta.c jags-4.0.0/src/jrmath/qnbeta.c --- jags-3.4.0/src/jrmath/qnbeta.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/qnbeta.c 2015-02-22 20:05:50.000000000 +0000 @@ -0,0 +1,63 @@ +/* + * R : A Computer Language for Statistical Data Analysis + * Copyright (C) 2006 The R Core Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + */ + +#include "nmath.h" +#include "dpq.h" + +double qnbeta(double p, double a, double b, double ncp, + int lower_tail, int log_p) +{ + const static double accu = 1e-15; + const static double Eps = 1e-14; /* must be > accu */ + + double ux, lx, nx, pp; + +#ifdef IEEE_754 + if (ISNAN(p) || ISNAN(a) || ISNAN(b) || ISNAN(ncp)) + return p + a + b + ncp; +#endif + if (!R_FINITE(a)) ML_ERR_return_NAN; + + if (ncp < 0. || a <= 0. || b <= 0.) ML_ERR_return_NAN; + + R_Q_P01_boundaries(p, 0, 1); + + p = R_DT_qIv(p); + + /* Invert pnbeta(.) : + * 1. finding an upper and lower bound */ + if(p > 1 - DBL_EPSILON) return 1.0; + pp = fmin2(1 - DBL_EPSILON, p * (1 + Eps)); + for(ux = 0.5; + ux < 1 - DBL_EPSILON && pnbeta(ux, a, b, ncp, TRUE, FALSE) < pp; + ux = 0.5*(1+ux)); + pp = p * (1 - Eps); + for(lx = 0.5; + lx > DBL_MIN && pnbeta(lx, a, b, ncp, TRUE, FALSE) > pp; + lx *= 0.5); + + /* 2. interval (lx,ux) halving : */ + do { + nx = 0.5 * (lx + ux); + if (pnbeta(nx, a, b, ncp, TRUE, FALSE) > p) ux = nx; else lx = nx; + } + while ((ux - lx) / nx > accu); + + return 0.5 * (ux + lx); +} diff -Nru jags-3.4.0/src/jrmath/qnbinom.c jags-4.0.0/src/jrmath/qnbinom.c --- jags-3.4.0/src/jrmath/qnbinom.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/qnbinom.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-2008 The R Development Core Team + * Copyright (C) 2000-2014 The R Core Team * Copyright (C) 2005 The R Foundation * * This program is free software; you can redistribute it and/or modify @@ -75,9 +75,15 @@ if (ISNAN(p) || ISNAN(size) || ISNAN(prob)) return p + size + prob; #endif - if (prob <= 0 || prob > 1 || size <= 0) ML_ERR_return_NAN; - /* FIXME: size = 0 is well defined ! */ - if (prob == 1) return 0; + + /* this happens if specified via mu, size, since + prob == size/(size+mu) + */ + if (prob == 0 && size == 0) return 0; + + if (prob <= 0 || prob > 1 || size < 0) ML_ERR_return_NAN; + + if (prob == 1 || size == 0) return 0; R_Q_P01_boundaries(p, 0, ML_POSINF); @@ -99,7 +105,7 @@ /* y := approx.value (Cornish-Fisher expansion) : */ z = qnorm(p, 0., 1., /*lower_tail*/TRUE, /*log_p*/FALSE); - y = floor(mu + sigma * (z + gamma * (z*z - 1) / 6) + 0.5); + y = R_forceint(mu + sigma * (z + gamma * (z*z - 1) / 6)); z = pnbinom(y, size, prob, /*lower_tail*/TRUE, /*log_p*/FALSE); diff -Nru jags-3.4.0/src/jrmath/qnchisq.c jags-4.0.0/src/jrmath/qnchisq.c --- jags-3.4.0/src/jrmath/qnchisq.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/qnchisq.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * R : A Computer Language for Statistical Data Analysis * Copyright (C) 1995, 1996 Robert Gentleman and Ross Ihaka - * Copyright (C) 2000-2008 The R Development Core Team + * Copyright (C) 2000-2008 The R Core Team * Copyright (C) 2004 The R Foundation * * This program is free software; you can redistribute it and/or modify @@ -71,27 +71,25 @@ if(lower_tail) { if(p > 1 - DBL_EPSILON) return ML_POSINF; pp = fmin2(1 - DBL_EPSILON, p * (1 + Eps)); - for(ux = ux; - ux < DBL_MAX && - pnchisq_raw(ux, df, ncp, Eps, rEps, 10000, TRUE) < pp; + for(; ux < DBL_MAX && + pnchisq_raw(ux, df, ncp, Eps, rEps, 10000, TRUE, FALSE) < pp; ux *= 2); pp = p * (1 - Eps); for(lx = fmin2(ux0, DBL_MAX); lx > DBL_MIN && - pnchisq_raw(lx, df, ncp, Eps, rEps, 10000, TRUE) > pp; + pnchisq_raw(lx, df, ncp, Eps, rEps, 10000, TRUE, FALSE) > pp; lx *= 0.5); } else { if(p > 1 - DBL_EPSILON) return 0.0; pp = fmin2(1 - DBL_EPSILON, p * (1 + Eps)); - for(ux = ux; - ux < DBL_MAX && - pnchisq_raw(ux, df, ncp, Eps, rEps, 10000, FALSE) > pp; + for(; ux < DBL_MAX && + pnchisq_raw(ux, df, ncp, Eps, rEps, 10000, FALSE, FALSE) > pp; ux *= 2); pp = p * (1 - Eps); for(lx = fmin2(ux0, DBL_MAX); lx > DBL_MIN && - pnchisq_raw(lx, df, ncp, Eps, rEps, 10000, FALSE) < pp; + pnchisq_raw(lx, df, ncp, Eps, rEps, 10000, FALSE, FALSE) < pp; lx *= 0.5); } @@ -99,7 +97,7 @@ if(lower_tail) { do { nx = 0.5 * (lx + ux); - if (pnchisq_raw(nx, df, ncp, accu, racc, 100000, TRUE) > p) + if (pnchisq_raw(nx, df, ncp, accu, racc, 100000, TRUE, FALSE) > p) ux = nx; else lx = nx; @@ -108,7 +106,7 @@ } else { do { nx = 0.5 * (lx + ux); - if (pnchisq_raw(nx, df, ncp, accu, racc, 100000, FALSE) < p) + if (pnchisq_raw(nx, df, ncp, accu, racc, 100000, FALSE, FALSE) < p) ux = nx; else lx = nx; diff -Nru jags-3.4.0/src/jrmath/qnf.c jags-4.0.0/src/jrmath/qnf.c --- jags-3.4.0/src/jrmath/qnf.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/qnf.c 2015-02-22 20:05:50.000000000 +0000 @@ -0,0 +1,42 @@ +/* + * R : A Computer Language for Statistical Data Analysis + * Copyright (C) 2006-8 The R Core Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + */ + +#include "nmath.h" +#include "dpq.h" + +double qnf(double p, double df1, double df2, double ncp, int lower_tail, + int log_p) +{ + double y; + +#ifdef IEEE_754 + if (ISNAN(p) || ISNAN(df1) || ISNAN(df2) || ISNAN(ncp)) + return p + df1 + df2 + ncp; +#endif + if (df1 <= 0. || df2 <= 0. || ncp < 0) ML_ERR_return_NAN; + if (!R_FINITE(ncp)) ML_ERR_return_NAN; + if (!R_FINITE(df1) && !R_FINITE(df2)) ML_ERR_return_NAN; + R_Q_P01_boundaries(p, 0, ML_POSINF); + + if (df2 > 1e8) /* avoid problems with +Inf and loss of accuracy */ + return qnchisq(p, df1, ncp, lower_tail, log_p)/df1; + + y = qnbeta(p, df1 / 2., df2 / 2., ncp, lower_tail, log_p); + return y/(1-y) * (df2/df1); +} diff -Nru jags-3.4.0/src/jrmath/qnorm.c jags-4.0.0/src/jrmath/qnorm.c --- jags-3.4.0/src/jrmath/qnorm.c 2013-08-22 15:44:58.000000000 +0000 +++ jags-4.0.0/src/jrmath/qnorm.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000--2005 The R Development Core Team + * Copyright (C) 2000--2005 The R Core Team * based on AS 111 (C) 1977 Royal Statistical Society * and on AS 241 (C) 1988 Royal Statistical Society * diff -Nru jags-3.4.0/src/jrmath/qnt.c jags-4.0.0/src/jrmath/qnt.c --- jags-3.4.0/src/jrmath/qnt.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/qnt.c 2015-02-22 20:05:50.000000000 +0000 @@ -0,0 +1,68 @@ +/* + * R : A Computer Language for Statistical Data Analysis + * Copyright (C) 2006-2013 The R Core Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + */ + +#include "nmath.h" +#include "dpq.h" + +double qnt(double p, double df, double ncp, int lower_tail, int log_p) +{ + const static double accu = 1e-13; + const static double Eps = 1e-11; /* must be > accu */ + + double ux, lx, nx, pp; + +#ifdef IEEE_754 + if (ISNAN(p) || ISNAN(df) || ISNAN(ncp)) + return p + df + ncp; +#endif + if (!R_FINITE(df)) ML_ERR_return_NAN; + + /* Was + * df = floor(df + 0.5); + * if (df < 1 || ncp < 0) ML_ERR_return_NAN; + */ + if (df <= 0.0) ML_ERR_return_NAN; + + if(ncp == 0.0 && df >= 1.0) return qt(p, df, lower_tail, log_p); + + R_Q_P01_boundaries(p, ML_NEGINF, ML_POSINF); + + p = R_DT_qIv(p); + + /* Invert pnt(.) : + * 1. finding an upper and lower bound */ + if(p > 1 - DBL_EPSILON) return ML_POSINF; + pp = fmin2(1 - DBL_EPSILON, p * (1 + Eps)); + for(ux = fmax2(1., ncp); + ux < DBL_MAX && pnt(ux, df, ncp, TRUE, FALSE) < pp; + ux *= 2); + pp = p * (1 - Eps); + for(lx = fmin2(-1., -ncp); + lx > -DBL_MAX && pnt(lx, df, ncp, TRUE, FALSE) > pp; + lx *= 2); + + /* 2. interval (lx,ux) halving : */ + do { + nx = 0.5 * (lx + ux); // could be zero + if (pnt(nx, df, ncp, TRUE, FALSE) > p) ux = nx; else lx = nx; + } + while ((ux - lx) > accu * fmax2(fabs(lx), fabs(ux))); + + return 0.5 * (lx + ux); +} diff -Nru jags-3.4.0/src/jrmath/qpois.c jags-4.0.0/src/jrmath/qpois.c --- jags-3.4.0/src/jrmath/qpois.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/qpois.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-2006 The R Development Core Team + * Copyright (C) 2000-2014 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -33,7 +33,7 @@ #include "nmath.h" #include "dpq.h" -static double +static double do_search(double y, double *z, double p, double lambda, double incr) { if(*z >= p) { @@ -64,12 +64,11 @@ #endif if(!R_FINITE(lambda)) ML_ERR_return_NAN; - - R_Q_P01_boundaries(p, 0, ML_POSINF); - if(lambda < 0) ML_ERR_return_NAN; if(lambda == 0) return 0; + R_Q_P01_boundaries(p, 0, ML_POSINF); + mu = lambda; sigma = sqrt(lambda); /* gamma = sigma; PR#8058 should be kurtosis which is mu^-0.5 */ @@ -87,7 +86,11 @@ /* y := approx.value (Cornish-Fisher expansion) : */ z = qnorm(p, 0., 1., /*lower_tail*/TRUE, /*log_p*/FALSE); - y = floor(mu + sigma * (z + gamma * (z*z - 1) / 6) + 0.5); +#ifdef HAVE_NEARBYINT + y = nearbyint(mu + sigma * (z + gamma * (z*z - 1) / 6)); +#else + y = round(mu + sigma * (z + gamma * (z*z - 1) / 6)); +#endif z = ppois(y, lambda, /*lower_tail*/TRUE, /*log_p*/FALSE); diff -Nru jags-3.4.0/src/jrmath/qt.c jags-4.0.0/src/jrmath/qt.c --- jags-3.4.0/src/jrmath/qt.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/qt.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,8 +1,8 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-2007 The R Development Core Team - * Copyright (C) 2003 The R Foundation + * Copyright (C) 2000-2013 The R Core Team + * Copyright (C) 2003-2013 The R Foundation * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -46,7 +46,6 @@ const static double eps = 1.e-12; double P, q; - Rboolean neg; #ifdef IEEE_754 if (ISNAN(p) || ISNAN(ndf)) @@ -62,7 +61,7 @@ const static double Eps = 1e-11; /* must be > accu */ double ux, lx, nx, pp; - + int iter = 0; p = R_DT_qIv(p); @@ -102,16 +101,14 @@ P = R_D_qIv(p); /* if exp(p) underflows, we fix below */ - neg = (!lower_tail || P < 0.5) && (lower_tail || P > 0.5); + Rboolean neg = (!lower_tail || P < 0.5) && (lower_tail || P > 0.5), + is_neg_lower = (lower_tail == neg); /* both TRUE or FALSE == !xor */ if(neg) P = 2 * (log_p ? (lower_tail ? P : -expm1(p)) : R_D_Lval(p)); else P = 2 * (log_p ? (lower_tail ? -expm1(p) : P) : R_D_Cval(p)); /* 0 <= P <= 1 ; P = 2*min(P', 1 - P') in all cases */ -/* Use this if(log_p) only : */ -#define P_is_exp_2p (lower_tail == neg) /* both TRUE or FALSE == !xor */ - if (fabs(ndf - 2) < eps) { /* df ~= 2 */ if(P > DBL_MIN) { if(3* P < DBL_EPSILON) /* P ~= 0 */ @@ -123,18 +120,19 @@ } else { /* P << 1, q = 1/sqrt(P) = ... */ if(log_p) - q = P_is_exp_2p ? exp(- p/2) / M_SQRT2 : 1/sqrt(-expm1(p)); + q = is_neg_lower ? exp(- p/2) / M_SQRT2 : 1/sqrt(-expm1(p)); else q = ML_POSINF; } } else if (ndf < 1 + eps) { /* df ~= 1 (df < 1 excluded above): Cauchy */ - if(P > 0) - q = 1/tan(P * M_PI_2);/* == - tan((P+1) * M_PI_2) -- suffers for P ~= 0 */ + if(P == 1.) q = 0; // some versions of tanpi give Inf, some NaN + else if(P > 0) + q = 1/tanpi(P/2.);/* == - tan((P+1) * M_PI_2) -- suffers for P ~= 0 */ else { /* P = 0, but maybe = 2*exp(p) ! */ if(log_p) /* 1/tan(e) ~ 1/e */ - q = P_is_exp_2p ? M_1_PI * exp(-p) : -1./(M_PI * expm1(p)); + q = is_neg_lower ? M_1_PI * exp(-p) : -1./(M_PI * expm1(p)); else q = ML_POSINF; } @@ -148,11 +146,11 @@ Rboolean P_ok1 = P > DBL_MIN || !log_p, P_ok = P_ok1; if(P_ok1) { - y = pow(d * P, 2 / ndf); + y = pow(d * P, 2.0 / ndf); P_ok = (y >= DBL_EPSILON); } - if(!P_ok) { /* log_p && P very small */ - log_P2 = P_is_exp_2p ? p : R_Log1_Exp(p); /* == log(P / 2) */ + if(!P_ok) {// log.p && P very.small || (d*P)^(2/df) =: y < eps_c + log_P2 = is_neg_lower ? R_D_log(p) : R_D_LExp(p); /* == log(P / 2) */ x = (log(d) + M_LN2 + log_P2) / ndf; y = exp(2 * x); } @@ -172,18 +170,15 @@ - y - 3) / b + 1) * x; y = expm1(a * y * y); q = sqrt(ndf * y); - } else { /* re-use 'y' from above */ - - if(!P_ok && x < - M_LN2 * DBL_MANT_DIG) {/* 0.5* log(DBL_EPSILON) */ - /* y above might have underflown */ - q = sqrt(ndf) * exp(-x); - } - else { - y = ((1 / (((ndf + 6) / (ndf * y) - 0.089 * d - 0.822) - * (ndf + 2) * 3) + 0.5 / (ndf + 4)) - * y - 1) * (ndf + 1) / (ndf + 2) + 1 / y; - q = sqrt(ndf * y); - } + } else if(!P_ok && x < - M_LN2 * DBL_MANT_DIG) {/* 0.5* log(DBL_EPSILON) */ + /* y above might have underflown */ + q = sqrt(ndf) * exp(-x); + } + else { /* re-use 'y' from above */ + y = ((1 / (((ndf + 6) / (ndf * y) - 0.089 * d - 0.822) + * (ndf + 2) * 3) + 0.5 / (ndf + 4)) + * y - 1) * (ndf + 1) / (ndf + 2) + 1 / y; + q = sqrt(ndf * y); } diff -Nru jags-3.4.0/src/jrmath/qunif.c jags-4.0.0/src/jrmath/qunif.c --- jags-3.4.0/src/jrmath/qunif.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/qunif.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-2006 The R Development Core Team + * Copyright (C) 2000-2006 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -Nru jags-3.4.0/src/jrmath/qweibull.c jags-4.0.0/src/jrmath/qweibull.c --- jags-3.4.0/src/jrmath/qweibull.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/qweibull.c 2015-02-22 20:05:50.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000 The R Core Team * Copyright (C) 2005 The R Foundation * * This program is free software; you can redistribute it and/or modify diff -Nru jags-3.4.0/src/jrmath/rbeta.c jags-4.0.0/src/jrmath/rbeta.c --- jags-3.4.0/src/jrmath/rbeta.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/rbeta.c 2015-02-22 20:14:34.000000000 +0000 @@ -1,7 +1,8 @@ /* * R : A Computer Language for Statistical Data Analysis * Copyright (C) 1995, 1996 Robert Gentleman and Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000--2010 The R Core Team + * Copyright (C) 2000, 2010 The R Foundation * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -29,11 +30,22 @@ #define expmax (DBL_MAX_EXP * M_LN2)/* = log(DBL_MAX) */ -double rbeta(double aa, double bb, RNG *rng) +double rbeta(double aa, double bb, JRNG *rng) { + if (aa < 0. || bb < 0.) + ML_ERR_return_NAN; + if (!R_FINITE(aa) && !R_FINITE(bb)) // a = b = Inf : all mass at 1/2 + return 0.5; + if (aa == 0. && bb == 0.) // point mass 1/2 at each of {0,1} : + return (unif_rand(rng) < 0.5) ? 0. : 1.; + // now, at least one of a, b is finite and positive + if (!R_FINITE(aa) || bb == 0.) + return 1.0; + if (!R_FINITE(bb) || aa == 0.) + return 0.0; + double a, b, alpha; double r, s, t, u1, u2, v, w, y, z; - int qsame; /* FIXME: Keep Globals (properly) for threading */ /* Uses these GLOBALS to save time when many rv's are generated : */ @@ -41,15 +53,6 @@ static double olda = -1.0; static double oldb = -1.0; - if (aa <= 0. || bb <= 0. || (!R_FINITE(aa) && !R_FINITE(bb))) - ML_ERR_return_NAN; - - if (!R_FINITE(aa)) - return 1.0; - - if (!R_FINITE(bb)) - return 0.0; - /* Test if we need new "initializing" */ qsame = (olda == aa) && (oldb == bb); if (!qsame) { olda = aa; oldb = bb; } @@ -58,11 +61,12 @@ b = fmax2(aa, bb); /* a <= b */ alpha = a + b; -#define v_w_from__u1_bet(AA) \ +#define v_w_from__u1_bet(AA) \ v = beta * log(u1 / (1.0 - u1)); \ - if (v <= expmax) \ + if (v <= expmax) { \ w = AA * exp(v); \ - else \ + if(!R_FINITE(w)) w = DBL_MAX; \ + } else \ w = DBL_MAX diff -Nru jags-3.4.0/src/jrmath/rbinom.c jags-4.0.0/src/jrmath/rbinom.c --- jags-3.4.0/src/jrmath/rbinom.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/rbinom.c 2015-02-24 21:28:19.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-2002 The R Development Core Team + * Copyright (C) 2000-2014 The R Core Team * Copyright (C) 2007 The R Foundation * * This program is free software; you can redistribute it and/or modify @@ -36,12 +36,13 @@ */ #include "nmath.h" +#include "dpq.h" #include #include #define repeat for(;;) -double rbinom(double nin, double pp, RNG *rng) +double rbinom(double nin, double pp, JRNG *rng) { /* FIXME: These should become THREAD_specific globals : */ @@ -54,10 +55,10 @@ double f, f1, f2, u, v, w, w2, x, x1, x2, z, z2; double p, q, np, g, r, al, alv, amaxp, ffm, ynorm; - int i,ix,k, n; + int i, ix, k, n; if (!R_FINITE(nin)) ML_ERR_return_NAN; - r = floor(nin + 0.5); + r = R_forceint(nin); if (r != nin) ML_ERR_return_NAN; if (!R_FINITE(pp) || /* n=0, p=0, p=1 are not errors */ @@ -70,7 +71,7 @@ and r == INT_MAX gave only even values */ return qbinom(unif_rand(rng), r, pp, /*lower_tail*/ 0, /*log_p*/ 0); /* else */ - n = r; + n = (int) r; p = fmin2(pp, 1. - pp); q = 1. - p; @@ -88,11 +89,11 @@ nsave = n; if (np < 30.0) { /* inverse cdf logic for mean less than 30 */ - qn = pow(q, (double) n); + qn = JR_pow_di(q, n); goto L_np_small; } else { ffm = np + p; - m = ffm; + m = (int) ffm; fm = m; npq = np * q; p1 = (int)(2.195 * sqrt(npq) - 4.6 * q) + 0.5; @@ -119,7 +120,7 @@ v = unif_rand(rng); /* triangular region */ if (u <= p1) { - ix = xm - p1 * v + u; + ix = (int)(xm - p1 * v + u); goto finis; } /* parallelogram region */ @@ -128,15 +129,15 @@ v = v * c + 1.0 - fabs(xm - x) / p1; if (v > 1.0 || v <= 0.) continue; - ix = x; + ix = (int) x; } else { if (u > p3) { /* right tail */ - ix = xr - log(v) / xlr; + ix = (int)(xr - log(v) / xlr); if (ix > n) continue; v = v * (u - p3) * xlr; } else {/* left tail */ - ix = xl + log(v) / xll; + ix = (int)(xl + log(v) / xll); if (ix < 0) continue; v = v * (u - p2) * xll; diff -Nru jags-3.4.0/src/jrmath/rcauchy.c jags-4.0.0/src/jrmath/rcauchy.c --- jags-3.4.0/src/jrmath/rcauchy.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/rcauchy.c 2015-02-22 20:13:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000--2008 The R Development Core Team + * Copyright (C) 2000--2008 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -29,7 +29,7 @@ #include "nmath.h" -double rcauchy(double location, double scale, RNG *rng) +double rcauchy(double location, double scale, JRNG *rng) { if (ISNAN(location) || !R_FINITE(scale) || scale < 0) ML_ERR_return_NAN; diff -Nru jags-3.4.0/src/jrmath/rchisq.c jags-4.0.0/src/jrmath/rchisq.c --- jags-3.4.0/src/jrmath/rchisq.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/rchisq.c 2015-02-22 20:16:43.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -33,7 +33,7 @@ #include "nmath.h" -double rchisq(double df, RNG *rng) +double rchisq(double df, JRNG *rng) { if (!R_FINITE(df) || df < 0.0) ML_ERR_return_NAN; diff -Nru jags-3.4.0/src/jrmath/README jags-4.0.0/src/jrmath/README --- jags-3.4.0/src/jrmath/README 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/README 2015-02-26 22:41:20.000000000 +0000 @@ -1,13 +1,39 @@ This is a partial copy of the Rmath library that is part of R. -The API has been modified for the random number generators. These -now take, as argument, a pointer to an opaque struct RNG which +The API has been modified for the random number generators. These now +take, as argument, a pointer to an opaque struct JRNG which encapsulates the state of the random number generator. -Apart from that, nothing is changed, so it should be fairly -straigthforward to resynchronise this library with R. The -current version comes from R 2.10.1 - The file callbacks.cc is a C++ source file that translates the -functions unif_rand, norm_rand and exp_rand into member function -calls for the class RNG. +functions unif_rand, norm_rand and exp_rand into member function calls +for the struct JRNG. + +The current version is based on R 3.1.2 patched (revision r67885). +The original intention was to make as few changes as possible in order +to make it easier to synchronise the library with R. Nevertheless, a +number of other changes have been made: + +The header file Rmath.h has been renamed JRmath.h. Parts of the header +that are not included when R_MATH_STANDALONE is undefined have been +removed. + +We assume that the C library provides both expm1 and log1p, and that +log1p is working correctly, rather than testing during configuration +and providing drop-in replacements as the R math library does. This is +mainly done to simplify the configuration (e.g. no need to derive +JRmath.h from JRmath.h.in). If a C library in 2015 does not conform to +the C99 standard then there is not much hope for that platform. + +All functions are remapped with prefix "jags_". This is unlike the +R math library which remaps to "Rf_" internally and does no remapping +when built as a standalone library. + +Due to the remapping, there is a namespace clash with the function +"df". This is therefore renamed to dF. Similarly pf, qf, rf, are +renamed pF, qF, rF respectively. + +In the private header file "nmath.h" we defined F77_CALL, which is +defined in the file R_exts/RS.h in the R sources. + +The source file toms708.c must be compiled with the flat -std=c99. +This is added to the Makefile variable libjrmath_la_CFLAGS. diff -Nru jags-3.4.0/src/jrmath/rexp.c jags-4.0.0/src/jrmath/rexp.c --- jags-3.4.0/src/jrmath/rexp.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/rexp.c 2015-02-22 20:13:04.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000--2008 The R Development Core Team + * Copyright (C) 2000--2008 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -30,12 +30,12 @@ #include "nmath.h" -double rexp(double scale, RNG *rng) +double rexp(double scale, JRNG *rng) { if (!R_FINITE(scale) || scale <= 0.0) { if(scale == 0.) return 0.; /* else */ ML_ERR_return_NAN; } - return scale * exp_rand(rng); + return scale * exp_rand(rng); // --> in ./sexp.c } diff -Nru jags-3.4.0/src/jrmath/rf.c jags-4.0.0/src/jrmath/rf.c --- jags-3.4.0/src/jrmath/rf.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/rf.c 2015-02-23 21:46:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -33,7 +33,7 @@ #include "nmath.h" -double rF(double n1, double n2, RNG *rng) +double rF(double n1, double n2, JRNG *rng) { double v1, v2; if (ISNAN(n1) || ISNAN(n2) || n1 <= 0. || n2 <= 0.) diff -Nru jags-3.4.0/src/jrmath/rgamma.c jags-4.0.0/src/jrmath/rgamma.c --- jags-3.4.0/src/jrmath/rgamma.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/rgamma.c 2015-02-22 20:12:51.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000--2008 The R Development Core Team + * Copyright (C) 2000--2008 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -51,7 +51,7 @@ #define repeat for(;;) -double rgamma(double a, double scale, RNG *rng) +double rgamma(double a, double scale, JRNG *rng) { /* Constants : */ const static double sqrt32 = 5.656854; diff -Nru jags-3.4.0/src/jrmath/rgeom.c jags-4.0.0/src/jrmath/rgeom.c --- jags-3.4.0/src/jrmath/rgeom.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/rgeom.c 2015-02-24 21:11:55.000000000 +0000 @@ -0,0 +1,49 @@ +/* + * Mathlib : A C Library of Special Functions + * Copyright (C) 1998 Ross Ihaka and the R Core Team. + * Copyright (C) 2000 The R Core Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + * + * SYNOPSIS + * + * #include + * double rgeom(double p); + * + * DESCRIPTION + * + * Random variates from the geometric distribution. + * + * NOTES + * + * We generate lambda as exponential with scale parameter + * p / (1 - p). Return a Poisson deviate with mean lambda. + * + * REFERENCE + * + * Devroye, L. (1986). + * Non-Uniform Random Variate Generation. + * New York: Springer-Verlag. + * Page 480. + */ + +#include "nmath.h" + +double rgeom(double p, JRNG *rng) +{ + if (!R_FINITE(p) || p <= 0 || p > 1) ML_ERR_return_NAN; + + return rpois(exp_rand(rng) * ((1 - p) / p), rng); +} diff -Nru jags-3.4.0/src/jrmath/rhyper.c jags-4.0.0/src/jrmath/rhyper.c --- jags-3.4.0/src/jrmath/rhyper.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/rhyper.c 2015-02-22 20:12:37.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-2001 The R Development Core Team + * Copyright (C) 2000-2014 The R Core Team * Copyright (C) 2005 The R Foundation * * This program is free software; you can redistribute it and/or modify @@ -42,6 +42,7 @@ */ #include "nmath.h" +#include "dpq.h" /* afc(i) := ln( i! ) [logarithm of the factorial i. * If (i > 7), use Stirling's approximation, otherwise use table lookup. @@ -78,7 +79,7 @@ return value; } -double rhyper(double nn1in, double nn2in, double kkin, RNG *rng) +double rhyper(double nn1in, double nn2in, double kkin, JRNG *rng) { const static double con = 57.56462733; const static double deltal = 0.0078; @@ -111,9 +112,9 @@ if(!R_FINITE(nn1in) || !R_FINITE(nn2in) || !R_FINITE(kkin)) ML_ERR_return_NAN; - nn1 = floor(nn1in+0.5); - nn2 = floor(nn2in+0.5); - kk = floor(kkin +0.5); + nn1 = (int) R_forceint(nn1in); + nn2 = (int) R_forceint(nn2in); + kk = (int) R_forceint(kkin); if (nn1 < 0 || nn2 < 0 || kk < 0 || kk > nn1 + nn2) ML_ERR_return_NAN; @@ -142,13 +143,13 @@ if (setup2) { ks = kk; if (kk + kk >= tn) { - k = tn - kk; + k = (int)(tn - kk); } else { k = kk; } } if (setup1 || setup2) { - m = (k + 1.0) * (n1 + 1.0) / (tn + 2.0); + m = (int) ((k + 1.0) * (n1 + 1.0) / (tn + 2.0)); minjx = imax2(0, k - n2); maxjx = imin2(n1, k); } @@ -225,14 +226,14 @@ u = unif_rand(rng) * p3; v = unif_rand(rng); if (u < p1) { /* rectangular region */ - ix = xl + u; + ix = (int) (xl + u); } else if (u <= p2) { /* left tail */ - ix = xl + log(v) / lamdl; + ix = (int) (xl + log(v) / lamdl); if (ix < minjx) goto L30; v = v * (u - p1) * lamdl; } else { /* right tail */ - ix = xr - log(v) / lamdr; + ix = (int) (xr - log(v) / lamdr); if (ix > maxjx) goto L30; v = v * (u - p2) * lamdr; diff -Nru jags-3.4.0/src/jrmath/rlnorm.c jags-4.0.0/src/jrmath/rlnorm.c --- jags-3.4.0/src/jrmath/rlnorm.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/rlnorm.c 2015-02-22 22:28:03.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000--2001 The R Development Core Team + * Copyright (C) 2000--2001 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -29,7 +29,7 @@ #include "nmath.h" -double rlnorm(double meanlog, double sdlog, RNG *rng) +double rlnorm(double meanlog, double sdlog, JRNG *rng) { if(ISNAN(meanlog) || !R_FINITE(sdlog) || sdlog < 0.) ML_ERR_return_NAN; diff -Nru jags-3.4.0/src/jrmath/rlogis.c jags-4.0.0/src/jrmath/rlogis.c --- jags-3.4.0/src/jrmath/rlogis.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/rlogis.c 2015-02-22 20:12:24.000000000 +0000 @@ -1,7 +1,7 @@ /* * R : A Computer Language for Statistical Data Analysis * Copyright (C) 1995, 1996 Robert Gentleman and Ross Ihaka - * Copyright (C) 2000--2008 The R Development Core Team + * Copyright (C) 2000--2008 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,7 +20,7 @@ #include "nmath.h" -double rlogis(double location, double scale, RNG *rng) +double rlogis(double location, double scale, JRNG *rng) { if (ISNAN(location) || !R_FINITE(scale)) ML_ERR_return_NAN; diff -Nru jags-3.4.0/src/jrmath/rnbinom.c jags-4.0.0/src/jrmath/rnbinom.c --- jags-3.4.0/src/jrmath/rnbinom.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/rnbinom.c 2015-02-22 22:30:34.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000--2006 The R Development Core Team + * Copyright (C) 2000--2006 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -44,7 +44,7 @@ #include "nmath.h" -double rnbinom(double size, double prob, RNG *rng) +double rnbinom(double size, double prob, JRNG *rng) { if(!R_FINITE(size) || !R_FINITE(prob) || size <= 0 || prob <= 0 || prob > 1) /* prob = 1 is ok, PR#1218 */ @@ -52,7 +52,7 @@ return (prob == 1) ? 0 : rpois(rgamma(size, (1 - prob) / prob, rng), rng); } -double rnbinom_mu(double size, double mu, RNG *rng) +double rnbinom_mu(double size, double mu, JRNG *rng) { if(!R_FINITE(size) || !R_FINITE(mu) || size <= 0 || mu < 0) ML_ERR_return_NAN; diff -Nru jags-3.4.0/src/jrmath/rnchisq.c jags-4.0.0/src/jrmath/rnchisq.c --- jags-3.4.0/src/jrmath/rnchisq.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/rnchisq.c 2015-02-22 20:15:27.000000000 +0000 @@ -56,7 +56,7 @@ #include "nmath.h" -double rnchisq(double df, double lambda, RNG *rng) +double rnchisq(double df, double lambda, JRNG *rng) { if (!R_FINITE(df) || !R_FINITE(lambda) || df < 0. || lambda < 0.) ML_ERR_return_NAN; diff -Nru jags-3.4.0/src/jrmath/rnorm.c jags-4.0.0/src/jrmath/rnorm.c --- jags-3.4.0/src/jrmath/rnorm.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/rnorm.c 2015-02-22 20:11:47.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -30,7 +30,7 @@ #include "nmath.h" -double rnorm(double mu, double sigma, RNG *rng) +double rnorm(double mu, double sigma, JRNG *rng) { if (ISNAN(mu) || !R_FINITE(sigma) || sigma < 0.) ML_ERR_return_NAN; diff -Nru jags-3.4.0/src/jrmath/rpois.c jags-4.0.0/src/jrmath/rpois.c --- jags-3.4.0/src/jrmath/rpois.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/rpois.c 2015-02-22 20:14:54.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-2001 The R Development Core Team + * Copyright (C) 2000-2011 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -51,7 +51,7 @@ #define repeat for(;;) -double rpois(double mu, RNG *rng) +double rpois(double mu, JRNG *rng) { /* Factorial Table (0:9)! */ const static double fact[10] = diff -Nru jags-3.4.0/src/jrmath/rt.c jags-4.0.0/src/jrmath/rt.c --- jags-3.4.0/src/jrmath/rt.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/rt.c 2015-02-22 22:31:08.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000-2008 The R Development Core Team + * Copyright (C) 2000-2008 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -28,7 +28,7 @@ #include "nmath.h" -double rt(double df, RNG *rng) +double rt(double df, JRNG *rng) { if (ISNAN(df) || df <= 0.0) ML_ERR_return_NAN; @@ -36,7 +36,7 @@ return norm_rand(rng); else { /* Some compilers (including MW6) evaluated this from right to left - return norm_rand(rng) / sqrt(rchisq(df) / df); */ + return norm_rand(rng) / sqrt(rchisq(df, rng) / df); */ double num = norm_rand(rng); return num / sqrt(rchisq(df, rng) / df); } diff -Nru jags-3.4.0/src/jrmath/runif.c jags-4.0.0/src/jrmath/runif.c --- jags-3.4.0/src/jrmath/runif.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/runif.c 2015-02-22 20:14:44.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,7 +23,7 @@ */ #include "nmath.h" -double runif(double a, double b, RNG *rng) +double runif(double a, double b, JRNG *rng) { if (!R_FINITE(a) || !R_FINITE(b) || b < a) ML_ERR_return_NAN; diff -Nru jags-3.4.0/src/jrmath/rweibull.c jags-4.0.0/src/jrmath/rweibull.c --- jags-3.4.0/src/jrmath/rweibull.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/rweibull.c 2015-02-22 20:11:27.000000000 +0000 @@ -1,7 +1,7 @@ /* * Mathlib : A C Library of Special Functions * Copyright (C) 1998 Ross Ihaka - * Copyright (C) 2000 The R Development Core Team + * Copyright (C) 2000 The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,7 +24,7 @@ #include "nmath.h" -double rweibull(double shape, double scale, RNG *rng) +double rweibull(double shape, double scale, JRNG *rng) { if (!R_FINITE(shape) || !R_FINITE(scale) || shape <= 0. || scale <= 0.) { if(scale == 0.) return 0.; diff -Nru jags-3.4.0/src/jrmath/sign.c jags-4.0.0/src/jrmath/sign.c --- jags-3.4.0/src/jrmath/sign.c 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/jrmath/sign.c 2015-02-22 20:05:50.000000000 +0000 @@ -0,0 +1,40 @@ +/* + * Mathlib : A C Library of Special Functions + * Copyright (C) 1998 Ross Ihaka + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, a copy is available at + * http://www.r-project.org/Licenses/ + * + * SYNOPSIS + * + * #include + * double sign(double x); + * + * DESCRIPTION + * + * This function computes the 'signum(.)' function: + * + * sign(x) = 1 if x > 0 + * sign(x) = 0 if x == 0 + * sign(x) = -1 if x < 0 + */ + +#include "nmath.h" + +double sign(double x) +{ + if (ISNAN(x)) + return x; + return ((x > 0) ? 1 : ((x == 0)? 0 : -1)); +} diff -Nru jags-3.4.0/src/jrmath/stirlerr.c jags-4.0.0/src/jrmath/stirlerr.c --- jags-3.4.0/src/jrmath/stirlerr.c 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/jrmath/stirlerr.c 2015-02-22 20:05:50.000000000 +0000 @@ -4,7 +4,7 @@ * October 23, 2000. * * Merge in to R: - * Copyright (C) 2000, The R Core Development Team + * Copyright (C) 2000, The R Core Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -30,7 +30,7 @@ * write lgamma!) * * Merge in to R: - * Copyright (C) 2000, The R Core Development Team + * Copyright (C) 2000, The R Core Team * R has lgammafn, and lgamma is not part of ISO C */ diff -Nru jags-3.4.0/src/jrmath/toms708.c jags-4.0.0/src/jrmath/toms708.c --- jags-3.4.0/src/jrmath/toms708.c 2013-08-22 15:44:58.000000000 +0000 +++ jags-4.0.0/src/jrmath/toms708.c 2015-02-24 21:53:13.000000000 +0000 @@ -1,3 +1,5 @@ +// -*- mode: C ; delete-old-versions: never -*- + /* Based on C translation of ACM TOMS 708 Please do not change this, e.g. to use R's versions of the ancillary routines, without investigating the error analysis as we @@ -10,19 +12,24 @@ #undef max #define max(a,b) ((a > b)?a:b) -#include #include "nmath.h" #include "dpq.h" +/* after config.h to avoid warning on Solaris */ +#include /* is included by above, with suitable defines in glibc systems to make log1p and expm1 declared */ /**----------- DEBUGGING ------------- * * make CFLAGS='-DDEBUG_bratio ...' - *MM: (cd ~/R/D/r-devel/Linux-inst/src/nmath ; gcc -std=gnu99 -I. -I../../src/include -I../../../R/src/include -I/usr/local/include -DHAVE_CONFIG_H -DDEBUG_bratio -g -c ../../../R/src/nmath/toms708.c -o toms708.o) + *MM (w/ Debug, w/o Optimization): + (cd `R-devel-pbeta-dbg RHOME`/src/nmath ; gcc -I. -I../../src/include -I../../../R/src/include -DHAVE_CONFIG_H -fopenmp -g -pedantic -Wall --std=gnu99 -DDEBUG_q -DDEBUG_bratio -Wcast-align -Wclobbered -c ../../../R/src/nmath/toms708.c -o toms708.o; cd ../..; make R) */ #ifdef DEBUG_bratio -# include +# include +# define R_ifDEBUG_printf(...) JREprintf(__VA_ARGS__) +#else +# define R_ifDEBUG_printf(...) #endif /* MM added R_D_LExp, so redefine here in terms of rexpm1 */ @@ -31,26 +38,26 @@ static double bfrac(double, double, double, double, double, double, int log_p); -static void bgrat(double, double, double, double, double *, double, int *); -static void grat1(double, double, double, double *, double *, double); +static void bgrat(double, double, double, double, double *, double, int *, Rboolean log_w); +static double grat_r(double a, double x, double r, double eps); static double apser(double, double, double, double); static double bpser(double, double, double, double, int log_p); static double basym(double, double, double, double, int log_p); static double fpser(double, double, double, double, int log_p); -static double bup(double, double, double, double, int, double); +static double bup(double, double, double, double, int, double, int give_log); static double exparg(int); static double psi(double); static double gam1(double); static double gamln1(double); static double betaln(double, double); static double algdiv(double, double); -static double brcmp1(int, double, double, double, double); +static double brcmp1(int, double, double, double, double, int give_log); static double brcomp(double, double, double, double, int log_p); static double rlog1(double); static double bcorr(double, double); static double gamln(double); static double alnrel(double); -static double esum(int, double); +static double esum(int, double, int give_log); static double erf__(double); static double rexpm1(double); static double erfc1(int, double); @@ -125,10 +132,8 @@ if (fabs(z) > eps * 3.0) { *ierr = 5; return; } -#ifdef DEBUG_bratio - REprintf("bratio(a=%g, b=%g, x=%g, y=%g, .., log_p=%d): ", a,b,x,y, log_p); -#endif - + R_ifDEBUG_printf("bratio(a=%g, b=%g, x=%9g, y=%9g, .., log_p=%d): ", + a,b,x,y, log_p); *ierr = 0; if (x == 0.0) goto L200; if (y == 0.0) goto L210; @@ -137,16 +142,24 @@ if (b == 0.0) goto L201; eps = max(eps, 1e-15); - if (max(a,b) < eps * .001) { /* procedure for a and b < 0.001 * eps */ - /* L230: */ + Rboolean a_lt_b = (a < b); + if (/* max(a,b) */ (a_lt_b ? b : a) < eps * .001) { /* procedure for a and b < 0.001 * eps */ + // L230: -- result *independent* of x (!) + // *w = a/(a+b) and w1 = b/(a+b) : if(log_p) { - z = log(a + b); - *w = log(b) - z; - *w1 = log(a) - z; + if(a_lt_b) { + *w = log1p(-a/(a+b)); // notably if a << b + *w1 = log ( a/(a+b)); + } else { // b <= a + *w = log ( b/(a+b)); + *w1 = log1p(-b/(a+b)); + } } else { *w = b / (a + b); *w1 = a / (a + b); } + + R_ifDEBUG_printf("a & b very small -> simple ratios (%g,%g)\n", *w,*w1); return; } @@ -168,66 +181,75 @@ } /* now have x0 <= 1/2 <= y0 (still x0+y0 == 1) */ -#ifdef DEBUG_bratio - REprintf(" min(a,b) <= 1 : do_swap = %d; ", do_swap); -#endif + R_ifDEBUG_printf(" min(a,b) <= 1, do_swap=%d;", do_swap); if (b0 < min(eps, eps * a0)) { /* L80: */ *w = fpser(a0, b0, x0, eps, log_p); *w1 = log_p ? R_Log1_Exp(*w) : 0.5 - *w + 0.5; -#ifdef DEBUG_bratio - REprintf(" b0 small -> w := fpser(*) = %g\n", *w); -#endif - goto L_end_after_log; + R_ifDEBUG_printf(" b0 small -> w := fpser(*) = %.15g\n", *w); + goto L_end; } if (a0 < min(eps, eps * b0) && b0 * x0 <= 1.0) { /* L90: */ *w1 = apser(a0, b0, x0, eps); -#ifdef DEBUG_bratio - REprintf(" a0 small -> w1 := apser(*) = %g\n", *w1); -#endif + R_ifDEBUG_printf(" a0 small -> w1 := apser(*) = %.15g\n", *w1); goto L_end_from_w1; } + Rboolean did_bup = FALSE; if (max(a0,b0) > 1.0) { /* L20: min(a,b) <= 1 < max(a,b) */ -#ifdef DEBUG_bratio - REprintf(" L20: min(a,b) <= 1 < max(a,b); "); -#endif - if (b0 <= 1.0) goto L100; + R_ifDEBUG_printf("\n L20: min(a,b) <= 1 < max(a,b); "); + if (b0 <= 1.0) goto L_w_bpser; - if (x0 >= 0.29) /* was 0.3, PR#13786 */ goto L110; + if (x0 >= 0.29) /* was 0.3, PR#13786 */ goto L_w1_bpser; + + if (x0 < 0.1 && pow(x0*b0, a0) <= 0.7) goto L_w_bpser; - if (x0 < 0.1) { - if (pow(x0*b0, a0) <= 0.7) { - goto L100; - } - } if (b0 > 15.0) { *w1 = 0.; goto L131; } } else { /* a, b <= 1 */ -#ifdef DEBUG_bratio - REprintf(" both a,b <= 1; "); -#endif - if (a0 >= min(0.2, b0)) goto L100; + R_ifDEBUG_printf("\n both a,b <= 1; "); + if (a0 >= min(0.2, b0)) goto L_w_bpser; - if (pow(x0, a0) <= 0.9) goto L100; + if (pow(x0, a0) <= 0.9) goto L_w_bpser; - if (x0 >= 0.3) goto L110; + if (x0 >= 0.3) goto L_w1_bpser; } n = 20; /* goto L130; */ - *w1 = bup(b0, a0, y0, x0, n, eps); -#ifdef DEBUG_bratio - REprintf(" ... n=20 and *w1 := bup(*) = %g; "); -#endif + *w1 = bup(b0, a0, y0, x0, n, eps, FALSE); did_bup = TRUE; + R_ifDEBUG_printf(" ... n=20 and *w1 := bup(*) = %.15g; ", *w1); b0 += n; L131: - bgrat(b0, a0, y0, x0, w1, 15*eps, &ierr1); - + R_ifDEBUG_printf(" L131: bgrat(*, w1=%.15g) ", *w1); + bgrat(b0, a0, y0, x0, w1, 15*eps, &ierr1, FALSE); #ifdef DEBUG_bratio - REprintf(" L131: bgrat(*, w1) ==> w1 = %g\n", *w1); + JREprintf(" ==> new w1=%.15g", *w1); + if(ierr1) JREprintf(" ERROR(code=%d)\n", ierr1) ; else JREprintf("\n"); #endif + if(*w1 == 0 || (0 < *w1 && *w1 < 1e-310)) { // w1=0 or very close: + // "almost surely" from underflow, try more: [2013-03-04] +// FIXME: it is even better to do this in bgrat *directly* at least for the case +// !did_bup, i.e., where *w1 = (0 or -Inf) on entry + R_ifDEBUG_printf(" denormalized or underflow (?) -> retrying: "); + if(did_bup) { // re-do that part on log scale: + *w1 = bup(b0-n, a0, y0, x0, n, eps, TRUE); + } + else *w1 = ML_NEGINF; // = 0 on log-scale + bgrat(b0, a0, y0, x0, w1, 15*eps, &ierr1, TRUE); + if(ierr1) *ierr = 8; +#ifdef DEBUG_bratio + JREprintf(" ==> new log(w1)=%.15g", *w1); + if(ierr1) JREprintf(" Error(code=%d)\n", ierr1) ; else JREprintf("\n"); +#endif + goto L_end_from_w1_log; + } + // else + if(ierr1) *ierr = 8; + if(*w1 < 0) + MATHLIB_WARNING4("bratio(a=%g, b=%g, x=%g): bgrat() -> w1 = %g", + a,b,x, *w1); goto L_end_from_w1; } else { /* L30: -------------------- both a, b > 1 {a0 > 1 & b0 > 1} ---*/ @@ -245,76 +267,59 @@ SET_0_noswap; } -#ifdef DEBUG_bratio - REprintf(" L30: both a, b > 1; |lambda| = %g, do_swap = %d\n", - lambda, do_swap); -#endif + R_ifDEBUG_printf(" L30: both a, b > 1; |lambda| = %#g, do_swap = %d\n", + lambda, do_swap); if (b0 < 40.0) { -#ifdef DEBUG_bratio - REprintf(" b0 < 40; "); -#endif - if (b0 * x0 <= 0.7) - goto L100; + R_ifDEBUG_printf(" b0 < 40;"); + if (b0 * x0 <= 0.7 + || (log_p && lambda > 650.)) /* << added 2010-03-18 */ + goto L_w_bpser; else goto L140; } else if (a0 > b0) { /* ---- a0 > b0 >= 40 ---- */ -#ifdef DEBUG_bratio - REprintf(" a0 > b0 >= 40; "); -#endif - if (b0 <= 100.0) goto L120; - if (lambda > b0 * 0.03) goto L120; + R_ifDEBUG_printf(" a0 > b0 >= 40;"); + if (b0 <= 100.0 || lambda > b0 * 0.03) + goto L_bfrac; } else if (a0 <= 100.0) { -#ifdef DEBUG_bratio - REprintf(" a0 <= 100; a0 <= b0 >= 40; "); -#endif - goto L120; + R_ifDEBUG_printf(" a0 <= 100; a0 <= b0 >= 40;"); + goto L_bfrac; } else if (lambda > a0 * 0.03) { -#ifdef DEBUG_bratio - REprintf(" b0 >= a0 > 100; lambda > a0 * 0.03 "); -#endif - goto L120; + R_ifDEBUG_printf(" b0 >= a0 > 100; lambda > a0 * 0.03 "); + goto L_bfrac; } /* else if none of the above L180: */ *w = basym(a0, b0, lambda, eps * 100.0, log_p); *w1 = log_p ? R_Log1_Exp(*w) : 0.5 - *w + 0.5; -#ifdef DEBUG_bratio - REprintf(" b0 >= a0 > 100; lambda <= a0 * 0.03: *w := basym(*) = %g\n", - *w); -#endif - goto L_end_after_log; + R_ifDEBUG_printf(" b0 >= a0 > 100; lambda <= a0 * 0.03: *w:= basym(*) =%.15g\n", + *w); + goto L_end; } /* else: a, b > 1 */ /* EVALUATION OF THE APPROPRIATE ALGORITHM */ -L100: +L_w_bpser: // was L100 *w = bpser(a0, b0, x0, eps, log_p); *w1 = log_p ? R_Log1_Exp(*w) : 0.5 - *w + 0.5; -#ifdef DEBUG_bratio - REprintf(" L100: *w := bpser(*) = %g\n", *w); -#endif - goto L_end_after_log; + R_ifDEBUG_printf(" L_w_bpser: *w := bpser(*) = %.15g\n", *w); + goto L_end; -L110: +L_w1_bpser: // was L110 *w1 = bpser(b0, a0, y0, eps, log_p); *w = log_p ? R_Log1_Exp(*w1) : 0.5 - *w1 + 0.5; -#ifdef DEBUG_bratio - REprintf(" L110: *w1 := bpser(*) = %g\n", *w1); -#endif - goto L_end_after_log; + R_ifDEBUG_printf(" L_w1_bpser: *w1 := bpser(*) = %.15g\n", *w1); + goto L_end; -L120: +L_bfrac: *w = bfrac(a0, b0, x0, y0, lambda, eps * 15.0, log_p); *w1 = log_p ? R_Log1_Exp(*w) : 0.5 - *w + 0.5; -#ifdef DEBUG_bratio - REprintf(" L120: *w := bfrac(*) = %g\n", *w); -#endif - goto L_end_after_log; + R_ifDEBUG_printf(" L_bfrac: *w := bfrac(*) = %g\n", *w); + goto L_end; L140: /* b0 := fractional_part( b0 ) in (0, 1] */ @@ -324,31 +329,33 @@ --n; b0 = 1.; } - *w = bup(b0, a0, y0, x0, n, eps); + *w = bup(b0, a0, y0, x0, n, eps, FALSE); -#ifdef DEBUG_bratio - REprintf(" L140: *w := bup(b0=%g, *) = %g; ", b0, *w); -#endif + R_ifDEBUG_printf(" L140: *w := bup(b0=%g,..) = %.15g; ", b0, *w); + if(*w < DBL_MIN && log_p) { /* do not believe it; try bpser() : */ + /*revert: */ b0 += n; + /* which is only valid if b0 <= 1 || b0*x0 <= 0.7 */ + goto L_w_bpser; + } if (x0 <= 0.7) { /* log_p : TODO: w = bup(.) + bpser(.) -- not so easy to use log-scale */ *w += bpser(a0, b0, x0, eps, /* log_p = */ FALSE); -#ifdef DEBUG_bratio - REprintf(" x0 <= 0.7: *w := *w + bpser(*) = %g\n", *w); -#endif + R_ifDEBUG_printf(" x0 <= 0.7: *w := *w + bpser(*) = %.15g\n", *w); goto L_end_from_w; } /* L150: */ if (a0 <= 15.0) { n = 20; - *w += bup(a0, b0, x0, y0, n, eps); -#ifdef DEBUG_bratio - REprintf("\n a0 <= 15: *w := *w + bup(*) = %g;", *w); -#endif + *w += bup(a0, b0, x0, y0, n, eps, FALSE); + R_ifDEBUG_printf("\n a0 <= 15: *w := *w + bup(*) = %.15g;", *w); a0 += n; } - bgrat(a0, b0, x0, y0, w, 15*eps, &ierr1); + R_ifDEBUG_printf(" bgrat(*, w=%.15g) ", *w); + bgrat(a0, b0, x0, y0, w, 15*eps, &ierr1, FALSE); + if(ierr1) *ierr = 8; #ifdef DEBUG_bratio - REprintf(" bgrat(*) ==> *w = %g\n", *w); + JREprintf("==> new w=%.15g", *w); + if(ierr1) JREprintf(" Error(code=%d)\n", ierr1) ; else JREprintf("\n"); #endif goto L_end_from_w; @@ -357,17 +364,13 @@ L200: if (a == 0.0) { *ierr = 6; return; } -L201: - *w = R_D__0; - *w1 = R_D__1; - return; + // else: +L201: *w = R_D__0; *w1 = R_D__1; return; L210: if (b == 0.0) { *ierr = 7; return; } -L211: - *w = R_D__1; - *w1 = R_D__0; - return; + // else: +L211: *w = R_D__1; *w1 = R_D__0; return; L_end_from_w: if(log_p) { @@ -376,7 +379,7 @@ } else { *w1 = 0.5 - *w + 0.5; } - goto L_end_after_log; + goto L_end; L_end_from_w1: if(log_p) { @@ -385,8 +388,20 @@ } else { *w = 0.5 - *w1 + 0.5; } + goto L_end; -L_end_after_log: +L_end_from_w1_log: + // *w1 = log(w1) already; w = 1 - w1 ==> log(w) = log(1 - w1) = log(1 - exp(*w1)) + if(log_p) { + *w = R_Log1_Exp(*w1); + } else { + *w = /* 1 - exp(*w1) */ -expm1(*w1); + *w1 = exp(*w1); + } + goto L_end; + + +L_end: if (do_swap) { /* swap */ double t = *w; *w = *w1; *w1 = t; } @@ -531,7 +546,7 @@ } else { /* ------ a0 < 1 < b0 < 8 ------ */ u = gamln1(a0); - m = b0 - 1.0; + m = (int)(b0 - 1.0); if (m >= 1) { c = 1.0; for (i = 1; i <= m; ++i) { @@ -542,7 +557,7 @@ } z = a * log(x) - u; - b0 += -1.0; + b0 += -1.0; // => b0 in (0, 7) apb = a0 + b0; if (apb > 1.0) { u = a0 + b0 - 1.; @@ -568,8 +583,9 @@ ans = a0 / a * exp(z); } } - - if (!log_p && (ans == 0.0 || a <= eps * 0.1)) { + R_ifDEBUG_printf(" bpser(a=%g, b=%g, x=%g, log=%d): prelim.ans = %.14g;\n", + a,b,x, log_p, ans); + if (ans == R_D__0 || (!log_p && a <= eps * 0.1)) { return ans; } @@ -586,16 +602,28 @@ c *= (0.5 - b / n + 0.5) * x; w = c / (a + n); sum += w; - } while (fabs(w) > tol); - - if(log_p) - ans += log1p(a * sum); - else + } while (n < 1e7 && fabs(w) > tol); + if(fabs(w) > tol) { // the series did not converge (in time) + // warn only when the result seems to matter: + if(( log_p && !(a*sum > -1. && fabs(log1p(a * sum)) < eps*fabs(ans))) || + (!log_p && fabs(a*sum + 1) != 1.)) + MATHLIB_WARNING5( + " bpser(a=%g, b=%g, x=%g,...) did not converge (n=1e7, |w|/tol=%g > 1; A=%g)", + a,b,x, fabs(w)/tol, ans); + } + R_ifDEBUG_printf(" -> n=%.0f iterations, |w|=%g %s %g=tol:=eps/a ==> a*sum=%g\n", + n, fabs(w), (fabs(w) > tol) ? ">!!>" : "<=", + tol, a*sum); + if(log_p) { + if (a*sum > -1.0) ans += log1p(a * sum); + else ans = ML_NEGINF; + } else ans *= a * sum + 1.0; return ans; } /* bpser */ -static double bup(double a, double b, double x, double y, int n, double eps) +static double bup(double a, double b, double x, double y, int n, double eps, + int give_log) { /* ----------------------------------------------------------------------- */ /* EVALUATION OF I_x(A,B) - I_x(A+N,B) WHERE N IS A POSITIVE INT. */ @@ -606,21 +634,18 @@ double ret_val; /* Local variables */ - int i, k, mu, nm1; - double d, l, r, t, w; - double ap1, apb; + int i, k, mu; + double d, l, r, t; -/* OBTAIN THE SCALING FACTOR EXP(-MU) AND */ -/* EXP(MU)*(X^A * Y^B / BETA(A,B))/A */ +// Obtain the scaling factor exp(-mu) and exp(mu)*(x^a * y^b / beta(a,b))/a - apb = a + b; - ap1 = a + 1.0; + double apb = a + b, + ap1 = a + 1.0; if (n > 1 && a >= 1. && apb >= ap1 * 1.1) { - mu = fabs(exparg(1)); + mu = (int)fabs(exparg(1)); k = (int) exparg(0); - if (k < mu) { + if (mu > k) mu = k; - } t = (double) mu; d = exp(-t); } @@ -630,12 +655,15 @@ } /* L10: */ - ret_val = brcmp1(mu, a, b, x, y) / a; - if (n == 1 || ret_val == 0.0) { + ret_val = give_log + ? brcmp1(mu, a, b, x, y, TRUE) - log(a) + : brcmp1(mu, a, b, x, y, FALSE) / a; + if (n == 1 || + (give_log && ret_val == ML_NEGINF) || (!give_log && ret_val == 0.)) return ret_val; - } - nm1 = n - 1; - w = d; + + int nm1 = n - 1; + double w = d; /* LET K BE THE INDEX OF THE MAXIMUM TERM */ @@ -664,27 +692,26 @@ l = (double) (i - 1); d = (apb + l) / (ap1 + l) * x * d; w += d; -/* L31: */ - } - if (k == nm1) { - goto L50; + /* L31: */ } - -/* ADD THE REMAINING TERMS OF THE SERIES */ - -L40: - for (i = k+1; i <= nm1; ++i) { - l = (double) (i - 1); - d = (apb + l) / (ap1 + l) * x * d; - w += d; - if (d <= eps * w) /* relativ convergence (eps) */ - break; + if (k != nm1) { + /* ADD THE REMAINING TERMS OF THE SERIES */ + L40: + for (i = k+1; i <= nm1; ++i) { + l = (double) (i - 1); + d = (apb + l) / (ap1 + l) * x * d; + w += d; + if (d <= eps * w) /* relativ convergence (eps) */ + break; + } } -/* TERMINATE THE PROCEDURE */ + // L50: TERMINATE THE PROCEDURE + if(give_log) { + ret_val += log(w); + } else + ret_val *= w; -L50: - ret_val *= w; return ret_val; } /* bup */ @@ -765,509 +792,497 @@ static double const__ = .398942280401433; /* == 1/sqrt(2*pi); */ /* R has M_1_SQRT_2PI , and M_LN_SQRT_2PI = ln(sqrt(2*pi)) = 0.918938.. */ - int i, n; - double c, e, h, t, u, v, z, a0, b0, x0, y0, apb, lnx, lny; - double lambda; - + double c, e, u, v, z, a0, b0, apb; if (x == 0.0 || y == 0.0) { return R_D__0; } a0 = min(a, b); - if (a0 >= 8.0) { - goto L100; - } - - if (x <= .375) { - lnx = log(x); - lny = alnrel(-x); - } - else { - if (y > .375) { + if (a0 < 8.0) { + double lnx, lny; + if (x <= .375) { lnx = log(x); - lny = log(y); - } else { - lnx = alnrel(-y); - lny = log(y); + lny = alnrel(-x); + } + else { + if (y > .375) { + lnx = log(x); + lny = log(y); + } else { + lnx = alnrel(-y); + lny = log(y); + } } - } - z = a * lnx + b * lny; - if (a0 >= 1.) { - z -= betaln(a, b); - return R_D_exp(z); - } + z = a * lnx + b * lny; + if (a0 >= 1.) { + z -= betaln(a, b); + return R_D_exp(z); + } /* ----------------------------------------------------------------------- */ /* PROCEDURE FOR a < 1 OR b < 1 */ /* ----------------------------------------------------------------------- */ - b0 = max(a, b); - if (b0 >= 8.0) { /* L80: */ - u = gamln1(a0) + algdiv(a0, b0); + b0 = max(a, b); + if (b0 >= 8.0) { /* L80: */ + u = gamln1(a0) + algdiv(a0, b0); - return (log_p ? log(a0) + (z - u) : a0 * exp(z - u)); - } - /* else : */ + return (log_p ? log(a0) + (z - u) : a0 * exp(z - u)); + } + /* else : */ + + if (b0 <= 1.0) { /* algorithm for max(a,b) = b0 <= 1 */ - if (b0 <= 1.0) { /* algorithm for max(a,b) = b0 <= 1 */ + double e_z = R_D_exp(z); - double e_z = R_D_exp(z); + if (!log_p && e_z == 0.0) /* exp() underflow */ + return 0.; + + apb = a + b; + if (apb > 1.0) { + u = a + b - 1.; + z = (gam1(u) + 1.0) / apb; + } else { + z = gam1(apb) + 1.0; + } - if (!log_p && e_z == 0.0) /* exp() underflow */ - return 0.; + c = (gam1(a) + 1.0) * (gam1(b) + 1.0) / z; + /* FIXME? log(a0*c)= log(a0)+ log(c) and that is improvable */ + return (log_p + ? e_z + log(a0 * c) - log1p(a0/b0) + : e_z * (a0 * c) / (a0 / b0 + 1.0)); + } - apb = a + b; + /* else : ALGORITHM FOR 1 < b0 < 8 */ + + u = gamln1(a0); + n = (int)(b0 - 1.0); + if (n >= 1) { + c = 1.0; + for (i = 1; i <= n; ++i) { + b0 += -1.0; + c *= b0 / (a0 + b0); + } + u = log(c) + u; + } + z -= u; + b0 += -1.0; + apb = a0 + b0; + double t; if (apb > 1.0) { - u = a + b - 1.; - z = (gam1(u) + 1.0) / apb; + u = a0 + b0 - 1.; + t = (gam1(u) + 1.0) / apb; } else { - z = gam1(apb) + 1.0; + t = gam1(apb) + 1.0; } - c = (gam1(a) + 1.0) * (gam1(b) + 1.0) / z; - /* FIXME? log(a0*c)= log(a0)+ log(c) and that is improvable */ return (log_p - ? e_z + log(a0 * c) - log1p(a0/b0) - : e_z * (a0 * c) / (a0 / b0 + 1.0)); - } - /* else : */ - -/* ALGORITHM FOR 1 < b0 < 8 */ + ? log(a0) + z + log1p(gam1(b0)) - log(t) + : a0 * exp(z) * (gam1(b0) + 1.0) / t); - u = gamln1(a0); - n = b0 - 1.0; - if (n >= 1) { - c = 1.0; - for (i = 1; i <= n; ++i) { - b0 += -1.0; - c *= b0 / (a0 + b0); - } - u = log(c) + u; - } - z -= u; - b0 += -1.0; - apb = a0 + b0; - if (apb > 1.0) { - u = a0 + b0 - 1.; - t = (gam1(u) + 1.0) / apb; } else { - t = gam1(apb) + 1.0; - } - - return (log_p - ? log(a0) + z + log1p(gam1(b0)) - log(t) - : a0 * exp(z) * (gam1(b0) + 1.0) / t); - - - /* ----------------------------------------------------------------------- */ /* PROCEDURE FOR A >= 8 AND B >= 8 */ /* ----------------------------------------------------------------------- */ -L100: - if (a <= b) { - h = a / b; - x0 = h / (h + 1.0); - y0 = 1.0 / (h + 1.0); - lambda = a - (a + b) * x; - } else { - h = b / a; - x0 = 1.0 / (h + 1.0); - y0 = h / (h + 1.0); - lambda = (a + b) * y - b; - } + double h, x0, y0, lambda; + if (a <= b) { + h = a / b; + x0 = h / (h + 1.0); + y0 = 1.0 / (h + 1.0); + lambda = a - (a + b) * x; + } else { + h = b / a; + x0 = 1.0 / (h + 1.0); + y0 = h / (h + 1.0); + lambda = (a + b) * y - b; + } - e = -lambda / a; - if (fabs(e) > .6) - u = e - log(x / x0); - else - u = rlog1(e); + e = -lambda / a; + if (fabs(e) > .6) + u = e - log(x / x0); + else + u = rlog1(e); - e = lambda / b; - if (fabs(e) <= .6) - v = rlog1(e); - else - v = e - log(y / y0); + e = lambda / b; + if (fabs(e) <= .6) + v = rlog1(e); + else + v = e - log(y / y0); - z = log_p ? -(a * u + b * v) : exp(-(a * u + b * v)); + z = log_p ? -(a * u + b * v) : exp(-(a * u + b * v)); - return(log_p - ? -M_LN_SQRT_2PI + .5*log(b * x0) + z - bcorr(a,b) - : const__ * sqrt(b * x0) * z * exp(-bcorr(a, b))); + return(log_p + ? -M_LN_SQRT_2PI + .5*log(b * x0) + z - bcorr(a,b) + : const__ * sqrt(b * x0) * z * exp(-bcorr(a, b))); + } } /* brcomp */ -static double brcmp1(int mu, double a, double b, double x, double y) +// called only once from bup(), as r = brcmp1(mu, a, b, x, y, FALSE) / a; +// ----- +static double brcmp1(int mu, double a, double b, double x, double y, int give_log) { /* ----------------------------------------------------------------------- - * EVALUATION OF EXP(MU) * (X^A * Y^B / BETA(A,B)) + * Evaluation of exp(mu) * x^a * y^b / beta(a,b) * ----------------------------------------------------------------------- */ static double const__ = .398942280401433; /* == 1/sqrt(2*pi); */ /* R has M_1_SQRT_2PI */ - /* System generated locals */ - double ret_val, r1; - /* Local variables */ - double c, e, h; - int i, n; - double t, u, v, z, a0, b0, x0, y0, apb, lnx, lny; - double lambda; + double c, t, u, v, z, a0, b0, apb; a0 = min(a,b); - if (a0 >= 8.0) { - goto L100; - } - - if (x > .375) { - goto L10; - } - lnx = log(x); - lny = alnrel(-x); - goto L20; -L10: - if (y > .375) { - goto L11; - } - lnx = alnrel(-y); - lny = log(y); - goto L20; -L11: - lnx = log(x); - lny = log(y); - -L20: - z = a * lnx + b * lny; - if (a0 < 1.0) { - goto L30; - } - z -= betaln(a, b); - ret_val = esum(mu, z); - return ret_val; -/* ----------------------------------------------------------------------- */ -/* PROCEDURE FOR A < 1 OR B < 1 */ -/* ----------------------------------------------------------------------- */ -L30: - b0 = max(a,b); - if (b0 >= 8.0) { - goto L80; - } - if (b0 > 1.0) { - goto L60; - } - -/* ALGORITHM FOR b0 <= 1 */ - - ret_val = esum(mu, z); - if (ret_val == 0.0) { - return ret_val; - } - - apb = a + b; - if (apb > 1.0) { - goto L40; - } - z = gam1(apb) + 1.0; - goto L50; -L40: - u = a + b - 1.; - z = (gam1(u) + 1.0) / apb; - -L50: - c = (gam1(a) + 1.0) * (gam1(b) + 1.0) / z; - ret_val = ret_val * (a0 * c) / (a0 / b0 + 1.0); - return ret_val; - -/* ALGORITHM FOR 1 < b0 < 8 */ + if (a0 < 8.0) { + double lnx, lny; + if (x <= .375) { + lnx = log(x); + lny = alnrel(-x); + } else if (y > .375) { + // L11: + lnx = log(x); + lny = log(y); + } else { + lnx = alnrel(-y); + lny = log(y); + } -L60: - u = gamln1(a0); - n = b0 - 1.0; - if (n < 1) { - goto L70; - } - c = 1.0; - for (i = 1; i <= n; ++i) { + // L20: + z = a * lnx + b * lny; + if (a0 >= 1.0) { + z -= betaln(a, b); + return esum(mu, z, give_log); + } + // else : + /* ----------------------------------------------------------------------- */ + /* PROCEDURE FOR A < 1 OR B < 1 */ + /* ----------------------------------------------------------------------- */ + // L30: + b0 = max(a,b); + if (b0 >= 8.0) { + /* L80: ALGORITHM FOR b0 >= 8 */ + u = gamln1(a0) + algdiv(a0, b0); + R_ifDEBUG_printf(" brcmp1(mu,a,b,*): a0 < 1, b0 >= 8; z=%.15g\n", z); + return give_log + ? log(a0) + esum(mu, z - u, TRUE) + : a0 * esum(mu, z - u, FALSE); + + } else if (b0 <= 1.0) { + // a0 < 1, b0 <= 1 + double ans = esum(mu, z, give_log); + if (ans == (give_log ? ML_NEGINF : 0.)) + return ans; + + apb = a + b; + if (apb > 1.0) { + // L40: + u = a + b - 1.; + z = (gam1(u) + 1.0) / apb; + } else { + z = gam1(apb) + 1.0; + } + // L50: + c = give_log + ? log1p(gam1(a)) + log1p(gam1(b)) - log(z) + : (gam1(a) + 1.0) * (gam1(b) + 1.0) / z; + R_ifDEBUG_printf(" brcmp1(mu,a,b,*): a0 < 1, b0 <= 1; c=%.15g\n", c); + return give_log + ? ans + log(a0) + c - log1p(a0 / b0) + : ans * (a0 * c) / (a0 / b0 + 1.0); + } + // else: algorithm for a0 < 1 < b0 < 8 + // L60: + u = gamln1(a0); + int n = (int)(b0 - 1.0); + if (n >= 1) { + c = 1.0; + for (int i = 1; i <= n; ++i) { + b0 += -1.0; + c *= b0 / (a0 + b0); + /* L61: */ + } + u += log(c); // TODO?: log(c) = log( prod(...) ) = sum( log(...) ) + } + // L70: + z -= u; b0 += -1.0; - c *= b0 / (a0 + b0); -/* L61: */ - } - u = log(c) + u; - -L70: - z -= u; - b0 += -1.0; - apb = a0 + b0; - if (apb > 1.0) { - goto L71; - } - t = gam1(apb) + 1.0; - goto L72; -L71: - u = a0 + b0 - 1.; - t = (gam1(u) + 1.0) / apb; -L72: - ret_val = a0 * esum(mu, z) * (gam1(b0) + 1.0) / t; - return ret_val; + apb = a0 + b0; + if (apb > 1.) { + // L71: + t = (gam1(apb - 1.) + 1.0) / apb; + } else { + t = gam1(apb) + 1.0; + } + R_ifDEBUG_printf(" brcmp1(mu,a,b,*): a0 < 1 < b0 < 8; t=%.15g\n", t); + // L72: + return give_log + ? log(a0)+ esum(mu, z, TRUE) + log1p(gam1(b0)) - log(t) // TODO? log(t) = log1p(..) + : a0 * esum(mu, z, FALSE) * (gam1(b0) + 1.0) / t; -/* ALGORITHM FOR b0 >= 8 */ + } else { -L80: - u = gamln1(a0) + algdiv(a0, b0); - ret_val = a0 * esum(mu, z - u); - return ret_val; /* ----------------------------------------------------------------------- */ /* PROCEDURE FOR A >= 8 AND B >= 8 */ /* ----------------------------------------------------------------------- */ -L100: - if (a > b) { - goto L101; - } - h = a / b; - x0 = h / (h + 1.0); - y0 = 1.0 / (h + 1.0); - lambda = a - (a + b) * x; - goto L110; -L101: - h = b / a; - x0 = 1.0 / (h + 1.0); - y0 = h / (h + 1.0); - lambda = (a + b) * y - b; - -L110: - e = -lambda / a; - if (fabs(e) > 0.6) { - goto L111; - } - u = rlog1(e); - goto L120; -L111: - u = e - log(x / x0); - -L120: - e = lambda / b; - if (fabs(e) > 0.6) { - goto L121; - } - v = rlog1(e); - goto L130; -L121: - v = e - log(y / y0); - -L130: - r1 = -(a * u + b * v); - z = esum(mu, r1); + // L100: + double h, x0, y0, lambda; + if (a > b) { + // L101: + h = b / a; + x0 = 1.0 / (h + 1.0);// => lx0 := log(x0) = 0 - log1p(h) + y0 = h / (h + 1.0); + lambda = (a + b) * y - b; + } else { + h = a / b; + x0 = h / (h + 1.0); // => lx0 := log(x0) = - log1p(1/h) + y0 = 1.0 / (h + 1.0); + lambda = a - (a + b) * x; + } + double lx0 = -log1p(b/a); // in both cases - return const__ * sqrt(b * x0) * z * exp(-bcorr(a, b)); + R_ifDEBUG_printf(" brcmp1(mu,a,b,*): a,b >= 8; x0=%.15g, lx0=log(x0)=%.15g\n", + x0, lx0); + // L110: + double e = -lambda / a; + if (fabs(e) > 0.6) { + // L111: + u = e - log(x / x0); + } else { + u = rlog1(e); + } + + // L120: + e = lambda / b; + if (fabs(e) > 0.6) { + // L121: + v = e - log(y / y0); + } else { + v = rlog1(e); + } + + // L130: + z = esum(mu, -(a * u + b * v), give_log); + return give_log + ? log(const__)+ (log(b) + lx0)/2. + z - bcorr(a, b) + : const__ * sqrt(b * x0) * z * exp(-bcorr(a, b)); + } } /* brcmp1 */ static void bgrat(double a, double b, double x, double y, double *w, - double eps, int *ierr) + double eps, int *ierr, Rboolean log_w) { /* ----------------------------------------------------------------------- * Asymptotic Expansion for I_x(a,b) when a is larger than b. -* The result of the expansion is added to w. +* Compute w := w + I_x(a,b) * It is assumed a >= 15 and b <= 1. * eps is the tolerance used. * ierr is a variable that reports the status of the results. +* +* if(log_w), *w itself must be in log-space; +* compute w := w + I_x(a,b) but return *w = log(w): +* *w := log(exp(*w) + I_x(a,b)) = logspace_add(*w, log( I_x(a,b) )) * ----------------------------------------------------------------------- */ - double c[30], d[30]; - int i, n, nm1; - double j, l, p, q, r, s, t, u, v, z, n2, t2, dj, cn, nu, bm1; - double lnx, sum, bp2n, coef; - - bm1 = b - 0.5 - 0.5; - nu = a + bm1 * 0.5; - if (y > 0.375) - lnx = log(x); - else - lnx = alnrel(-y); - - z = -nu * lnx; - if (b * z == 0.0) goto L_Error; /* should *never* happen */ - -/* COMPUTATION OF THE EXPANSION */ - -/* set r := exp(-z) * z^b / Gamma(b) */ - r = b * (gam1(b) + 1.0) * exp(b * log(z)); - - r = r * exp(a * lnx) * exp(bm1 * 0.5 * lnx); - u = algdiv(b, a) + b * log(nu); - u = r * exp(-u); - if (u == 0.0) { -#ifdef DEBUG_bratio - REprintf(" bgrat(*) *underflow* r = %g ", r); -#endif - goto L_Error; +#define n_terms_bgrat 30 + double c[n_terms_bgrat], d[n_terms_bgrat]; + double bm1 = b - 0.5 - 0.5, + nu = a + bm1 * 0.5, /* nu = a + (b-1)/2 =: T, in (9.1) of + * Didonato & Morris(1992), p.362 */ + lnx = (y > 0.375) ? log(x) : alnrel(-y), + z = -nu * lnx; // z =: u in (9.1) of D.&M.(1992) + + if (b * z == 0.0) { // should not happen, but does, e.g., + // for pbeta(1e-320, 1e-5, 0.5) i.e., _subnormal_ x, + // Warning ... bgrat(a=20.5, b=1e-05, x=1, y=9.99989e-321): .. + MATHLIB_WARNING4( + "bgrat(a=%g, b=%g, x=%g, y=%g): b*z == 0 underflow, hence inaccurate pbeta()", + a,b,x,y); + /* L_Error: THE EXPANSION CANNOT BE COMPUTED */ + *ierr = 1; return; } - grat1(b, z, r, &p, &q, eps); /* -> (p,q) {p + q = 1} */ - v = 0.25 / (nu * nu); - t2 = lnx * 0.25 * lnx; - l = *w / u; - j = q / r; - sum = j; - t = 1.0; - cn = 1.0; - n2 = 0.0; - for (n = 1; n <= 30; ++n) { - bp2n = b + n2; +/* COMPUTATION OF THE EXPANSION */ + double + /* r1 = b * (gam1(b) + 1.0) * exp(b * log(z)),// = b/gamma(b+1) z^b = z^b / gamma(b) + * set r := exp(-z) * z^b / gamma(b) ; + * gam1(b) = 1/gamma(b+1) - 1 , b in [-1/2, 3/2] */ + // exp(a*lnx) underflows for large (a * lnx); e.g. large a ==> using log_r := log(r): + // r = r1 * exp(a * lnx) * exp(bm1 * 0.5 * lnx); + // log(r)=log(b) + log1p(gam1(b)) + b * log(z) + (a * lnx) + (bm1 * 0.5 * lnx), + log_r = log(b) + log1p(gam1(b)) + b * log(z) + nu * lnx, + // FIXME work with log_u = log(u) also when log_p=FALSE (??) + // u is 'factored out' from the expansion {and multiplied back, at the end}: + log_u = log_r - (algdiv(b, a) + b * log(nu)),// algdiv(b,a) = log(gamma(a)/gamma(a+b)) + /* u = (log_p) ? log_r - u : exp(log_r-u); // =: M in (9.2) of {reference above} */ + /* u = algdiv(b, a) + b * log(nu);// algdiv(b,a) = log(gamma(a)/gamma(a+b)) */ + // u = (log_p) ? log_u : exp(log_u); // =: M in (9.2) of {reference above} + u = exp(log_u); + + if (log_u == ML_NEGINF) { + R_ifDEBUG_printf(" bgrat(*): underflow log_u = -Inf = log_r -u', log_r = %g ", + log_r); + /* L_Error: THE EXPANSION CANNOT BE COMPUTED */ *ierr = 2; return; + } + + Rboolean u_0 = (u == 0.); // underflow --> do work with log(u) == log_u ! + double l = // := *w/u .. but with care: such that it also works when u underflows to 0: + log_w + ? ((*w == ML_NEGINF) ? 0. : exp( *w - log_u)) + : ((*w == 0.) ? 0. : exp(log(*w) - log_u)); + + R_ifDEBUG_printf(" bgrat(a=%g, b=%g, x=%g, *)\n -> u=%g, l='w/u'=%g, ", + a,b,x, u, l); + double + q_r = grat_r(b, z, log_r, eps), // = q/r of former grat1(b,z, r, &p, &q) + v = 0.25 / (nu * nu), + t2 = lnx * 0.25 * lnx, + j = q_r, + sum = j, + t = 1.0, cn = 1.0, n2 = 0.; + for (int n = 1; n <= n_terms_bgrat; ++n) { + double bp2n = b + n2; j = (bp2n * (bp2n + 1.0) * j + (z + bp2n + 1.0) * t) * v; - n2 += 2.0; + n2 += 2.; t *= t2; - cn /= n2 * (n2 + 1.0); - nm1 = n - 1; + cn /= n2 * (n2 + 1.); + int nm1 = n - 1; c[nm1] = cn; - s = 0.0; + double s = 0.0; if (n > 1) { - coef = b - n; - for (i = 1; i <= nm1; ++i) { + double coef = b - n; + for (int i = 1; i <= nm1; ++i) { s += coef * c[i - 1] * d[nm1 - i]; coef += b; } } d[nm1] = bm1 * cn + s / n; - dj = d[nm1] * j; + double dj = d[nm1] * j; sum += dj; if (sum <= 0.0) { - goto L_Error; + R_ifDEBUG_printf(" bgrat(*): sum_n(..) <= 0; should not happen (n=%d)\n", n); + /* L_Error: THE EXPANSION CANNOT BE COMPUTED */ *ierr = 3; return; } if (fabs(dj) <= eps * (sum + l)) { break; - } + } else if(n == n_terms_bgrat) // never? ; please notify R-core if seen: + MATHLIB_WARNING5( + "bgrat(a=%g, b=%g, x=%g,..): did *not* converge; dj=%g, rel.err=%g\n", + a,b,x, dj, fabs(dj) /(sum + l)); } /* ADD THE RESULTS TO W */ *ierr = 0; - *w += u * sum; - return; - -/* THE EXPANSION CANNOT BE COMPUTED */ - -L_Error: - *ierr = 1; + if(log_w) // *w is in log space already: + *w = logspace_add(*w, log_u + log(sum)); + else + *w += (u_0 ? exp(log_u + log(sum)) : u * sum); return; } /* bgrat */ -static void grat1(double a, double x, double r, double *p, double *q, - double eps) + +// called only from bgrat() , as q_r = grat_r(b, z, log_r, eps) : +static double grat_r(double a, double x, double log_r, double eps) { /* ----------------------------------------------------------------------- -* Evaluation of the incomplete gamma ratio functions -* P(a,x) and Q(a,x) - -* It is assumed that a <= 1. eps is the tolerance to be used. -* the input argument r has the value r = e^(-x)* x^a / Gamma(a). -* ----------------------------------------------------------------------- */ - - double c, g, h, j, l, t, w, z, an, am0, an0, a2n, b2n, cma; - double tol, sum, a2nm1, b2nm1; + * Scaled complement of incomplete gamma ratio function + * grat_r(a,x,r) := Q(a,x) / r + * where + * Q(a,x) = pgamma(x,a, lower.tail=FALSE) + * and r = e^(-x)* x^a / Gamma(a) == exp(log_r) + * + * It is assumed that a <= 1. eps is the tolerance to be used. + * ----------------------------------------------------------------------- */ if (a * x == 0.0) { /* L130: */ - if (x <= a) - goto L100; - else - goto L110; - } - else if (a == 0.5) { - goto L120; + if (x <= a) { + /* L100: */ return exp(-log_r); + } else { + /* L110:*/ return 0.; + } } - - if (x < 1.1) { /* L10: Taylor series for P(a,x)/x^a */ - - an = 3.0; - c = x; - sum = x / (a + 3.0); - tol = eps * 0.1 / (a + 1.0); + else if (a == 0.5) { // e.g. when called from pt() + /* L120: */ + if (x < 0.25) { + double p = erf__(sqrt(x)); + R_ifDEBUG_printf(" grat_r(a=%g, x=%g ..)): a=1/2 --> p=erf__(.)= %g\n", + a, x, p); + return (0.5 - p + 0.5)*exp(-log_r); + + } else { // 2013-02-27: improvement for "large" x: direct computation of q/r: + double sx = sqrt(x), + q_r = erfc1(1, sx)/sx * M_SQRT_PI; + R_ifDEBUG_printf(" grat_r(a=%g, x=%g ..)): a=1/2 --> q_r=erfc1(..)/r= %g\n", + a,x, q_r); + return q_r; + } + + } else if (x < 1.1) { /* L10: Taylor series for P(a,x)/x^a */ + + double an = 3., + c = x, + sum = x / (a + 3.0), + tol = eps * 0.1 / (a + 1.0), t; do { - an += 1.0; - c = -c * (x / an); + an += 1.; + c *= -(x / an); t = c / (a + an); sum += t; } while (fabs(t) > tol); - j = a * x * ((sum / 6.0 - 0.5 / (a + 2.0)) * x + 1.0 / (a + 1.0)); - - z = a * log(x); - h = gam1(a); - g = h + 1.0; - if (x >= 0.25) { - if (a < x / 2.59) { - goto L40; + R_ifDEBUG_printf(" grat_r(a=%g, x=%g, log_r=%g): sum=%g; Taylor w/ %.0f terms", + a,x,log_r, sum, an-3.); + double j = a * x * ((sum/6. - 0.5/(a + 2.)) * x + 1./(a + 1.)), + z = a * log(x), + h = gam1(a), + g = h + 1.0; + + if ((x >= 0.25 && (a < x / 2.59)) || (z > -0.13394)) { + // L40: + double l = rexpm1(z), + q = ((l + 0.5 + 0.5) * j - l) * g - h; + if (q <= 0.0) { + R_ifDEBUG_printf(" => q_r= 0.\n"); + /* L110:*/ return 0.; + } else { + R_ifDEBUG_printf(" => q_r=%.15g\n", q * exp(-log_r)); + return q * exp(-log_r); } - } - else { - if (z > -0.13394) { - goto L40; - } - } - w = exp(z); - *p = w * g * (0.5 - j + 0.5); - *q = 0.5 - *p + 0.5; - return; - - L40: - l = rexpm1(z); - w = l + 0.5 + 0.5; - *q = (w * j - l) * g - h; - if (*q < 0.0) { - goto L110; + } else { + double p = exp(z) * g * (0.5 - j + 0.5); + R_ifDEBUG_printf(" => q_r=%.15g\n", (0.5 - p + 0.5) * exp(-log_r)); + return /* q/r = */ (0.5 - p + 0.5) * exp(-log_r); } - *p = 0.5 - *q + 0.5; - return; - - } - -/* L50: ---- (x >= 1.1) ---- Continued Fraction Expansion */ - - a2nm1 = 1.0; - a2n = 1.0; - b2nm1 = x; - b2n = x + (1.0 - a); - c = 1.0; - - do { - a2nm1 = x * a2n + c * a2nm1; - b2nm1 = x * b2n + c * b2nm1; - am0 = a2nm1 / b2nm1; - c += 1.0; - cma = c - a; - a2n = a2nm1 + cma * a2n; - b2n = b2nm1 + cma * b2n; - an0 = a2n / b2n; - } while (fabs(an0 - am0) >= eps * an0); - - *q = r * an0; - *p = 0.5 - *q + 0.5; - return; -/* SPECIAL CASES */ - -L100: - *p = 0.0; - *q = 1.0; - return; + } else { + /* L50: ---- (x >= 1.1) ---- Continued Fraction Expansion */ -L110: - *p = 1.0; - *q = 0.0; - return; + double a2n_1 = 1.0, + a2n = 1.0, + b2n_1 = x, + b2n = x + (1.0 - a), + c = 1., am0, an0; -L120: - if (x < 0.25) { - *p = erf__(sqrt(x)); - *q = 0.5 - *p + 0.5; - } else { - *q = erfc1(0, sqrt(x)); - *p = 0.5 - *q + 0.5; + do { + a2n_1 = x * a2n + c * a2n_1; + b2n_1 = x * b2n + c * b2n_1; + am0 = a2n_1 / b2n_1; + c += 1.; + double c_a = c - a; + a2n = a2n_1 + c_a * a2n; + b2n = b2n_1 + c_a * b2n; + an0 = a2n / b2n; + } while (fabs(an0 - am0) >= eps * an0); + + R_ifDEBUG_printf(" grat_r(a=%g, x=%g, log_r=%g): Cont.frac. %.0f terms => q_r=%.15g\n", + a,x, log_r, c-1., an0); + return /* q/r = (r * an0)/r = */ an0; } - return; +} /* grat_r */ + -} /* grat1 */ static double basym(double a, double b, double lambda, double eps, int log_p) { @@ -1290,14 +1305,8 @@ static double const ln_e0 = 0.120782237635245; /* == ln(e0) */ double a0[num_IT + 1], b0[num_IT + 1], c[num_IT + 1], d[num_IT + 1]; - double f, h, r, s, t, u, w, z, j0, j1, h2, r0, r1, t0, t1, w0, z0, z2, hn, zn; - double sum, znm1, bsum, dsum; - - int i, j, m, n, im1, mm1, np1, imj, mmj; - -/* ------------------------ */ - f = a * rlog1(-lambda/a) + b * rlog1(lambda/b); + double f = a * rlog1(-lambda/a) + b * rlog1(lambda/b), t; if(log_p) t = -f; else { @@ -1306,9 +1315,10 @@ return 0; /* once underflow, always underflow .. */ } } - z0 = sqrt(f); - z = z0 / e1 * 0.5; - z2 = f + f; + double z0 = sqrt(f), + z = z0 / e1 * 0.5, + z2 = f + f, + h, r0, r1, w0; if (a < b) { h = a / b; @@ -1325,42 +1335,39 @@ a0[0] = r1 * .66666666666666663; c[0] = a0[0] * -0.5; d[0] = -c[0]; - j0 = 0.5 / e0 * erfc1(1, z0); - j1 = e1; - sum = j0 + d[0] * w0 * j1; - - s = 1.0; - h2 = h * h; - hn = 1.0; - w = w0; - znm1 = z; - zn = z2; - for (n = 2; n <= num_IT; n += 2) { - hn = h2 * hn; + double j0 = 0.5 / e0 * erfc1(1, z0), + j1 = e1, + sum = j0 + d[0] * w0 * j1; + + double s = 1.0, + h2 = h * h, + hn = 1.0, + w = w0, + znm1 = z, + zn = z2; + for (int n = 2; n <= num_IT; n += 2) { + hn *= h2; a0[n - 1] = r0 * 2.0 * (h * hn + 1.0) / (n + 2.0); - np1 = n + 1; + int np1 = n + 1; s += hn; a0[np1 - 1] = r1 * 2.0 * s / (n + 3.0); - for (i = n; i <= np1; ++i) { - r = (i + 1.0) * -0.5; + for (int i = n; i <= np1; ++i) { + double r = (i + 1.0) * -0.5; b0[0] = r * a0[0]; - for (m = 2; m <= i; ++m) { - bsum = 0.0; - mm1 = m - 1; - for (j = 1; j <= mm1; ++j) { - mmj = m - j; + for (int m = 2; m <= i; ++m) { + double bsum = 0.0; + for (int j = 1; j <= m-1; ++j) { + int mmj = m - j; bsum += (j * r - mmj) * a0[j - 1] * b0[mmj - 1]; } b0[m - 1] = r * a0[m - 1] + bsum / m; } c[i - 1] = b0[i - 1] / (i + 1.0); - dsum = 0.0; - im1 = i - 1; - for (j = 1; j <= im1; ++j) { - imj = i - j; - dsum += d[imj - 1] * c[j - 1]; + double dsum = 0.0; + for (int j = 1; j <= i-1; ++j) { + dsum += d[i - j - 1] * c[j - 1]; } d[i - 1] = -(dsum + c[i - 1]); } @@ -1369,10 +1376,10 @@ j1 = e1 * zn + n * j1; znm1 = z2 * znm1; zn = z2 * zn; - w = w0 * w; - t0 = d[n - 1] * w * j0; - w = w0 * w; - t1 = d[np1 - 1] * w * j1; + w *= w0; + double t0 = d[n - 1] * w * j0; + w *= w0; + double t1 = d[np1 - 1] * w * j1; sum += t0 + t1; if (fabs(t0) + fabs(t1) <= eps * sum) { break; @@ -1382,7 +1389,7 @@ if(log_p) return ln_e0 + t - bcorr(a, b) + log(sum); else { - u = exp(-bcorr(a, b)); + double u = exp(-bcorr(a, b)); return e0 * t * u * sum; } @@ -1403,49 +1410,34 @@ /* -------------------------------------------------------------------- */ static double const lnb = .69314718055995; - int m; + int m = (l == 0) ? jags_i1mach(16) : jags_i1mach(15) - 1; - if (l == 0) { - m = jags_i1mach(16); - return m * lnb * .99999; - } - m = jags_i1mach(15) - 1; return m * lnb * .99999; } /* exparg */ -static double esum(int mu, double x) +static double esum(int mu, double x, int give_log) { /* ----------------------------------------------------------------------- */ /* EVALUATION OF EXP(MU + X) */ /* ----------------------------------------------------------------------- */ - double w; - if (x > 0.0) { - goto L10; - } - - if (mu < 0) { - goto L20; - } - w = mu + x; - if (w > 0.0) { - goto L20; - } - return exp(w); + if(give_log) + return x + (double) mu; -L10: - if (mu > 0) { - goto L20; - } - w = mu + x; - if (w < 0.0) { - goto L20; + // else : + double w; + if (x > 0.0) { /* L10: */ + if (mu > 0) return exp((double) mu) * exp(x); + w = mu + x; + if (w < 0.0) return exp((double) mu) * exp(x); + } + else { /* x <= 0 */ + if (mu < 0) return exp((double) mu) * exp(x); + w = mu + x; + if (w > 0.0) return exp((double) mu) * exp(x); } return exp(w); -L20: - w = (double) (mu); - return exp(w) * exp(x); } /* esum */ double rexpm1(double x) @@ -1481,24 +1473,23 @@ * Evaluation of the function ln(1 + a) * ----------------------------------------------------------------------- */ - static double p1 = -1.29418923021993; - static double p2 = .405303492862024; - static double p3 = -.0178874546012214; - static double q1 = -1.62752256355323; - static double q2 = .747811014037616; - static double q3 = -.0845104217945565; - - if (fabs(a) <= 0.375) { - double t, t2, w; - t = a / (a + 2.0); - t2 = t * t; + if (fabs(a) > 0.375) + return log(1. + a); + // else : |a| <= 0.375 + static double + p1 = -1.29418923021993, + p2 = .405303492862024, + p3 = -.0178874546012214, + q1 = -1.62752256355323, + q2 = .747811014037616, + q3 = -.0845104217945565; + double + t = a / (a + 2.0), + t2 = t * t, w = (((p3 * t2 + p2) * t2 + p1) * t2 + 1.) / - (((q3 * t2 + q2) * t2 + q1) * t2 + 1.); - return t * 2.0 * w; - } else { - double x = a + 1.; - return log(x); - } + (((q3 * t2 + q2) * t2 + q1) * t2 + 1.); + return t * 2.0 * w; + } /* alnrel */ static double rlog1(double x) @@ -1643,99 +1634,67 @@ static double s[4] = { 94.153775055546,187.11481179959, 99.0191814623914,18.0124575948747 }; - /* System generated locals */ - double ret_val, d1; - - /* Local variables */ - double e, t, w, ax, bot, top; - -/* ABS(X) <= 0.5 */ - - ax = fabs(x); - if (ax > 0.5) { - goto L10; - } - t = x * x; - top = (((a[0] * t + a[1]) * t + a[2]) * t + a[3]) * t + a[4] + 1.0; - bot = ((b[0] * t + b[1]) * t + b[2]) * t + 1.0; - ret_val = 0.5 - x * (top / bot) + 0.5; - if (ind != 0) { - ret_val = exp(t) * ret_val; - } - return ret_val; - -/* 0.5 < ABS(X) <= 4 */ + double ret_val; + double e, t, w, bot, top; -L10: - if (ax > 4.0) { - goto L20; - } - top = ((((((p[0] * ax + p[1]) * ax + p[2]) * ax + p[3]) * ax + p[4]) * ax - + p[5]) * ax + p[6]) * ax + p[7]; - bot = ((((((q[0] * ax + q[1]) * ax + q[2]) * ax + q[3]) * ax + q[4]) * ax - + q[5]) * ax + q[6]) * ax + q[7]; - ret_val = top / bot; - goto L40; - -/* ABS(X) > 4 */ - -L20: - if (x <= -5.6) { - goto L50; - } - if (ind != 0) { - goto L30; - } - if (x > 100.0) { - goto L60; - } - if (x * x > -exparg(1)) { - goto L60; + double ax = fabs(x); + // |X| <= 0.5 */ + if (ax <= 0.5) { + double t = x * x, + top = (((a[0] * t + a[1]) * t + a[2]) * t + a[3]) * t + a[4] + 1.0, + bot = ((b[0] * t + b[1]) * t + b[2]) * t + 1.0; + ret_val = 0.5 - x * (top / bot) + 0.5; + if (ind != 0) { + ret_val = exp(t) * ret_val; + } + return ret_val; } + // else (L10:): 0.5 < |X| <= 4 + if (ax <= 4.0) { + top = ((((((p[0] * ax + p[1]) * ax + p[2]) * ax + p[3]) * ax + p[4]) * ax + + p[5]) * ax + p[6]) * ax + p[7]; + bot = ((((((q[0] * ax + q[1]) * ax + q[2]) * ax + q[3]) * ax + q[4]) * ax + + q[5]) * ax + q[6]) * ax + q[7]; + ret_val = top / bot; -L30: -/* Computing 2nd power */ - d1 = 1.0 / x; - t = d1 * d1; - top = (((r[0] * t + r[1]) * t + r[2]) * t + r[3]) * t + r[4]; - bot = (((s[0] * t + s[1]) * t + s[2]) * t + s[3]) * t + 1.0; - ret_val = (c - t * top / bot) / ax; - -/* FINAL ASSEMBLY */ + } else { // |X| > 4 + // L20: + if (x <= -5.6) { + // L50: LIMIT VALUE FOR "LARGE" NEGATIVE X + ret_val = 2.0; + if (ind != 0) { + ret_val = exp(x * x) * 2.0; + } + return ret_val; + } + if (ind == 0 && (x > 100.0 || x * x > -exparg(1))) { + // LIMIT VALUE FOR LARGE POSITIVE X WHEN IND = 0 + // L60: + return 0.0; + } -L40: - if (ind == 0) { - goto L41; + // L30: + t = 1. / (x * x); + top = (((r[0] * t + r[1]) * t + r[2]) * t + r[3]) * t + r[4]; + bot = (((s[0] * t + s[1]) * t + s[2]) * t + s[3]) * t + 1.0; + ret_val = (c - t * top / bot) / ax; } - if (x < 0.0) { - ret_val = exp(x * x) * 2.0 - ret_val; - } - return ret_val; -L41: - w = x * x; - t = w; - e = w - t; - ret_val = (0.5 - e + 0.5) * exp(-t) * ret_val; - if (x < 0.0) { - ret_val = 2.0 - ret_val; - } - return ret_val; - -/* LIMIT VALUE FOR LARGE NEGATIVE X */ -L50: - ret_val = 2.0; + // L40: FINAL ASSEMBLY if (ind != 0) { - ret_val = exp(x * x) * 2.0; + if (x < 0.0) + ret_val = exp(x * x) * 2.0 - ret_val; + } else { + // L41: ind == 0 : + w = x * x; + t = w; + e = w - t; + ret_val = (0.5 - e + 0.5) * exp(-t) * ret_val; + if (x < 0.0) + ret_val = 2.0 - ret_val; } return ret_val; -/* LIMIT VALUE FOR LARGE POSITIVE X */ -/* WHEN IND = 0 */ - -L60: - ret_val = 0.0; - return ret_val; } /* erfc1 */ static double gam1(double a) @@ -1748,9 +1707,9 @@ t = a; d = a - 0.5; - if (d > 0.0) { + // t := if(a > 1/2) a-1 else a + if (d > 0.0) t = d - 0.5; - } if (t < 0.0) { /* L30: */ static double r[9] = { -.422784335098468,-.771330383816272, @@ -1764,12 +1723,13 @@ ) * t + r[3]) * t + r[2]) * t + r[1]) * t + r[0]; bot = (s2 * t + s1) * t + 1.0; w = top / bot; + R_ifDEBUG_printf(" gam1(a = %.15g): t < 0: w=%.15g\n", a, w); if (d > 0.0) return t * w / a; else return a * (w + 0.5 + 0.5); - } else if (t == 0) { /* L10: */ + } else if (t == 0) { // L10: a in {0, 1} return 0.; } else { /* t > 0; L20: */ @@ -1784,6 +1744,8 @@ ) * t + p[1]) * t + p[0]; bot = (((q[4] * t + q[3]) * t + q[2]) * t + q[1]) * t + 1.0; w = top / bot; + R_ifDEBUG_printf(" gam1(a = %.15g): t > 0: (is a < 1.5 ?) w=%.15g\n", + a, w); if (d > 0.0) /* L21: */ return t / a * (w - 0.5 - 0.5); else @@ -1816,7 +1778,7 @@ ((((((q6 * a + q5)* a + q4)* a + q3)* a + q2)* a + q1)* a + 1.); return -(a) * w; } - else { + else { /* 0.6 <= a <= 1.25 */ static double r0 = .422784335098467; static double r1 = .848044614534529; static double r2 = .565221050691933; @@ -1900,7 +1862,7 @@ PSI MAY BE REPRESENTED AS LOG(X). * Originally: xmax1 = amin1(ipmpar(3), 1./spmpar(1)) */ xmax1 = (double) INT_MAX; - d2 = 0.5 / jags_d1mach(3); + d2 = 0.5 / jags_d1mach(3); /*= 0.5 / (0.5 * DBL_EPS) = 1/DBL_EPSILON = 2^52 */ if(xmax1 > d2) xmax1 = d2; /* --------------------------------------------------------------------- */ @@ -1920,7 +1882,7 @@ goto L_err; } /* --------------------------------------------------------------------- */ -/* 0 < ABS(X) <= XSMALL. USE 1/X AS A SUBSTITUTE */ +/* 0 < |X| <= XSMALL. USE 1/X AS A SUBSTITUTE */ /* FOR PI*COTAN(PI*X) */ /* --------------------------------------------------------------------- */ aug = -1.0 / x; @@ -2039,95 +2001,88 @@ static double e = .918938533204673;/* e == 0.5*LN(2*PI) */ - double a, b, c, h, u, v, w, z; - int i, n; + double + a = min(a0 ,b0), + b = max(a0, b0); - a = min(a0 ,b0); - b = max(a0, b0); - if (a >= 8.0) { - goto L60; - } - if (a < 1.0) { + if (a < 8.0) { + if (a < 1.0) { /* ----------------------------------------------------------------------- */ -/* PROCEDURE WHEN A < 1 */ +// A < 1 /* ----------------------------------------------------------------------- */ - if (b < 8.0) - return gamln(a) + (gamln(b) - gamln(a+b)); - else - return gamln(a) + algdiv(a, b); - } - /* else */ + if (b < 8.0) + return gamln(a) + (gamln(b) - gamln(a+b)); + else + return gamln(a) + algdiv(a, b); + } + /* else */ /* ----------------------------------------------------------------------- */ -/* PROCEDURE WHEN 1 <= A < 8 */ +// 1 <= A < 8 /* ----------------------------------------------------------------------- */ - if (a > 2.0) { - goto L30; - } - if (b <= 2.0) { - return gamln(a) + gamln(b) - gsumln(a, b); - } - /* else */ - - w = 0.0; - if (b < 8.0) { - goto L40; - } - return gamln(a) + algdiv(a, b); - -L30: -/* REDUCTION OF A WHEN B <= 1000 */ + double w; + if (a < 2.0) { + if (b <= 2.0) { + return gamln(a) + gamln(b) - gsumln(a, b); + } + /* else */ - if (b > 1e3) { - goto L50; - } - n = a - 1.0; - w = 1.0; - for (i = 1; i <= n; ++i) { - a += -1.0; - h = a / b; - w *= h / (h + 1.0); - } - w = log(w); - if (b < 8.0) { - goto L40; - } - return w + gamln(a) + algdiv(a, b); + w = 0.0; + if (b < 8.0) { + goto L40; + } + return gamln(a) + algdiv(a, b); + } + // else L30: REDUCTION OF A WHEN B <= 1000 -L40: -/* REDUCTION OF B WHEN B < 8 */ + if (b <= 1e3) { + int n = (int)(a - 1.0); + w = 1.0; + for (int i = 1; i <= n; ++i) { + a += -1.0; + double h = a / b; + w *= h / (h + 1.0); + } + w = log(w); - n = b - 1.0; - z = 1.0; - for (i = 1; i <= n; ++i) { - b += -1.0; - z *= b / (a + b); - } - return w + log(z) + (gamln(a) + (gamln(b) - gsumln(a, b))); + if (b >= 8.0) + return w + gamln(a) + algdiv(a, b); -L50: -/* REDUCTION OF A WHEN B > 1000 */ - n = a - 1.0; - w = 1.0; - for (i = 1; i <= n; ++i) { - a += -1.0; - w *= a / (a / b + 1.0); - } - return log(w) - n * log(b) + (gamln(a) + algdiv(a, b)); + // else + L40: + // reduction of B when B < 8 + n = (int)(b - 1.0); + double z = 1.0; + for (int i = 1; i <= n; ++i) { + b += -1.0; + z *= b / (a + b); + } + return w + log(z) + (gamln(a) + (gamln(b) - gsumln(a, b))); + } + else { // L50: reduction of A when B > 1000 + int n = (int)(a - 1.0); + w = 1.0; + for (int i = 1; i <= n; ++i) { + a += -1.0; + w *= a / (a / b + 1.0); + } + return log(w) - n * log(b) + (gamln(a) + algdiv(a, b)); + } -L60: + } else { /* ----------------------------------------------------------------------- */ -/* PROCEDURE WHEN A >= 8 */ + // L60: A >= 8 /* ----------------------------------------------------------------------- */ - w = bcorr(a, b); - h = a / b; - c = h / (h + 1.0); - u = -(a - 0.5) * log(c); - v = b * alnrel(h); - if (u > v) - return log(b) * -0.5 + e + w - v - u; - else - return log(b) * -0.5 + e + w - u - v; + double + w = bcorr(a, b), + h = a / b, + u = -(a - 0.5) * log(h / (h + 1.0)), + v = b * alnrel(h); + if (u > v) + return log(b) * -0.5 + e + w - v - u; + else + return log(b) * -0.5 + e + w - u - v; + } } /* betaln */ @@ -2138,7 +2093,7 @@ /* FOR 1 <= A <= 2 AND 1 <= B <= 2 */ /* ----------------------------------------------------------------------- */ - double x = a + b - 2.; + double x = a + b - 2.;/* in [0, 2] */ if (x <= 0.25) return gamln1(x + 1.0); @@ -2294,12 +2249,12 @@ static double c5 = -.00165322962780713; if (a <= 0.8) - return gamln1(a) - log(a); + return gamln1(a) - log(a); /* ln(G(a+1)) - ln(a) == ln(G(a+1)/a) = ln(G(a)) */ else if (a <= 2.25) return gamln1(a - 0.5 - 0.5); else if (a < 10.0) { - int i, n = a - 1.25; + int i, n = (int)(a - 1.25); double t = a; double w = 1.0; for (i = 1; i <= n; ++i) { diff -Nru jags-3.4.0/src/lib/compiler/Compiler.cc jags-4.0.0/src/lib/compiler/Compiler.cc --- jags-3.4.0/src/lib/compiler/Compiler.cc 2013-01-22 13:49:55.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/Compiler.cc 2015-07-27 20:28:22.000000000 +0000 @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -44,6 +45,9 @@ using std::max; using std::set; using std::fabs; +using std::max_element; + +namespace jags { #include template @@ -54,8 +58,8 @@ return strm.str(); } -void CompileError(ParseTree const *p, string const &msg1, - string const &msg2 = "") +static void CompileError(ParseTree const *p, string const &msg1, + string const &msg2 = "") { string msg = string("Compilation error on line ") + ToString(p->line()) + "."; @@ -70,8 +74,21 @@ throw runtime_error(msg); } + void Compiler::getLHSVars(ParseTree const *rel) + { + //Utility function to get the names of variables used on the + //left hand side of a relation. These are added to the set + //_lhs_vars. The main use of this information is to give better + //diagnostic messages when we cannot resolve a variable name. - + if (rel->treeClass() != P_STOCHREL && rel->treeClass() != P_DETRMREL) { + throw logic_error("Malformed parse tree in Compiler::getLHSVars"); + } + + ParseTree *var = rel->parameters()[0]; + _lhs_vars.insert(var->name()); + } + Node * Compiler::constFromTable(ParseTree const *p) { // Get a constant value directly from the data table @@ -88,47 +105,41 @@ Range subset_range = getRange(p, sarray.range()); if (isNULL(subset_range)) { + //Range expression not evaluated return 0; } + else if (subset_range.length() > 1) { + //Multivariate constant + RangeIterator i(subset_range); + unsigned int n = subset_range.length(); + //double const *v = sarray.value(); + vector const &v = sarray.value(); + vector value(n); + for (unsigned int j = 0; j < n; ++j, i.nextLeft()) { + unsigned int offset = sarray.range().leftOffset(i); + value[j] = v[offset]; + if (value[j] == JAGS_NA) { + return 0; + } + } + return getConstant(subset_range.dim(false), value, + _model.nchain(), true); + + } else { - // Range expression successfully evaluated - Node *cnode = 0; - if (subset_range.length() > 1) { - - RangeIterator i(subset_range); - unsigned int n = subset_range.length(); - //double const *v = sarray.value(); - vector const &v = sarray.value(); - vector value(n); - for (unsigned int j = 0; j < n; ++j, i.nextLeft()) { - unsigned int offset = sarray.range().leftOffset(i); - value[j] = v[offset]; - if (value[j] == JAGS_NA) { - return 0; - } - } - cnode = new ConstantNode(subset_range.dim(false), value, - _model.nchain()); - + //Scalar constant + unsigned int offset = sarray.range().leftOffset(subset_range.first()); + double value = sarray.value()[offset]; + if (value == JAGS_NA) { + return 0; } else { - unsigned int offset = - sarray.range().leftOffset(subset_range.lower()); - double value = sarray.value()[offset]; - if (value == JAGS_NA) { - return 0; - } - else { - cnode = new ConstantNode(value, _model.nchain()); - } - return cnode; + return getConstant(value, _model.nchain(), true); } - _index_nodes.push_back(cnode); - return cnode; } } -bool Compiler::indexExpression(ParseTree const *p, int &value) +bool Compiler::indexExpression(ParseTree const *p, vector &value) { /* Evaluates an index expression. @@ -138,9 +149,8 @@ 2) On the left hand side of a relation 3) On the right hand side of a relation - They are scalar, integer-valued, constant expressions. We - return true on success and the result is written to the - parameter value. + They are integer-valued, constant expressions. We return true + on success and the result is written to the parameter value. */ /* @@ -157,30 +167,32 @@ Node *node = getParameter(p); _index_expression--; - if (!node || !node->isObserved()) { + if (!node || !node->isFixed()) { return false; } - if (node->length() != 1) { - throw NodeError(node, "Vector value in index expression"); - } - if (!checkInteger(node->value(0)[0])) { - throw NodeError(node, - "Index expression evaluates to non-integer value"); + for (unsigned int i = 0; i < node->length(); ++i) { + double v = node->value(0)[i]; + if (!checkInteger(v)) { + throw NodeError(node, + "Index expression evaluates to non-integer value"); + } + value.push_back(asInteger(v)); } - value = asInteger(node->value(0)[0]); if (_index_expression == 0) { while(!_index_nodes.empty()) { Node *inode = _index_nodes.back(); _index_nodes.pop_back(); + inode->unlinkParents(); delete inode; } } return true; } -Range Compiler::getRange(ParseTree const *p, Range const &default_range) +Range Compiler::getRange(ParseTree const *p, + SimpleRange const &default_range) { /* Evaluate a range expression. If successful, it returns the range @@ -189,17 +201,17 @@ The default_range argument provides default values if the range expression is blank: e.g. foo[] or bar[,1]. The default range - may be a null range, in which case, missing indices will result in + may a NULL range, in which case, missing indices will result in failure. */ vector const &range_list = p->parameters(); string const &name = p->name(); - if (range_list.empty()) { - //An empty range expression implies the default range - return default_range; - } + if (range_list.empty()) { + //An empty range expression implies the default range + return default_range; + } // Check size and integrity of range expression unsigned int size = range_list.size(); @@ -213,30 +225,22 @@ } // Now step through and evaluate lower and upper index expressions - vector lower(size), upper(size); + vector > scope(size); for (unsigned int i = 0; i < size; i++) { switch (range_list[i]->parameters().size()) { case 0: // Empty index implies default range if (isNULL(default_range)) { - return default_range; + return Range(); } - lower[i] = default_range.lower()[i]; - upper[i] = default_range.upper()[i]; + scope[i] = default_range.scope()[i]; break; case 1: - // Single index implies lower == upper - if (!indexExpression(range_list[i]->parameters()[0], lower[i])) { - return Range(); - } - else { - upper[i] = lower[i]; + if (!indexExpression(range_list[i]->parameters()[0], scope[i])) { + return Range(); } - break; - case 2: - if (!indexExpression(range_list[i]->parameters()[0], lower[i]) || - !indexExpression(range_list[i]->parameters()[1], upper[i])) { - return Range(); + if (scope[i].empty()) { + CompileError(p, "Invalid range"); } break; default: @@ -244,29 +248,7 @@ } } - for (unsigned int i = 0; i < size; ++i) { - if (lower[i] > upper[i]) { - //Invalid range. We can't use the print method for Range - //objects to print it as we can't construct a Range object. - //So do it by hand - ostringstream ostr; - ostr << "["; - for (unsigned int j = 0; j < size; ++j) { - if (j > 0) - ostr << ","; - if (lower[j] == upper[j]) { - ostr << lower[j]; - } - else { - ostr << lower[j] << ":" << upper[j]; - } - } - ostr << "]"; - CompileError(p, "Invalid range:", ostr.str()); - } - } - - return Range(lower, upper); + return Range(scope); } Range Compiler::VariableSubsetRange(ParseTree const *var) @@ -285,7 +267,7 @@ } NodeArray *array = _model.symtab().getVariable(name); if (array) { - // It's a declared node + // Declared node vector const &range_list = var->parameters(); if (range_list.empty()) { @@ -303,7 +285,7 @@ } else { // Undeclared node - Range range = getRange(var, Range()); + Range range = getRange(var, SimpleRange()); if (isNULL(range)) { CompileError(var, "Cannot evaluate subset expression for", name); } @@ -334,33 +316,53 @@ } unsigned int size = prange->parameters().size(); - if (size < 1 || size > 2) { + if (size != 1) { throw logic_error(string("Invalid range expression for counter ") + var->name()); } - int lower; - if(!indexExpression(prange->parameters()[0], lower)) { - CompileError(var, "Cannot evaluate lower index of counter", var->name()); - } - int upper; - if (prange->parameters().size() == 2) { - if (!indexExpression(prange->parameters()[1], upper)) { - CompileError(var, "Cannot evaluate upper index of counter", - var->name()); - } - } - else { - upper = lower; + vector indices; + if(!indexExpression(prange->parameters()[0], indices)) { + CompileError(var, "Cannot evaluate range of counter", var->name()); } - if (lower > upper) { + if (indices.empty()) { return Range(); } else { - return Range(vector(1, lower), vector(1, upper)); + return Range(vector >(1, indices)); } } + Node * + Compiler::getConstant(double value, unsigned int nchain, bool observed) + { + ConstantNode * cnode = new ConstantNode(value, nchain, observed); + if (_index_expression) { + _index_nodes.push_back(cnode); + } + else { + _model.addNode(cnode); + } + return cnode; + + } + + Node * + Compiler::getConstant(vector const &dim, + vector const &value, + unsigned int nchain, bool observed) + { + ConstantNode * cnode = new ConstantNode(dim, value, nchain, observed); + if (_index_expression) { + _index_nodes.push_back(cnode); + } + else { + _model.addNode(cnode); + } + return cnode; + + } + Node *Compiler::getArraySubset(ParseTree const *p) { Node *node = 0; @@ -369,15 +371,16 @@ throw logic_error("Expecting expression"); } + if (_index_expression) { + //It is possible to evaluate an index expression before + //any Nodes are available from the symbol table. + node = constFromTable(p); + if (node) return node; + } + Counter *counter = _countertab.getCounter(p->name()); //A counter if (counter) { - if (_index_expression) { - node = new ConstantNode((*counter)[0], _model.nchain()); - _index_nodes.push_back(node); - } - else { - node = _constantfactory.getConstantNode((*counter)[0], _model); - } + node = getConstant((*counter)[0], _model.nchain(), false); } else { NodeArray *array = _model.symtab().getVariable(p->name()); @@ -390,12 +393,56 @@ print(subset_range)); } node = array->getSubset(subset_range, _model); - if (node == 0 && _strict_resolution) { - string msg = string("Unable to resolve node ") - + array->name() + print(subset_range) - + "\nThis may be due to an undefined ancestor node or" - + " a directed cycle in the graph"; - CompileError(p, msg); + if (node == 0 && _resolution_level == 1) { + /* At resolution level 1 we make a note of all + subsets that could not be resolved. + + Example: we have just failed to resolve x[1:5] + but we need to know which of x[1], x[2], x[3], + x[4], x[5] are empty. + */ + bool empty = true; + for (RangeIterator r(subset_range); !r.atEnd(); + r.nextLeft()) + { + if (array->getSubset(SimpleRange(r,r), _model)) { + empty = false; + break; + } + } + if (empty) { + //No elements found, so report the whole range + //as missing, e.g. x[1:5] + pair upair(p->name(), subset_range); + if (_umap.find(upair) == _umap.end()) { + set lines; + lines.insert(p->line()); + _umap[upair] = lines; + } + else { + _umap.find(upair)->second.insert(p->line()); + } + } + else { + //Some elements found, so report only the missing + //elements, e.g. x[5] + for (RangeIterator r(subset_range); !r.atEnd(); + r.nextLeft()) + { + SimpleRange sr(r,r); + if (!array->getSubset(sr, _model)) { + pair upair(p->name(), sr); + if (_umap.find(upair) == _umap.end()) { + set lines; + lines.insert(p->line()); + _umap[upair] = lines; + } + else { + _umap.find(upair)->second.insert(p->line()); + } + } + } + } } } else if (!_index_expression) { @@ -403,16 +450,19 @@ node = getMixtureNode(p, this); } } - else if (_strict_resolution) { - //Give an informative error message in case of failure - CompileError(p, "Unknown parameter", p->name()); + else if (_lhs_vars.find(p->name()) == _lhs_vars.end()) { + string msg = string("Unknown variable ") + p->name() + "\n" + + "Either supply values for this variable with the data\n" + + "or define it on the left hand side of a relation."; + CompileError(p, msg); + } + else if (_resolution_level == 1) { + string msg = string("Possible directed cycle involving ") + + p->name(); + CompileError(p, msg); } - if (!node && _index_expression) { - //It is possible to evaluate an index expression before - //any Nodes are available from the symbol table. - node = constFromTable(p); - } + } return node; @@ -449,14 +499,7 @@ } else { double length = product(subset_range.dim(true)); - if (_index_expression) { - Node *node = new ConstantNode(length, _model.nchain()); - _index_nodes.push_back(node); - return node; - } - else { - return _constantfactory.getConstantNode(length, _model); - } + return getConstant(length, _model.nchain(), false); } } else { @@ -488,15 +531,7 @@ } vector d(1, idim.size()); - - if (_index_expression) { - Node *node = new ConstantNode(d, ddim, _model.nchain()); - _index_nodes.push_back(node); - return node; - } - else { - return _constantfactory.getConstantNode(d, ddim, _model); - } + return getConstant(d, ddim, _model.nchain(), false); } } else { @@ -517,13 +552,7 @@ switch (t->treeClass()) { case P_VALUE: - if (_index_expression) { - node = new ConstantNode(t->value(), _model.nchain()); - _index_nodes.push_back(node); - } - else { - node = _constantfactory.getConstantNode(t->value(), _model); - } + node = getConstant(t->value(), _model.nchain(), false); break; case P_VAR: node = getArraySubset(t); @@ -547,7 +576,7 @@ if (getParameterVector(t, parents)) { FunctionPtr const &func = getFunction(t, funcTab()); if (_index_expression) { - node = LogicalFactory::newNode(func, parents); + node = LogicalFactory::newNode(func, parents, _model.nchain()); _index_nodes.push_back(node); } else { @@ -565,7 +594,7 @@ if (_index_expression) { //Random variables in index expressions must be observed - if (node->isRandomVariable() && !node->isObserved()) + if (node->randomVariableStatus() == RV_TRUE_UNOBSERVED) return 0; } @@ -584,6 +613,7 @@ throw logic_error("parent vector must be empty in getParameterVector"); } + bool ok = true; switch (t->treeClass()) { case P_FUNCTION: case P_LINK: case P_DENSITY: if (t->parameters().size() == 0) @@ -594,10 +624,12 @@ parents.push_back(node); } else { - parents.clear(); - return false; + ok = false; } - + } + if (!ok) { + parents.clear(); + return false; } break; default: @@ -645,7 +677,7 @@ /* Check data table to see if this is an observed node. If it is, - we put the data in a array of doubles pointed to by this_data, + we put the data in an array of doubles pointed to by this_data, and set data_length equal to the length of the array */ double *this_data = 0; @@ -656,7 +688,7 @@ if (q != _data_table.end()) { vector const &data_value = q->second.value(); - Range const &data_range = q->second.range(); + SimpleRange const &data_range = q->second.range(); Range target_range = VariableSubsetRange(var); data_length = target_range.length(); @@ -679,7 +711,7 @@ else if (nmissing != 0) { delete [] this_data; CompileError(var, var->name() + print(target_range), - "has missing values"); + "is partly observed and partly missing"); } } @@ -699,7 +731,8 @@ */ FunctionPtr const &func = obsFuncTab().find(dist); if (!isNULL(func)) { - LogicalNode *lnode = LogicalFactory::newNode(func, parameters); + LogicalNode *lnode = LogicalFactory::newNode(func, parameters, + _model.nchain()); _model.addNode(lnode); return lnode; } @@ -714,7 +747,7 @@ ParseTree const *t = stoch_relation->parameters()[2]; if (t->treeClass() == P_INTERVAL) { for (unsigned int i = 0; i < parameters.size(); ++i) { - if (!parameters[i]->isObserved()) { + if (!parameters[i]->isFixed()) { CompileError(stoch_relation, "BUGS I(,) notation is only allowed if", "all parameters are fixed"); @@ -724,15 +757,18 @@ } StochasticNode *snode = 0; if (SCALAR(dist)) { - snode = new ScalarStochasticNode(SCALAR(dist), parameters, + snode = new ScalarStochasticNode(SCALAR(dist), _model.nchain(), + parameters, lBound, uBound); } else if (VECTOR(dist)) { - snode = new VectorStochasticNode(VECTOR(dist), parameters, + snode = new VectorStochasticNode(VECTOR(dist), _model.nchain(), + parameters, lBound, uBound); } else if (ARRAY(dist)) { - snode = new ArrayStochasticNode(ARRAY(dist), parameters, + snode = new ArrayStochasticNode(ARRAY(dist), _model.nchain(), + parameters, lBound, uBound); } else { @@ -740,12 +776,8 @@ } _model.addNode(snode); - // If Node is observed, set the data if (this_data) { - for (unsigned int n = 0; n < snode->nchain(); ++n) { - snode->setValue(this_data, data_length, n); - } - snode->setObserved(); + snode->setData(this_data, data_length); delete [] this_data; } @@ -756,16 +788,11 @@ { ParseTree *expression = rel->parameters()[1]; Node *node = 0; - ConstantNode *cnode = 0; vector parents; switch (expression->treeClass()) { case P_VALUE: - cnode = new ConstantNode(expression->value(), _model.nchain()); - _model.addNode(cnode); - node = cnode; - /* The reason we aren't using a ConstantFactory here is to ensure - that the nodes are correctly named */ + node = getConstant(expression->value(), _model.nchain(), false); break; case P_VAR: case P_FUNCTION: case P_LINK: case P_LENGTH: case P_DIM: node = getParameter(expression); @@ -782,7 +809,7 @@ map::const_iterator q = _data_table.find(var->name()); if (q != _data_table.end()) { vector const &data_value = q->second.value(); - Range const &data_range = q->second.range(); + SimpleRange const &data_range = q->second.range(); Range target_range = VariableSubsetRange(var); for (RangeIterator p(target_range); !p.atEnd(); p.nextLeft()) { @@ -821,16 +848,23 @@ ParseTree *var = rel->parameters()[0]; NodeArray *array = symtab.getVariable(var->name()); if (!array) { - //Undeclared array. It's size is inferred from the dimensions of + //Undeclared array. Its size is inferred from the dimensions of //the newly created node - symtab.addVariable(var->name(), node->dim()); + vector const &dim = node->dim(); + for (unsigned int i = 0; i < dim.size(); ++i) { + if (dim[i] == 0) { + CompileError(var, "Zero dimension for variable " + + var->name()); + } + } + symtab.addVariable(var->name(), dim); array = symtab.getVariable(var->name()); array->insert(node, array->range()); } else { // Check if a node is already inserted into this range Range range = VariableSubsetRange(var); - if (array->find(range)) { + if (array->getSubset(range, _model)) { CompileError(var, "Attempt to redefine node", var->name() + print(range)); } @@ -839,6 +873,20 @@ _n_resolved++; _is_resolved[_n_relations] = true; } + else if (_resolution_level == 2) { + /* + Remove from the set of unresolved parameters, any array + subsets that are defined on the left hand side of a + relation + */ + ParseTree *var = rel->parameters()[0]; + Range range = VariableSubsetRange(var); + pair upair(var->name(), range); + map, set >::iterator p = _umap.find(upair); + if (p != _umap.end()) { + _umap.erase(p); + } + } } void Compiler::setConstantMask(ParseTree const *rel) @@ -854,7 +902,7 @@ throw logic_error ("Error in Compiler::setConstantMask"); } Range range = VariableSubsetRange(var); - Range const &var_range = q->second.range(); + SimpleRange const &var_range = q->second.range(); if (!var_range.contains(range)) { throw logic_error("Invalid range in Compiler::setConstantMask."); } @@ -866,44 +914,48 @@ void Compiler::getArrayDim(ParseTree const *p) { - /* - Called by traverseTree, this function calculates the size - of all arrays from the left-hand side of all - relations, and stores the results in the map _node_array_ranges. - */ + /* + Called by traverseTree. - ParseTree const *var = p->parameters()[0]; - string const &name = var->name(); + For each node array, calculates the upper bounds of the subset + expressions on the left-and side of all relations. The results + are stored in the map _node_array_bounds which is then used to + calculate the dimensions of the node arrays. + */ - if(var->parameters().empty()) { - //No index expession => No info on array size - return; - } + ParseTree const *var = p->parameters()[0]; + + if(var->parameters().empty()) { + //No index expession => No info on array size + return; + } - Range new_range = VariableSubsetRange(var); + Range new_range = VariableSubsetRange(var); + vector > const new_scope = new_range.scope(); + vector new_upper; + for (unsigned int i = 0; i < new_scope.size(); ++i) { + new_upper.push_back(*max_element(new_scope[i].begin(), + new_scope[i].end())); + } - map > >::iterator i = - _node_array_ranges.find(name); - if (i == _node_array_ranges.end()) { - //Create a new entry - vector > ivec; - ivec.push_back(new_range.lower()); - ivec.push_back(new_range.upper()); - _node_array_ranges.insert(pair > >(name,ivec)); - } - else { - //Check against the existing entry, and modify if necessary - unsigned int ndim = i->second[0].size(); - if (new_range.ndim(false) != ndim) { - CompileError(var, "Inconsistent dimensiosn for array", name); + string const &name = var->name(); + map >::iterator i = _node_array_bounds.find(name); + if (i == _node_array_bounds.end()) { + //Create a new entry + _node_array_bounds[name] = new_upper; } else { - for (unsigned int j = 0; j < ndim; ++j) { - i->second[0][j] = min(i->second[0][j], new_range.lower()[j]); - i->second[1][j] = max(i->second[1][j], new_range.upper()[j]); - } + //Check against the existing entry, and modify if necessary + vector & ubound = i->second; + if (new_upper.size() != ubound.size()) { + CompileError(var, "Inconsistent dimensions for array", name); + } + else { + for (unsigned int j = 0; j < ubound.size(); ++j) { + ubound[j] = max(ubound[j], new_upper[j]); + } + } } - } } void Compiler::writeConstantData(ParseTree const *relations) @@ -950,27 +1002,91 @@ void Compiler::writeRelations(ParseTree const *relations) { - writeConstantData(relations); + writeConstantData(relations); + traverseTree(relations, &Compiler::getLHSVars); + + _is_resolved = vector(_n_relations, false); + for (unsigned long N = _n_relations; N > 0; N -= _n_resolved) { + _n_resolved = 0; + traverseTree(relations, &Compiler::allocate); + if (_n_resolved == 0) break; + } + _is_resolved.clear(); - // Set up boolean vector for nodes to indicate whether they are - // resolved or not. - _is_resolved = new bool[_n_relations]; - for (unsigned int i = 0; i < _n_relations; ++i) { - _is_resolved[i] = false; - } - - for (unsigned long N = _n_relations; N > 0; N -= _n_resolved) { - _n_resolved = 0; - traverseTree(relations, &Compiler::allocate); if (_n_resolved == 0) { - // Try again, but this time throw an exception from getSubsetNode - _strict_resolution = true; - traverseTree(relations, &Compiler::allocate); - // If that didn't work (but it should!) just throw a generic message - throw runtime_error("Unable to resolve relations"); + /* + Somes nodes remain unresolved. We need to identify them and + print an informative error message for the user. + + The basic strategy is to identify nodes that appear on the + right-hand side of a relation but cannot be resolved. Then + we eliminate the nodes that are defined on the left hand + side of a relation. Whatever nodes are left are used in an + expression but never defined (either in a relation or in + the data). + + It may happen that all the unresolved nodes are defined on + the left hand side of a relation. This can happen if there + is a directed cycle (i.e. the nodes are defined in terms of + each other). + */ + + /* + Step 1: Collect identifiers for unresolved parameters. + These will be held in the map _umap along with the line + numbers on which they are used. + */ + _resolution_level = 1; //See getArraySubset + traverseTree(relations, &Compiler::allocate); + if (_umap.empty()) { + //Not clear what went wrong here, so throw a generic error message + throw runtime_error("Unable to resolve relations"); + } + //Take a back-up copy of unresolved parameters + map, set > umap_copy = _umap; + + /* + Step 2: Eliminate parameters that appear on the left of a relation + */ + _resolution_level = 2; + traverseTree(relations, &Compiler::allocate); + + /* + Step 3: Informative error message for the user + */ + ostringstream oss; + if (!_umap.empty()) { + //Undefined parameter message + oss << "Unable to resolve the following parameters:\n"; + for (map, set >::iterator p = + _umap.begin(); p != _umap.end(); ++p) + { + oss << p->first.first << print(p->first.second); + oss << " (line "; + set const &lines = p->second; + for (set::const_iterator i = lines.begin(); + i != lines.end(); ++i) + { + if (i != lines.begin()) { oss << ", "; } + oss << *i; + } + oss << ")\n"; + } + oss << "Either supply values for these nodes with the data\n" + << "or define them on the left hand side of a relation."; + } + else { + //Directed cycle message + oss << "Possible directed cycle involving some or all\n" + << "of the following nodes:\n"; + for (map, set >::const_iterator p = + umap_copy.begin(); p != umap_copy.end(); ++p) + { + oss << p->first.first << print(p->first.second) << "\n"; + } + } + throw runtime_error(oss.str()); } - } - delete [] _is_resolved; _is_resolved = 0; } void Compiler::traverseTree(ParseTree const *relations, CompilerMemFn fun, @@ -986,8 +1102,8 @@ } vector const &relation_list = relations->parameters(); - for (vector::const_iterator p = relation_list.begin(); - p != relation_list.end(); ++p) + for (vector::const_reverse_iterator p = relation_list.rbegin(); + p != relation_list.rend(); ++p) { Counter *counter; ParseTree *var; @@ -1017,14 +1133,13 @@ Compiler::Compiler(BUGSModel &model, map const &data_table) : _model(model), _countertab(), _data_table(data_table), _n_resolved(0), - _n_relations(0), _is_resolved(0), _strict_resolution(false), - _index_expression(0), _index_nodes(), - _constantfactory(model.nchain()) -{ - if (_model.graph().size() != 0) - throw invalid_argument("Non empty graph in Compiler constructor"); - if (_model.symtab().size() != 0) - throw invalid_argument("Non empty symtab in Compiler constructor"); + _n_relations(0), _is_resolved(0), _resolution_level(0), + _index_expression(0), _index_nodes() +{ + if (_model.nodes().size() != 0) + throw invalid_argument("Non empty graph in Compiler constructor"); + if (_model.symtab().size() != 0) + throw invalid_argument("Non empty symtab in Compiler constructor"); } void Compiler::declareVariables(vector const &dec_list) @@ -1048,15 +1163,23 @@ // Variable is an array vector dim(ndim); for (unsigned int i = 0; i < ndim; ++i) { - int dim_i; + vector dim_i; if (!indexExpression(node_dec->parameters()[i], dim_i)) { - CompileError(node_dec, "Unable to calculate dimensions of node", + CompileError(node_dec, "Unable to calculate dimensions of", name); } - if (dim_i <= 0) { + if (dim_i.empty()) { + CompileError(node_dec, "NULL dimension in declaration of", + name); + } + if (dim_i.size() != 1) { + CompileError(node_dec, + "Vector-valued dimension in declaration of", name); + } + if (dim_i[0] <= 0) { CompileError(node_dec, "Non-positive dimension for node", name); } - dim[i] = static_cast(dim_i); + dim[i] = static_cast(dim_i[0]); } _model.symtab().addVariable(name, dim); } @@ -1066,8 +1189,9 @@ void Compiler::undeclaredVariables(ParseTree const *prelations) { // Get undeclared variables from data table - map::const_iterator p = _data_table.begin(); - for (; p != _data_table.end(); ++p) { + for (map::const_iterator p = _data_table.begin(); + p != _data_table.end(); ++p) + { string const &name = p->first; NodeArray const *array = _model.symtab().getVariable(name); if (array) { @@ -1087,33 +1211,34 @@ // Infer the dimension of remaining nodes from the relations traverseTree(prelations, &Compiler::getArrayDim); - map > >::const_iterator i = - _node_array_ranges.begin(); - for (; i != _node_array_ranges.end(); ++i) { + + map >::const_iterator i = _node_array_bounds.begin(); + for (; i != _node_array_bounds.end(); ++i) { if (_model.symtab().getVariable(i->first)) { - //Node already declared. Check consistency + //Node already declared or defined by data. Check consistency NodeArray const * array = _model.symtab().getVariable(i->first); vector const &upper = array->range().upper(); - if (upper.size() != i->second[1].size()) { - string msg = "Dimension mismatch between data and model for node "; + if (upper.size() != i->second.size()) { + string msg = "Dimension mismatch for variable "; msg.append(i->first); throw runtime_error(msg); } for (unsigned int j = 0; j < upper.size(); ++j) { - if (i->second[1][j] > upper[j]) { - string msg = string("Index out of range for node ") + i->first; + if (i->second[j] <= 0 || i->second[j] > upper[j]) { + string msg = string("Index out of range for variable ") + + i->first; throw runtime_error(msg); } } } else { - //Node not declared. Use inferred size - vector const &upper = i->second[1]; + //Variable not declared. Use inferred size + vector const &upper = i->second; unsigned int ndim = upper.size(); vector dim(ndim); for (unsigned int j = 0; j < ndim; ++j) { if (upper[j] <= 0) { - string msg = string("Invalid index for node ") + i->first; + string msg = string("Invalid dimension for ") + i->first; throw runtime_error(msg); } else { @@ -1174,3 +1299,4 @@ return _model; } +} //namespace jags diff -Nru jags-3.4.0/src/lib/compiler/ConstantFactory.cc jags-4.0.0/src/lib/compiler/ConstantFactory.cc --- jags-3.4.0/src/lib/compiler/ConstantFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/ConstantFactory.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -using std::map; -using std::ostringstream; -using std::fabs; -using std::vector; -using std::sqrt; - -ConstantFactory::ConstantFactory(unsigned int nchain) - : _nchain(nchain) -{ -} - -ConstantNode * ConstantFactory::getConstantNode(double value, Model &model) -{ - ConstantNode *cnode = 0; - - map::const_iterator i - = _constmap.find(value); - if (i == _constmap.end()) { - if (checkInteger(value)) { - cnode = new ConstantNode(asInteger(value), _nchain); - } - else { - cnode = new ConstantNode(value, _nchain); - } - - _constmap[value] = cnode; - model.addNode(cnode); - return cnode; - } - else { - return i->second; - } -} - -ConstantNode * ConstantFactory::getConstantNode(vector const &dim, - vector const &value, - Model &model) -{ - ConstantNode *cnode = 0; - - constpair cp(dim, value); - - map::const_iterator i = _mv_constmap.find(cp); - - vector ivalue = value; - - if (i == _mv_constmap.end()) { - // Create a new constant node - bool is_discrete = true; - - for (unsigned int j = 0; j < value.size(); ++j) { - is_discrete = checkInteger(value[j]); - if (!is_discrete) { - break; - } - ivalue[j] = asInteger(value[j]); - } - - if (is_discrete) { - cnode = new ConstantNode(dim, ivalue, _nchain); - } - else { - cnode = new ConstantNode(dim, value, _nchain); - } - - _mv_constmap[cp] = cnode; - model.addNode(cnode); - return cnode; - } - else { - return i->second; - } - -} diff -Nru jags-3.4.0/src/lib/compiler/Counter.cc jags-4.0.0/src/lib/compiler/Counter.cc --- jags-3.4.0/src/lib/compiler/Counter.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/Counter.cc 2015-02-22 08:33:05.000000000 +0000 @@ -5,6 +5,8 @@ #include using std::logic_error; + +namespace jags { Counter::Counter(Range const &range) : RangeIterator(range) @@ -19,12 +21,4 @@ return *this; } - - - - - - - - - +} //namespace jags diff -Nru jags-3.4.0/src/lib/compiler/CounterTab.cc jags-4.0.0/src/lib/compiler/CounterTab.cc --- jags-3.4.0/src/lib/compiler/CounterTab.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/CounterTab.cc 2015-02-22 08:33:05.000000000 +0000 @@ -7,6 +7,8 @@ using std::pair; using std::string; +namespace jags { + CounterTab::CounterTab() { } @@ -44,3 +46,5 @@ } return 0; } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/compiler/LogicalFactory.cc jags-4.0.0/src/lib/compiler/LogicalFactory.cc --- jags-3.4.0/src/lib/compiler/LogicalFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/LogicalFactory.cc 2015-04-19 14:57:11.000000000 +0000 @@ -22,6 +22,8 @@ using std::runtime_error; using std::string; +namespace jags { + bool lt(LogicalPair const &arg1, LogicalPair const &arg2) { if (arg1.first == arg2.first) { @@ -35,7 +37,8 @@ } LogicalNode* LogicalFactory::newNode(FunctionPtr const &func, - vector const &parents) + vector const &parents, + unsigned int nchain) { LogicalNode *node = 0; if (SCALAR(func)) { @@ -56,10 +59,10 @@ func.name()); } else if (arglength == 1) { - node = new ScalarLogicalNode(SCALAR(func), parents); + node = new ScalarLogicalNode(SCALAR(func), nchain, parents); } else { - node = new VSLogicalNode(SCALAR(func), parents); + node = new VSLogicalNode(SCALAR(func), nchain, parents); } } else if (LINK(func)) { @@ -71,16 +74,16 @@ } } if (ok) { - node = new LinkNode(LINK(func), parents); + node = new LinkNode(LINK(func), nchain, parents); } else { throw runtime_error("Invalid vector argument to " + func.name()); } } else if (VECTOR(func)) - node = new VectorLogicalNode(VECTOR(func), parents); + node = new VectorLogicalNode(VECTOR(func), nchain, parents); else if (ARRAY(func)) - node = new ArrayLogicalNode(ARRAY(func), parents); + node = new ArrayLogicalNode(ARRAY(func), nchain, parents); else throw invalid_argument("Invalid function in getNode"); return node; @@ -95,15 +98,17 @@ } LogicalPair lpair(func, parents); - map::iterator i = _logicalmap.find(lpair); + map >::iterator i = _logicalmap.find(lpair); if (i != _logicalmap.end()) { return i->second; } else { - LogicalNode *lnode = newNode(func, parents); + LogicalNode *lnode = newNode(func, parents, model.nchain()); _logicalmap[lpair] = lnode; model.addNode(lnode); return lnode; } } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/compiler/Makefile.am jags-4.0.0/src/lib/compiler/Makefile.am --- jags-3.4.0/src/lib/compiler/Makefile.am 2013-04-30 15:19:32.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/Makefile.am 2015-09-12 07:00:16.000000000 +0000 @@ -1,12 +1,13 @@ noinst_LTLIBRARIES = libcompiler.la AM_YFLAGS = -d -BUILT_SOURCES = parser.h +BUILT_SOURCES = parser.hh libcompiler_la_CPPFLAGS = -I$(top_srcdir)/src/include -libcompiler_la_SOURCES = parser.yy scanner.ll Compiler.cc \ -LogicalFactory.cc ParseTree.cc Counter.cc CounterTab.cc \ -ConstantFactory.cc MixtureFactory.cc MixCompiler.cc NodeFactory.cc \ -ObsFuncTab.cc +libcompiler_la_SOURCES = parser.yy scanner.ll Compiler.cc \ +LogicalFactory.cc ParseTree.cc Counter.cc CounterTab.cc \ +MixtureFactory.cc MixCompiler.cc NodeFactory.cc ObsFuncTab.cc -noinst_HEADERS = parser.h parser_extra.h remap.h MixCompiler.h +noinst_HEADERS = parser.hh parser_extra.h remap.h MixCompiler.h + +MAINTAINERCLEANFILES = parser.cc scanner.cc parser.hh diff -Nru jags-3.4.0/src/lib/compiler/Makefile.in jags-4.0.0/src/lib/compiler/Makefile.in --- jags-3.4.0/src/lib/compiler/Makefile.in 2013-08-30 13:23:26.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/lib/compiler -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in parser.cc parser.h scanner.cc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,6 +99,8 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -74,39 +111,82 @@ libcompiler_la-scanner.lo libcompiler_la-Compiler.lo \ libcompiler_la-LogicalFactory.lo libcompiler_la-ParseTree.lo \ libcompiler_la-Counter.lo libcompiler_la-CounterTab.lo \ - libcompiler_la-ConstantFactory.lo \ libcompiler_la-MixtureFactory.lo libcompiler_la-MixCompiler.lo \ libcompiler_la-NodeFactory.lo libcompiler_la-ObsFuncTab.lo libcompiler_la_OBJECTS = $(am_libcompiler_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS) -LTLEXCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(LEX) $(AM_LFLAGS) $(LFLAGS) +LTLEXCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(LEX) $(AM_LFLAGS) $(LFLAGS) +AM_V_LEX = $(am__v_LEX_@AM_V@) +am__v_LEX_ = $(am__v_LEX_@AM_DEFAULT_V@) +am__v_LEX_0 = @echo " LEX " $@; +am__v_LEX_1 = YLWRAP = $(top_srcdir)/ylwrap +am__yacc_c2h = sed -e s/cc$$/hh/ -e s/cpp$$/hpp/ -e s/cxx$$/hxx/ \ + -e s/c++$$/h++/ -e s/c$$/h/ YACCCOMPILE = $(YACC) $(AM_YFLAGS) $(YFLAGS) -LTYACCCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(YACC) $(AM_YFLAGS) $(YFLAGS) +LTYACCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(YACC) $(AM_YFLAGS) $(YFLAGS) +AM_V_YACC = $(am__v_YACC_@AM_V@) +am__v_YACC_ = $(am__v_YACC_@AM_DEFAULT_V@) +am__v_YACC_0 = @echo " YACC " $@; +am__v_YACC_1 = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libcompiler_la_SOURCES) DIST_SOURCES = $(libcompiler_la_SOURCES) am__can_run_installinfo = \ @@ -115,11 +195,31 @@ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \ + $(top_srcdir)/ylwrap parser.cc parser.hh scanner.cc DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -133,6 +233,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -202,10 +305,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -273,14 +372,14 @@ top_srcdir = @top_srcdir@ noinst_LTLIBRARIES = libcompiler.la AM_YFLAGS = -d -BUILT_SOURCES = parser.h +BUILT_SOURCES = parser.hh libcompiler_la_CPPFLAGS = -I$(top_srcdir)/src/include -libcompiler_la_SOURCES = parser.yy scanner.ll Compiler.cc \ -LogicalFactory.cc ParseTree.cc Counter.cc CounterTab.cc \ -ConstantFactory.cc MixtureFactory.cc MixCompiler.cc NodeFactory.cc \ -ObsFuncTab.cc +libcompiler_la_SOURCES = parser.yy scanner.ll Compiler.cc \ +LogicalFactory.cc ParseTree.cc Counter.cc CounterTab.cc \ +MixtureFactory.cc MixCompiler.cc NodeFactory.cc ObsFuncTab.cc -noinst_HEADERS = parser.h parser_extra.h remap.h MixCompiler.h +noinst_HEADERS = parser.hh parser_extra.h remap.h MixCompiler.h +MAINTAINERCLEANFILES = parser.cc scanner.cc parser.hh all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am @@ -298,7 +397,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/compiler/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/lib/compiler/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -319,17 +417,20 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -parser.h: parser.cc + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } +parser.hh: parser.cc @if test ! -f $@; then rm -f parser.cc; else :; fi @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) parser.cc; else :; fi + libcompiler.la: $(libcompiler_la_OBJECTS) $(libcompiler_la_DEPENDENCIES) $(EXTRA_libcompiler_la_DEPENDENCIES) - $(CXXLINK) $(libcompiler_la_OBJECTS) $(libcompiler_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(CXXLINK) $(libcompiler_la_OBJECTS) $(libcompiler_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -338,7 +439,6 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcompiler_la-Compiler.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcompiler_la-ConstantFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcompiler_la-Counter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcompiler_la-CounterTab.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcompiler_la-LogicalFactory.Plo@am__quote@ @@ -351,115 +451,111 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcompiler_la-scanner.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< libcompiler_la-parser.lo: parser.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-parser.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-parser.Tpo -c -o libcompiler_la-parser.lo `test -f 'parser.cc' || echo '$(srcdir)/'`parser.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libcompiler_la-parser.Tpo $(DEPDIR)/libcompiler_la-parser.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='parser.cc' object='libcompiler_la-parser.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-parser.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-parser.Tpo -c -o libcompiler_la-parser.lo `test -f 'parser.cc' || echo '$(srcdir)/'`parser.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcompiler_la-parser.Tpo $(DEPDIR)/libcompiler_la-parser.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='parser.cc' object='libcompiler_la-parser.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-parser.lo `test -f 'parser.cc' || echo '$(srcdir)/'`parser.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-parser.lo `test -f 'parser.cc' || echo '$(srcdir)/'`parser.cc libcompiler_la-scanner.lo: scanner.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-scanner.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-scanner.Tpo -c -o libcompiler_la-scanner.lo `test -f 'scanner.cc' || echo '$(srcdir)/'`scanner.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libcompiler_la-scanner.Tpo $(DEPDIR)/libcompiler_la-scanner.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scanner.cc' object='libcompiler_la-scanner.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-scanner.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-scanner.Tpo -c -o libcompiler_la-scanner.lo `test -f 'scanner.cc' || echo '$(srcdir)/'`scanner.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcompiler_la-scanner.Tpo $(DEPDIR)/libcompiler_la-scanner.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='scanner.cc' object='libcompiler_la-scanner.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-scanner.lo `test -f 'scanner.cc' || echo '$(srcdir)/'`scanner.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-scanner.lo `test -f 'scanner.cc' || echo '$(srcdir)/'`scanner.cc libcompiler_la-Compiler.lo: Compiler.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-Compiler.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-Compiler.Tpo -c -o libcompiler_la-Compiler.lo `test -f 'Compiler.cc' || echo '$(srcdir)/'`Compiler.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libcompiler_la-Compiler.Tpo $(DEPDIR)/libcompiler_la-Compiler.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Compiler.cc' object='libcompiler_la-Compiler.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-Compiler.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-Compiler.Tpo -c -o libcompiler_la-Compiler.lo `test -f 'Compiler.cc' || echo '$(srcdir)/'`Compiler.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcompiler_la-Compiler.Tpo $(DEPDIR)/libcompiler_la-Compiler.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Compiler.cc' object='libcompiler_la-Compiler.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-Compiler.lo `test -f 'Compiler.cc' || echo '$(srcdir)/'`Compiler.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-Compiler.lo `test -f 'Compiler.cc' || echo '$(srcdir)/'`Compiler.cc libcompiler_la-LogicalFactory.lo: LogicalFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-LogicalFactory.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-LogicalFactory.Tpo -c -o libcompiler_la-LogicalFactory.lo `test -f 'LogicalFactory.cc' || echo '$(srcdir)/'`LogicalFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libcompiler_la-LogicalFactory.Tpo $(DEPDIR)/libcompiler_la-LogicalFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='LogicalFactory.cc' object='libcompiler_la-LogicalFactory.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-LogicalFactory.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-LogicalFactory.Tpo -c -o libcompiler_la-LogicalFactory.lo `test -f 'LogicalFactory.cc' || echo '$(srcdir)/'`LogicalFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcompiler_la-LogicalFactory.Tpo $(DEPDIR)/libcompiler_la-LogicalFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='LogicalFactory.cc' object='libcompiler_la-LogicalFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-LogicalFactory.lo `test -f 'LogicalFactory.cc' || echo '$(srcdir)/'`LogicalFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-LogicalFactory.lo `test -f 'LogicalFactory.cc' || echo '$(srcdir)/'`LogicalFactory.cc libcompiler_la-ParseTree.lo: ParseTree.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-ParseTree.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-ParseTree.Tpo -c -o libcompiler_la-ParseTree.lo `test -f 'ParseTree.cc' || echo '$(srcdir)/'`ParseTree.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libcompiler_la-ParseTree.Tpo $(DEPDIR)/libcompiler_la-ParseTree.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ParseTree.cc' object='libcompiler_la-ParseTree.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-ParseTree.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-ParseTree.Tpo -c -o libcompiler_la-ParseTree.lo `test -f 'ParseTree.cc' || echo '$(srcdir)/'`ParseTree.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcompiler_la-ParseTree.Tpo $(DEPDIR)/libcompiler_la-ParseTree.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ParseTree.cc' object='libcompiler_la-ParseTree.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-ParseTree.lo `test -f 'ParseTree.cc' || echo '$(srcdir)/'`ParseTree.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-ParseTree.lo `test -f 'ParseTree.cc' || echo '$(srcdir)/'`ParseTree.cc libcompiler_la-Counter.lo: Counter.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-Counter.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-Counter.Tpo -c -o libcompiler_la-Counter.lo `test -f 'Counter.cc' || echo '$(srcdir)/'`Counter.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libcompiler_la-Counter.Tpo $(DEPDIR)/libcompiler_la-Counter.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Counter.cc' object='libcompiler_la-Counter.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-Counter.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-Counter.Tpo -c -o libcompiler_la-Counter.lo `test -f 'Counter.cc' || echo '$(srcdir)/'`Counter.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcompiler_la-Counter.Tpo $(DEPDIR)/libcompiler_la-Counter.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Counter.cc' object='libcompiler_la-Counter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-Counter.lo `test -f 'Counter.cc' || echo '$(srcdir)/'`Counter.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-Counter.lo `test -f 'Counter.cc' || echo '$(srcdir)/'`Counter.cc libcompiler_la-CounterTab.lo: CounterTab.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-CounterTab.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-CounterTab.Tpo -c -o libcompiler_la-CounterTab.lo `test -f 'CounterTab.cc' || echo '$(srcdir)/'`CounterTab.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libcompiler_la-CounterTab.Tpo $(DEPDIR)/libcompiler_la-CounterTab.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CounterTab.cc' object='libcompiler_la-CounterTab.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-CounterTab.lo `test -f 'CounterTab.cc' || echo '$(srcdir)/'`CounterTab.cc - -libcompiler_la-ConstantFactory.lo: ConstantFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-ConstantFactory.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-ConstantFactory.Tpo -c -o libcompiler_la-ConstantFactory.lo `test -f 'ConstantFactory.cc' || echo '$(srcdir)/'`ConstantFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libcompiler_la-ConstantFactory.Tpo $(DEPDIR)/libcompiler_la-ConstantFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ConstantFactory.cc' object='libcompiler_la-ConstantFactory.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-CounterTab.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-CounterTab.Tpo -c -o libcompiler_la-CounterTab.lo `test -f 'CounterTab.cc' || echo '$(srcdir)/'`CounterTab.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcompiler_la-CounterTab.Tpo $(DEPDIR)/libcompiler_la-CounterTab.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CounterTab.cc' object='libcompiler_la-CounterTab.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-ConstantFactory.lo `test -f 'ConstantFactory.cc' || echo '$(srcdir)/'`ConstantFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-CounterTab.lo `test -f 'CounterTab.cc' || echo '$(srcdir)/'`CounterTab.cc libcompiler_la-MixtureFactory.lo: MixtureFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-MixtureFactory.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-MixtureFactory.Tpo -c -o libcompiler_la-MixtureFactory.lo `test -f 'MixtureFactory.cc' || echo '$(srcdir)/'`MixtureFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libcompiler_la-MixtureFactory.Tpo $(DEPDIR)/libcompiler_la-MixtureFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MixtureFactory.cc' object='libcompiler_la-MixtureFactory.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-MixtureFactory.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-MixtureFactory.Tpo -c -o libcompiler_la-MixtureFactory.lo `test -f 'MixtureFactory.cc' || echo '$(srcdir)/'`MixtureFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcompiler_la-MixtureFactory.Tpo $(DEPDIR)/libcompiler_la-MixtureFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MixtureFactory.cc' object='libcompiler_la-MixtureFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-MixtureFactory.lo `test -f 'MixtureFactory.cc' || echo '$(srcdir)/'`MixtureFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-MixtureFactory.lo `test -f 'MixtureFactory.cc' || echo '$(srcdir)/'`MixtureFactory.cc libcompiler_la-MixCompiler.lo: MixCompiler.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-MixCompiler.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-MixCompiler.Tpo -c -o libcompiler_la-MixCompiler.lo `test -f 'MixCompiler.cc' || echo '$(srcdir)/'`MixCompiler.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libcompiler_la-MixCompiler.Tpo $(DEPDIR)/libcompiler_la-MixCompiler.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MixCompiler.cc' object='libcompiler_la-MixCompiler.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-MixCompiler.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-MixCompiler.Tpo -c -o libcompiler_la-MixCompiler.lo `test -f 'MixCompiler.cc' || echo '$(srcdir)/'`MixCompiler.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcompiler_la-MixCompiler.Tpo $(DEPDIR)/libcompiler_la-MixCompiler.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MixCompiler.cc' object='libcompiler_la-MixCompiler.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-MixCompiler.lo `test -f 'MixCompiler.cc' || echo '$(srcdir)/'`MixCompiler.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-MixCompiler.lo `test -f 'MixCompiler.cc' || echo '$(srcdir)/'`MixCompiler.cc libcompiler_la-NodeFactory.lo: NodeFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-NodeFactory.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-NodeFactory.Tpo -c -o libcompiler_la-NodeFactory.lo `test -f 'NodeFactory.cc' || echo '$(srcdir)/'`NodeFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libcompiler_la-NodeFactory.Tpo $(DEPDIR)/libcompiler_la-NodeFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='NodeFactory.cc' object='libcompiler_la-NodeFactory.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-NodeFactory.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-NodeFactory.Tpo -c -o libcompiler_la-NodeFactory.lo `test -f 'NodeFactory.cc' || echo '$(srcdir)/'`NodeFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcompiler_la-NodeFactory.Tpo $(DEPDIR)/libcompiler_la-NodeFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='NodeFactory.cc' object='libcompiler_la-NodeFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-NodeFactory.lo `test -f 'NodeFactory.cc' || echo '$(srcdir)/'`NodeFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-NodeFactory.lo `test -f 'NodeFactory.cc' || echo '$(srcdir)/'`NodeFactory.cc libcompiler_la-ObsFuncTab.lo: ObsFuncTab.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-ObsFuncTab.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-ObsFuncTab.Tpo -c -o libcompiler_la-ObsFuncTab.lo `test -f 'ObsFuncTab.cc' || echo '$(srcdir)/'`ObsFuncTab.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libcompiler_la-ObsFuncTab.Tpo $(DEPDIR)/libcompiler_la-ObsFuncTab.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ObsFuncTab.cc' object='libcompiler_la-ObsFuncTab.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcompiler_la-ObsFuncTab.lo -MD -MP -MF $(DEPDIR)/libcompiler_la-ObsFuncTab.Tpo -c -o libcompiler_la-ObsFuncTab.lo `test -f 'ObsFuncTab.cc' || echo '$(srcdir)/'`ObsFuncTab.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcompiler_la-ObsFuncTab.Tpo $(DEPDIR)/libcompiler_la-ObsFuncTab.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ObsFuncTab.cc' object='libcompiler_la-ObsFuncTab.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-ObsFuncTab.lo `test -f 'ObsFuncTab.cc' || echo '$(srcdir)/'`ObsFuncTab.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcompiler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcompiler_la-ObsFuncTab.lo `test -f 'ObsFuncTab.cc' || echo '$(srcdir)/'`ObsFuncTab.cc .ll.cc: - $(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) + $(AM_V_LEX)$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) .yy.cc: - $(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE) + $(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h `echo $@ | $(am__yacc_c2h)` y.output $*.output -- $(YACCCOMPILE) mostlyclean-libtool: -rm -f *.lo @@ -467,26 +563,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -498,15 +583,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -515,6 +596,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -586,9 +682,10 @@ @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -rm -f parser.cc - -rm -f parser.h + -rm -f parser.hh -rm -f scanner.cc -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ @@ -662,18 +759,21 @@ .MAKE: all check install install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/lib/compiler/MixCompiler.cc jags-4.0.0/src/lib/compiler/MixCompiler.cc --- jags-3.4.0/src/lib/compiler/MixCompiler.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/MixCompiler.cc 2015-07-24 05:54:10.000000000 +0000 @@ -44,6 +44,7 @@ #include #include #include +#include using std::vector; using std::pair; @@ -54,13 +55,15 @@ using std::map; using std::copy; using std::reverse; +using std::list; + +namespace jags { //Structure to hold subset indices struct SSI { Node const *node; - int lower; - int upper; - SSI() : node(0), lower(0), upper(0) {}; + vector indices; + SSI() : node(0) {}; }; @@ -75,41 +78,31 @@ */ static void getSubsetRanges(vector, Range> > &subsets, vector const &limits, - Range const &default_range) + SimpleRange const &default_range) { - unsigned int ndim = limits.size(); - //Count number of variable indices (nvi) - int nvi = 0; - for (unsigned int j = 0; j < ndim; ++j) { - if (limits[j].node != 0) - ++nvi; - } - - // Create upper and lower bounds - vector variable_offset(nvi,1), variable_lower(nvi,1), variable_upper(nvi,1); - vector lower_index(ndim,1), upper_index(ndim,1); - int k = 0; - for (unsigned int j = 0; j < ndim; ++j) { - if (limits[j].node != 0) { - variable_offset[k] = j; - variable_lower[k] = default_range.lower()[j]; - variable_upper[k] = default_range.upper()[j]; - ++k; - } - else { - lower_index[j] = limits[j].lower; - upper_index[j] = limits[j].upper; + unsigned int ndim = limits.size(); + + // Create upper and lower bounds + vector var_offset, var_lower, var_upper; + vector > scope(ndim); + for (unsigned int j = 0; j < ndim; ++j) { + if (limits[j].node) { + var_offset.push_back(j); + var_lower.push_back(default_range.lower()[j]); + var_upper.push_back(default_range.upper()[j]); + } + else { + scope[j] = limits[j].indices; + } } - } - - for (RangeIterator i(Range(variable_lower, variable_upper)); !i.atEnd(); - i.nextLeft()) { - for (int k = 0; k < nvi; ++k) { - lower_index[variable_offset[k]] = i[k]; - upper_index[variable_offset[k]] = i[k]; + + SimpleRange var_range(var_lower, var_upper); //range of variable indices + for (RangeIterator p(var_range); !p.atEnd(); p.nextLeft()) { + for (unsigned int k = 0; k < var_offset.size(); ++k) { + scope[var_offset[k]] = vector(1, p[k]); + } + subsets.push_back(pair, Range>(p, Range(scope))); } - subsets.push_back(pair, Range>(i, Range(lower_index, upper_index))); - } } // Returns true if node, or one of its deterministic descendants, is @@ -127,10 +120,10 @@ dnodes.push_back(node); return true; } - + bool ans = false; - set const *dc = node->deterministicChildren(); - for(set::const_iterator p = dc->begin(); + list const *dc = node->deterministicChildren(); + for(list::const_iterator p = dc->begin(); p != dc->end(); ++p) { if (hasDescendant(*p, target_nodes, dnodes, known_dnodes)) { @@ -161,10 +154,7 @@ set known_dnodes; vector const &snodes = model.stochasticNodes(); for (unsigned int i = 0; i < snodes.size(); ++i) { - /* - if (snodes[i]->isObserved()) - continue; - */ + if (tgt_set.count(snodes[i])) { stoch_parents.push_back(snodes[i]); } @@ -178,9 +168,9 @@ } bool ans = false; - set const *dc = + list const *dc = snodes[i]->deterministicChildren(); - for(set::const_iterator p = dc->begin(); + for(list::const_iterator p = dc->begin(); p != dc->end(); ++p) { if (hasDescendant(*p, tgt_set, dtrm_parents, known_dnodes)) { @@ -206,6 +196,7 @@ return true; } + /* static void cloneNodes(vector const &nodes, vector &newnodes, map &remap) @@ -236,7 +227,8 @@ remap[nodes[i]] = newnode; } } - + */ + static Node* getMixtureNode1(NodeArray *array, vector const &limits, Compiler *compiler) // Try to simplify the mixture node by enumerating all possible values @@ -246,13 +238,12 @@ unsigned int ndim = limits.size(); vector indices; - unsigned int nvi = 0; for (unsigned int i = 0; i < ndim; ++i) { if (limits[i].node) { indices.push_back(limits[i].node); - ++nvi; } } + unsigned int nvi = indices.size(); vector sparents; vector dparents; @@ -277,67 +268,57 @@ upper[i] = static_cast(u); } - map remap; - vector rep_sparents; - cloneNodes(sparents, rep_sparents, remap); - - vector dtrm_parents; - vector rep_dparents; - cloneNodes(dparents, rep_dparents, remap); - - vector rep_indices(indices.size()); - for (unsigned int i = 0; i < indices.size(); ++i) { - rep_indices[i] = remap[indices[i]]; + //Store current value of all stochastic parents + vector > stored_parent_values; + for (unsigned int j = 0; j < sparents.size(); ++j) { + double const *pv = sparents[j]->value(0); + vector value(sparents[j]->length()); + copy(pv, pv + sparents[j]->length(), value.begin()); + stored_parent_values.push_back(value); } - + // Create a set containing all possible values that the stochastic // indices can take set > index_values; vector this_index(indices.size(),1); - Range stoch_node_range(lower, upper); + SimpleRange stoch_node_range(lower, upper); for (RangeIterator i(stoch_node_range); !i.atEnd(); i.nextLeft()) { for (unsigned int j = 0; j < sparents.size(); ++j) { double v = i[j]; - rep_sparents[j]->setValue(&v, 1, 0); + sparents[j]->setValue(&v, 1, 0); } for (unsigned int k = 0; k < dparents.size(); ++k) { - rep_dparents[k]->deterministicSample(0); + dparents[k]->deterministicSample(0); } for (unsigned int l = 0; l < indices.size(); ++l) { - this_index[l] = static_cast(*rep_indices[l]->value(0)); + this_index[l] = static_cast(*indices[l]->value(0)); } index_values.insert(this_index); } - - // We are done with the replicate nodes - rep_indices.clear(); - while (!rep_dparents.empty()) { - delete rep_dparents.back(); - rep_dparents.pop_back(); - } - while (!rep_sparents.empty()) { - delete rep_sparents.back(); - rep_sparents.pop_back(); + + //Restore value of all stochastic parents + vector > parent_values; + for (unsigned int j = 0; j < sparents.size(); ++j) { + vector const &pv = stored_parent_values[j]; + sparents[j]->setValue(&pv[0], pv.size(), 0); } // Now set up the possible subsets defined by the stochastic indices - vector variable_offset(nvi, 1); - vector lower_index(ndim, 1), upper_index(ndim, 1); - int k = 0; + vector variable_offset; + vector > scope(ndim); for (unsigned int j = 0; j < ndim; ++j) { - if (limits[j].node != 0) { - variable_offset[k++] = j; + if (limits[j].node) { + variable_offset.push_back(j); } else { - lower_index[j] = limits[j].lower; - upper_index[j] = limits[j].upper; + scope[j] = limits[j].indices; } } @@ -347,10 +328,9 @@ vector const &i = *p; for (unsigned int k = 0; k < nvi; ++k) { - lower_index[variable_offset[k]] = i[k]; - upper_index[variable_offset[k]] = i[k]; + scope[variable_offset[k]] = vector(1, i[k]); } - ranges.push_back(pair, Range>(i, Range(lower_index, upper_index))); + ranges.push_back(pair, Range>(i, Range(scope))); } //Look out for trivial mixture nodes in which all subsets are the same. @@ -430,21 +410,15 @@ throw runtime_error("Malformed range expression"); } SSI ssi; - ssi.node = 0; - ParseTree const *p0, *p1; + ParseTree const *p0; switch(range_element->parameters().size()) { case 0: // Index is empty, implying the whole range - ssi.lower = array->range().lower()[i]; - ssi.upper = array->range().upper()[i]; + ssi.indices = array->range().scope()[i]; break; case 1: - // Single index: upper = lower p0 = range_element->parameters()[0]; - if(compiler->indexExpression(p0, ssi.lower)) { - ssi.upper = ssi.lower; - } - else { + if(!compiler->indexExpression(p0, ssi.indices)) { ssi.node = compiler->getParameter(p0); if (ssi.node == 0) return 0; @@ -452,23 +426,6 @@ ++nvi; } break; - case 2: - // Upper and lower indices - p0 = range_element->parameters()[0]; - p1 = range_element->parameters()[1]; - if(compiler->indexExpression(p0, ssi.lower)) { - if (!compiler->indexExpression(p1, ssi.upper)) { - return 0; - } - } - else { - ssi.node = compiler->getParameter(p0); - if (compiler->getParameter(p1) != ssi.node) - return 0; - else - ++nvi; - } - break; default: throw logic_error("Invalid range expression"); } @@ -482,25 +439,32 @@ } } else { - if (ssi.lower < array->range().lower()[i] || - ssi.upper > array->range().upper()[i] || - ssi.upper < ssi.lower) - { - throw runtime_error("Requested invalid variable subset of " + + if (ssi.indices.empty()) { + throw runtime_error("Requested invalid variable subset of " + var->name()); } - } + for (unsigned int j = 0; j < ssi.indices.size(); ++j) { + if (ssi.indices[j] < array->range().lower()[i] || + ssi.indices[j] > array->range().upper()[i]) + { + throw runtime_error("Requested invalid variable subset of " + + var->name()); + } + } + } limits.push_back(ssi); -} - + } + //Check number of variable indices (nvi) if (nvi == 0) { throw logic_error("Trivial mixture node"); } -Node *mnode = getMixtureNode1(array, limits, compiler); -if (mnode) - return mnode; -else - return getMixtureNode2(array, limits, compiler); -} + Node *mnode = getMixtureNode1(array, limits, compiler); + if (mnode) + return mnode; + else + return getMixtureNode2(array, limits, compiler); + } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/compiler/MixCompiler.h jags-4.0.0/src/lib/compiler/MixCompiler.h --- jags-3.4.0/src/lib/compiler/MixCompiler.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/MixCompiler.h 2015-02-22 08:33:05.000000000 +0000 @@ -5,6 +5,10 @@ class ParseTree; class Compiler; -Node * getMixtureNode(ParseTree const * var, Compiler *compiler); +namespace jags { -#endif + Node * getMixtureNode(ParseTree const * var, Compiler *compiler); + +} + +#endif /* MIX_COMPILER_H_ */ diff -Nru jags-3.4.0/src/lib/compiler/MixtureFactory.cc jags-4.0.0/src/lib/compiler/MixtureFactory.cc --- jags-3.4.0/src/lib/compiler/MixtureFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/MixtureFactory.cc 2015-04-19 15:12:38.000000000 +0000 @@ -12,6 +12,8 @@ using std::map; using std::logic_error; +namespace jags { + MixtureNode * MixtureFactory::getMixtureNode(vector const &index_nodes, MixMap const &mixmap, Model &model) @@ -40,9 +42,11 @@ throw logic_error("Length mismatch in MixtureFactory::getMixtureNode"); } - MixtureNode *mix = new MixtureNode(index_nodes, mixmap); + MixtureNode *mix = new MixtureNode(index_nodes, model.nchain(), mixmap); _mix_node_map[mpair] = mix; model.addNode(mix); return mix; } } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/compiler/NodeFactory.cc jags-4.0.0/src/lib/compiler/NodeFactory.cc --- jags-3.4.0/src/lib/compiler/NodeFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/NodeFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -7,6 +7,8 @@ using std::vector; +namespace jags { + /* Comparison function for arrays of doubles of equal length */ bool lt(double const *value1, double const *value2, unsigned int length) { @@ -21,7 +23,8 @@ return false; } -/* Comparison function for STL vectors of equal length */ +/* Comparison function for STL vectors */ +/* bool lt(vector const &value1, vector const &value2) { for (unsigned long i = 0; i < value1.size(); ++i) { @@ -34,6 +37,7 @@ } return false; } +*/ /* Comparison function for Nodes */ bool lt(Node const *node1, Node const *node2) @@ -43,30 +47,27 @@ return false; } - bool ob1 = node1->isObserved(); - bool ob2 = node2->isObserved(); + bool fix1 = node1->isFixed(); + bool fix2 = node2->isFixed(); - if (ob1 && !ob2) { - //Observed nodes come before unobserved nodes - return true; - } - else if (!ob1 && ob2) { - return false; - } - else if (ob1 && ob2) { - //Observed nodes are sorted by dimension, then value + if (fix1 && fix2) { + //Fixed nodes are sorted by dimension, then value if (node1->dim() == node2->dim()) { return lt(node1->value(0), node2->value(0), node1->length()); } else { - return (node1->dim() < node2->dim()); + return node1->dim() < node2->dim(); } } - else { - //Unobserved nodes are sorted by address. The ordering is + else if (!fix1 && !fix2) { + //Non-fixed nodes are sorted by address. The ordering is //arbitrary, but unique. return (node1 < node2); } + else { + //Fixed nodes come before non-fixed nodes + return fix1 > fix2; + } } /* Comparison operator for vectors of parameters */ @@ -88,3 +89,5 @@ return par1.size() < par2.size(); } } + +} diff -Nru jags-3.4.0/src/lib/compiler/ObsFuncTab.cc jags-4.0.0/src/lib/compiler/ObsFuncTab.cc --- jags-3.4.0/src/lib/compiler/ObsFuncTab.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/ObsFuncTab.cc 2015-09-10 05:42:23.000000000 +0000 @@ -9,6 +9,8 @@ using std::binary_function; using std::find_if; +namespace jags { + typedef std::pair ObsFunc; typedef std::list OFList; @@ -21,6 +23,13 @@ } }; + ObsFuncTab::ObsFuncTab() + : _flist(), _nullfun() + { + //Required by Solaris Studio, which won't create a default constructor + //with -std=c++11 + } + void ObsFuncTab::insert (DistPtr const &dist, FunctionPtr const &func) { ObsFunc f(dist, func); @@ -41,3 +50,5 @@ { _flist.remove(ObsFunc(dist, func)); } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/compiler/parser.cc jags-4.0.0/src/lib/compiler/parser.cc --- jags-3.4.0/src/lib/compiler/parser.cc 2013-08-30 11:52:52.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/parser.cc 2015-09-27 11:56:18.000000000 +0000 @@ -1,19 +1,19 @@ -/* A Bison parser, made by GNU Bison 2.6.1. */ +/* A Bison parser, made by GNU Bison 3.0.2. */ /* Bison implementation for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. - + + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -26,7 +26,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.6.1" +#define YYBISON_VERSION "3.0.2" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -62,8 +62,7 @@ /* Copy the first part of user declarations. */ -/* Line 336 of yacc.c */ -#line 2 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 2 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:339 */ #include #include "remap.h" @@ -78,7 +77,8 @@ using std::malloc; using std::free; - +using jags::ParseTree; + void yyerror(const char *); int yylex(); int yylex_destroy(); @@ -100,14 +100,14 @@ static ParseTree *Truncated (ParseTree *left, ParseTree *right); static ParseTree *Interval(ParseTree *left, ParseTree *right); -/* Line 336 of yacc.c */ -#line 105 "parser.cc" -# ifndef YY_NULL +#line 105 "parser.cc" /* yacc.c:339 */ + +# ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULL nullptr +# define YY_NULLPTR nullptr # else -# define YY_NULL 0 +# define YY_NULLPTR 0 # endif # endif @@ -121,9 +121,9 @@ /* In a future release of Bison, this section will be replaced by #include "y.tab.h". */ -#ifndef YY_Y_TAB_H -# define YY_Y_TAB_H -/* Enabling traces. */ +#ifndef YY_YY_PARSER_HH_INCLUDED +# define YY_YY_PARSER_HH_INCLUDED +/* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif @@ -131,39 +131,38 @@ extern int yydebug; #endif -/* Tokens. */ +/* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - VAR = 258, - DATA = 259, - MODEL = 260, - NAME = 261, - FUNC = 262, - SPECIAL = 263, - BADCHAR = 264, - IN = 265, - ARROW = 266, - FOR = 267, - GT = 268, - GE = 269, - LT = 270, - LE = 271, - EQ = 272, - NE = 273, - AND = 274, - OR = 275, - LENGTH = 276, - DIM = 277, - DOUBLE = 278, - INT = 279, - NOT = 280, - NEG = 281, - ENDL = 282, - UREPCHAR = 283 - }; + enum yytokentype + { + VAR = 258, + DATA = 259, + MODEL = 260, + NAME = 261, + FUNC = 262, + SPECIAL = 263, + BADCHAR = 264, + IN = 265, + ARROW = 266, + FOR = 267, + GT = 268, + GE = 269, + LT = 270, + LE = 271, + EQ = 272, + NE = 273, + AND = 274, + OR = 275, + LENGTH = 276, + DIM = 277, + DOUBLE = 278, + INT = 279, + NOT = 280, + NEG = 281, + ENDL = 282, + UREPCHAR = 283 + }; #endif /* Tokens. */ #define VAR 258 @@ -193,13 +192,12 @@ #define ENDL 282 #define UREPCHAR 283 - - +/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE +typedef union YYSTYPE YYSTYPE; +union YYSTYPE { -/* Line 350 of yacc.c */ -#line 41 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 42 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:355 */ /* We can't put any C++ class that requires a constructor in @@ -212,40 +210,25 @@ */ double val; std::string *stringptr; - ParseTree *ptree; - std::vector *pvec; + jags::ParseTree *ptree; + std::vector *pvec; - -/* Line 350 of yacc.c */ -#line 221 "parser.cc" -} YYSTYPE; +#line 217 "parser.cc" /* yacc.c:355 */ +}; # define YYSTYPE_IS_TRIVIAL 1 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif + extern YYSTYPE yylval; -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus int yyparse (void); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ -#endif /* !YY_Y_TAB_H */ +#endif /* !YY_YY_PARSER_HH_INCLUDED */ /* Copy the second part of user declarations. */ -/* Line 353 of yacc.c */ -#line 249 "parser.cc" +#line 232 "parser.cc" /* yacc.c:358 */ #ifdef short # undef short @@ -259,11 +242,8 @@ #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; -#elif (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -typedef signed char yytype_int8; #else -typedef short int yytype_int8; +typedef signed char yytype_int8; #endif #ifdef YYTYPE_UINT16 @@ -283,8 +263,7 @@ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# elif ! defined YYSIZE_T # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -298,38 +277,67 @@ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ -# define YY_(msgid) dgettext ("bison-runtime", msgid) +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ -# define YY_(msgid) msgid +# define YY_(Msgid) Msgid +# endif +#endif + +#ifndef YY_ATTRIBUTE +# if (defined __GNUC__ \ + && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ + || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C +# define YY_ATTRIBUTE(Spec) __attribute__(Spec) +# else +# define YY_ATTRIBUTE(Spec) /* empty */ +# endif +#endif + +#ifndef YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +#endif + +#if !defined _Noreturn \ + && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) +# if defined _MSC_VER && 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(e) ((void) (e)) +# define YYUSE(E) ((void) (E)) #else -# define YYUSE(e) /* empty */ +# define YYUSE(E) /* empty */ #endif -/* Identity function, used to suppress warnings about constant conditions. */ -#ifndef lint -# define YYID(n) (n) -#else -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static int -YYID (int yyi) +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") #else -static int -YYID (yyi) - int yyi; +# define YY_INITIAL_VALUE(Value) Value #endif -{ - return yyi; -} +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END #endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + #if ! defined yyoverflow || YYERROR_VERBOSE @@ -348,8 +356,7 @@ # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS @@ -361,8 +368,8 @@ # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely @@ -378,7 +385,7 @@ # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) + && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 @@ -386,15 +393,13 @@ # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif @@ -404,7 +409,7 @@ #if (! defined yyoverflow \ && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc @@ -429,16 +434,16 @@ elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) #endif @@ -457,7 +462,7 @@ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ - while (YYID (0)) + while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ @@ -465,40 +470,42 @@ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 13 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 488 +#define YYLAST 477 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 46 +#define YYNTOKENS 47 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 25 +#define YYNNTS 26 /* YYNRULES -- Number of rules. */ -#define YYNRULES 75 -/* YYNRULES -- Number of states. */ -#define YYNSTATES 155 +#define YYNRULES 77 +/* YYNSTATES -- Number of states. */ +#define YYNSTATES 157 -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned + by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 283 -#define YYTRANSLATE(YYX) \ +#define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, without out-of-bounds checking. */ static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 40, 41, 28, 26, 35, 27, 2, 29, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 43, 34, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 45, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 44, 2, 2, 2, 2, 2, - 2, 36, 2, 37, 31, 2, 2, 2, 2, 2, + 41, 42, 28, 26, 36, 27, 2, 29, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 30, 35, + 2, 43, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 46, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 45, 2, 2, 2, 2, 2, + 2, 37, 2, 38, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 38, 2, 39, 42, 2, 2, 2, + 2, 2, 2, 39, 2, 40, 44, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -514,69 +521,21 @@ 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 30, 32, 33 + 25, 31, 33, 34 }; #if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint16 yyprhs[] = -{ - 0, 0, 3, 4, 6, 9, 12, 16, 19, 23, - 25, 29, 31, 36, 38, 42, 47, 52, 56, 58, - 61, 63, 65, 67, 70, 73, 76, 83, 87, 94, - 98, 103, 108, 112, 116, 120, 124, 126, 128, 133, - 138, 143, 145, 149, 151, 155, 158, 162, 166, 170, - 174, 178, 182, 186, 190, 194, 198, 202, 204, 208, - 210, 214, 215, 217, 221, 226, 230, 237, 243, 249, - 254, 261, 267, 273, 278, 280 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int8 yyrhs[] = -{ - 47, 0, -1, -1, 53, -1, 48, 53, -1, 52, - 53, -1, 48, 52, 53, -1, 3, 49, -1, 3, - 49, 34, -1, 50, -1, 49, 35, 50, -1, 6, - -1, 6, 36, 51, 37, -1, 63, -1, 51, 35, - 63, -1, 4, 38, 55, 39, -1, 5, 38, 55, - 39, -1, 38, 55, 39, -1, 56, -1, 55, 56, - -1, 60, -1, 59, -1, 57, -1, 60, 34, -1, - 59, 34, -1, 58, 54, -1, 12, 40, 6, 10, - 66, 41, -1, 70, 11, 63, -1, 7, 40, 70, - 41, 11, 63, -1, 70, 42, 67, -1, 70, 42, - 67, 68, -1, 70, 42, 67, 69, -1, 63, 28, - 63, -1, 61, 28, 63, -1, 63, 26, 63, -1, - 62, 26, 63, -1, 70, -1, 23, -1, 21, 40, - 70, 41, -1, 22, 40, 70, 41, -1, 7, 40, - 64, 41, -1, 61, -1, 63, 29, 63, -1, 62, - -1, 63, 27, 63, -1, 27, 63, -1, 63, 13, - 63, -1, 63, 14, 63, -1, 63, 15, 63, -1, - 63, 16, 63, -1, 63, 17, 63, -1, 63, 18, - 63, -1, 63, 19, 63, -1, 63, 20, 63, -1, - 63, 31, 63, -1, 63, 8, 63, -1, 40, 63, - 41, -1, 63, -1, 64, 35, 63, -1, 66, -1, - 65, 35, 66, -1, -1, 63, -1, 63, 43, 63, - -1, 7, 40, 64, 41, -1, 7, 40, 41, -1, - 44, 40, 63, 35, 63, 41, -1, 44, 40, 35, - 63, 41, -1, 44, 40, 63, 35, 41, -1, 44, - 40, 35, 41, -1, 45, 40, 63, 35, 63, 41, - -1, 45, 40, 35, 63, 41, -1, 45, 40, 63, - 35, 41, -1, 45, 40, 35, 41, -1, 6, -1, - 6, 36, 65, 37, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 102, 102, 103, 104, 105, 106, 109, 110, 113, - 114, 117, 120, 126, 127, 130, 137, 144, 150, 151, - 154, 155, 156, 157, 158, 161, 167, 173, 177, 193, - 197, 201, 207, 212, 222, 227, 236, 237, 238, 242, - 246, 250, 254, 258, 262, 266, 270, 274, 278, 282, - 286, 290, 294, 298, 302, 306, 310, 313, 314, 317, - 318, 321, 322, 323, 328, 333, 340, 341, 342, 343, - 346, 347, 348, 349, 352, 355 + 0, 105, 105, 106, 107, 108, 109, 112, 113, 116, + 117, 120, 123, 129, 130, 133, 140, 147, 153, 154, + 157, 158, 159, 160, 161, 164, 170, 176, 177, 180, + 184, 200, 204, 208, 214, 219, 229, 234, 243, 244, + 245, 249, 253, 257, 261, 265, 269, 273, 277, 281, + 285, 289, 293, 297, 301, 305, 309, 313, 317, 321, + 324, 325, 328, 329, 332, 333, 339, 344, 351, 352, + 353, 354, 357, 358, 359, 360, 363, 366 }; #endif @@ -588,279 +547,265 @@ "$end", "error", "$undefined", "VAR", "DATA", "MODEL", "NAME", "FUNC", "SPECIAL", "BADCHAR", "IN", "ARROW", "FOR", "GT", "GE", "LT", "LE", "EQ", "NE", "AND", "OR", "LENGTH", "DIM", "DOUBLE", "INT", "NOT", "'+'", "'-'", - "'*'", "'/'", "NEG", "'^'", "ENDL", "UREPCHAR", "';'", "','", "'['", - "']'", "'{'", "'}'", "'('", "')'", "'~'", "':'", "'T'", "'I'", "$accept", - "input", "var_stmt", "dec_list", "node_dec", "dim_list", "data_stmt", - "model_stmt", "relations", "relation_list", "relation", "for_loop", - "counter", "determ_relation", "stoch_relation", "product", "sum", - "expression", "expression_list", "range_list", "range_element", - "distribution", "truncated", "interval", "var", YY_NULL + "'*'", "'/'", "':'", "NEG", "'^'", "ENDL", "UREPCHAR", "';'", "','", + "'['", "']'", "'{'", "'}'", "'('", "')'", "'='", "'~'", "'T'", "'I'", + "$accept", "input", "var_stmt", "dec_list", "node_dec", "dim_list", + "data_stmt", "model_stmt", "relations", "relation_list", "relation", + "for_loop", "counter", "assignment", "determ_relation", "stoch_relation", + "product", "sum", "expression", "expression_list", "range_list", + "range_element", "distribution", "truncated", "interval", "var", YY_NULLPTR }; #endif # ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ +/* YYTOKNUM[NUM] -- (External) token number corresponding to the + (internal) symbol number NUM (which must be that of a token). */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 43, 45, 42, 47, - 281, 94, 282, 283, 59, 44, 91, 93, 123, 125, - 40, 41, 126, 58, 84, 73 + 58, 281, 94, 282, 283, 59, 44, 91, 93, 123, + 125, 40, 41, 61, 126, 84, 73 }; # endif -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = -{ - 0, 46, 47, 47, 47, 47, 47, 48, 48, 49, - 49, 50, 50, 51, 51, 52, 53, 54, 55, 55, - 56, 56, 56, 56, 56, 57, 58, 59, 59, 60, - 60, 60, 61, 61, 62, 62, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 64, 64, 65, - 65, 66, 66, 66, 67, 67, 68, 68, 68, 68, - 69, 69, 69, 69, 70, 70 -}; +#define YYPACT_NINF -109 -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-109))) + +#define YYTABLE_NINF -1 + +#define yytable_value_is_error(Yytable_value) \ + (!!((Yytable_value) == (-1))) + + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const yytype_int16 yypact[] = { - 0, 2, 0, 1, 2, 2, 3, 2, 3, 1, - 3, 1, 4, 1, 3, 4, 4, 3, 1, 2, - 1, 1, 1, 2, 2, 2, 6, 3, 6, 3, - 4, 4, 3, 3, 3, 3, 1, 1, 4, 4, - 4, 1, 3, 1, 3, 2, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, - 3, 0, 1, 3, 4, 3, 6, 5, 5, 4, - 6, 5, 5, 4, 1, 4 + 27, -4, -26, -21, 21, 78, 39, -109, 42, 139, + -109, 149, 149, -109, 39, -109, -109, 160, -109, -4, + 63, -8, 35, 5, -109, -109, 65, 76, 92, -7, + 28, -109, 79, 91, 96, -109, 160, 160, -22, 120, + 114, 376, -109, -109, 160, 156, 163, -109, -109, 149, + -109, -109, -109, -109, -109, 164, 160, -109, 160, 156, + 156, 141, 176, 160, -109, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 376, 85, -109, 134, 170, 86, 144, 133, + 376, 376, 33, 155, 157, -109, 376, 117, -3, 106, + 422, 422, 422, 422, 422, 422, 445, 399, -3, -3, + 117, 117, 138, 141, 160, -109, 4, 160, -109, 1, + 145, 147, -109, -109, 160, -109, -109, -109, -109, 160, + 158, -109, 36, 74, 136, 376, 376, -109, -109, 64, + 326, 67, 351, -109, 206, 112, -109, 236, 123, -109, + -109, 266, -109, -109, 296, -109, -109 }; -/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ static const yytype_uint8 yydefact[] = { 2, 0, 0, 0, 0, 0, 0, 3, 11, 7, 9, 0, 0, 1, 0, 4, 5, 0, 8, 0, - 74, 0, 0, 0, 18, 22, 0, 21, 20, 0, - 0, 6, 0, 0, 0, 37, 0, 0, 0, 41, - 43, 13, 36, 10, 61, 0, 0, 15, 19, 0, - 25, 24, 23, 0, 0, 16, 0, 0, 0, 45, - 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, - 0, 59, 0, 0, 0, 27, 0, 29, 57, 0, - 0, 0, 56, 14, 33, 35, 55, 46, 47, 48, - 49, 50, 51, 52, 53, 34, 44, 32, 42, 54, - 0, 61, 75, 0, 61, 17, 0, 0, 0, 30, - 31, 0, 40, 38, 39, 63, 60, 0, 0, 65, - 0, 0, 0, 58, 28, 26, 64, 0, 0, 0, - 0, 69, 0, 0, 73, 0, 0, 67, 68, 0, - 71, 72, 0, 66, 70 -}; - -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int8 yydefgoto[] = -{ - -1, 4, 5, 9, 10, 38, 6, 7, 50, 23, - 24, 25, 26, 27, 28, 39, 40, 79, 89, 80, - 81, 87, 119, 120, 42 + 76, 0, 0, 0, 18, 22, 0, 21, 20, 0, + 0, 6, 0, 0, 0, 39, 0, 0, 0, 43, + 45, 13, 38, 10, 64, 0, 0, 15, 19, 0, + 25, 24, 23, 27, 28, 0, 0, 16, 0, 0, + 0, 47, 0, 0, 12, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 65, 0, 62, 0, 0, 0, 0, 31, + 29, 60, 0, 0, 0, 59, 14, 35, 37, 58, + 49, 50, 51, 52, 53, 54, 55, 56, 36, 46, + 34, 44, 48, 57, 64, 77, 0, 64, 17, 0, + 0, 0, 32, 33, 0, 42, 40, 41, 63, 0, + 0, 67, 0, 0, 0, 61, 30, 26, 66, 0, + 0, 0, 0, 71, 0, 0, 75, 0, 0, 69, + 70, 0, 73, 74, 0, 68, 72 }; -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -108 -static const yytype_int16 yypact[] = + /* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = { - 142, 24, -4, 35, 94, 4, 92, -108, 67, 42, - -108, 63, 63, -108, 92, -108, -108, 182, -108, 24, - 77, 78, 81, 59, -108, -108, 85, 100, 102, -9, - 73, -108, 90, 109, 112, -108, 182, 182, -14, 128, - 131, 391, -108, -108, 182, 152, 154, -108, -108, 63, - -108, -108, -108, 182, 158, -108, 182, 152, 152, 137, - 198, 182, -108, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, -2, - 0, -108, 129, 159, 80, 391, 134, 96, 391, 37, - 130, 135, -108, 391, -3, 14, 137, 435, 435, 435, - 435, 435, 435, 457, 413, 14, 14, -3, -3, 137, - 182, 182, -108, 164, 182, -108, 61, 145, 146, -108, - -108, 182, -108, -108, -108, 391, -108, 182, 136, -108, - 54, 157, 160, 391, 391, -108, -108, 84, 343, 110, - 367, -108, 227, 121, -108, 256, 132, -108, -108, 285, - -108, -108, 314, -108, -108 + -109, -109, -109, -109, 179, -109, 202, 146, -109, -11, + -20, -109, -109, 93, -109, -109, -109, -109, -17, 94, + -109, -108, -109, -109, -109, 54 }; -/* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = + /* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int8 yydefgoto[] = { - -108, -108, -108, -108, 171, -108, 186, 26, -108, -11, - -20, -108, -108, -108, -108, -108, -108, -17, 82, -108, - -107, -108, -108, -108, 51 + -1, 4, 5, 9, 10, 38, 6, 7, 50, 23, + 24, 25, 26, 56, 27, 28, 39, 40, 82, 92, + 83, 84, 89, 122, 123, 42 }; -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -1 + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 41, 30, 53, 48, 126, 65, 65, 128, 2, 3, - 48, 66, 67, 68, 69, 70, 71, 72, 73, 59, - 60, 61, 65, 62, 74, 75, 76, 77, 78, 78, - 8, 15, 16, 54, 11, 111, 85, 112, 84, 88, - 31, 110, 76, 77, 93, 78, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 29, 29, 48, 20, 21, 20, 32, 20, - 21, 22, 121, 12, 29, 22, 18, 19, 122, 20, - 21, 29, 33, 34, 35, 22, 20, 21, 36, 121, - 20, 32, 22, 125, 13, 136, 82, 3, 47, 88, - 29, 37, 129, 17, 133, 33, 34, 35, 90, 91, - 134, 36, 55, 44, 138, 140, 20, 32, 45, 115, - 142, 46, 145, 49, 37, 141, 149, 20, 32, 152, - 56, 33, 34, 35, 51, 29, 52, 36, 20, 32, - 117, 118, 33, 34, 35, 1, 2, 3, 36, 57, - 37, 144, 58, 33, 34, 35, 63, 64, 20, 36, - 83, 37, 148, 20, 32, 86, 20, 32, 78, 114, - 113, 123, 37, 151, 116, 127, 124, 135, 33, 34, - 35, 33, 34, 35, 36, 131, 132, 36, 20, 32, - 43, 14, 137, 0, 0, 139, 0, 37, 130, 0, - 37, 0, 0, 33, 34, 35, 65, 0, 0, 36, - 0, 66, 67, 68, 69, 70, 71, 72, 73, 0, - 0, 0, 37, 0, 74, 75, 76, 77, 0, 78, - 0, 0, 0, 0, 0, 65, 0, 0, 0, 92, - 66, 67, 68, 69, 70, 71, 72, 73, 0, 0, - 0, 0, 0, 74, 75, 76, 77, 0, 78, 0, - 0, 0, 0, 0, 65, 0, 0, 0, 147, 66, - 67, 68, 69, 70, 71, 72, 73, 0, 0, 0, - 0, 0, 74, 75, 76, 77, 0, 78, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 150, 66, 67, - 68, 69, 70, 71, 72, 73, 0, 0, 0, 0, - 0, 74, 75, 76, 77, 0, 78, 0, 0, 0, - 0, 0, 65, 0, 0, 0, 153, 66, 67, 68, - 69, 70, 71, 72, 73, 0, 0, 0, 0, 0, - 74, 75, 76, 77, 0, 78, 0, 0, 0, 0, - 0, 65, 0, 0, 0, 154, 66, 67, 68, 69, - 70, 71, 72, 73, 0, 0, 0, 0, 0, 74, - 75, 76, 77, 0, 78, 65, 0, 0, 143, 0, - 66, 67, 68, 69, 70, 71, 72, 73, 0, 0, - 0, 0, 0, 74, 75, 76, 77, 0, 78, 65, - 0, 0, 146, 0, 66, 67, 68, 69, 70, 71, - 72, 73, 0, 0, 0, 0, 0, 74, 75, 76, - 77, 65, 78, 0, 0, 0, 66, 67, 68, 69, - 70, 71, 72, 0, 0, 0, 0, 0, 0, 74, - 75, 76, 77, 65, 78, 0, 0, 0, -1, -1, - -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, - 0, 74, 75, 76, 77, 65, 78, 0, 0, 0, - 66, 67, 68, 69, 70, 71, 0, 0, 0, 0, - 0, 0, 0, 74, 75, 76, 77, 0, 78 + 41, 30, 8, 48, 53, 67, 128, 20, 32, 130, + 48, 20, 21, 11, 63, 53, 64, 22, 12, 61, + 62, 13, 33, 34, 35, 78, 79, 80, 36, 81, + 1, 2, 3, 45, 20, 21, 54, 55, 87, 90, + 22, 91, 37, 131, 3, 47, 96, 54, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 29, 29, 48, 57, 124, + 20, 32, 124, 20, 32, 125, 46, 29, 138, 17, + 20, 32, 2, 3, 29, 33, 34, 35, 33, 34, + 35, 36, 20, 21, 36, 33, 34, 35, 22, 85, + 44, 36, 91, 29, 49, 37, 143, 135, 37, 146, + 139, 51, 136, 93, 94, 37, 140, 142, 20, 32, + 58, 114, 144, 115, 147, 67, 118, 52, 151, 20, + 32, 154, 59, 33, 34, 35, 80, 60, 81, 36, + 66, 29, 20, 32, 33, 34, 35, 80, 65, 81, + 36, 15, 16, 37, 150, 20, 21, 33, 34, 35, + 31, 22, 20, 36, 37, 153, 20, 32, -1, 86, + 81, 88, 141, 81, 18, 19, 116, 37, 120, 121, + 117, 33, 34, 35, 67, 119, 133, 36, 134, 68, + 69, 70, 71, 72, 73, 74, 75, 126, 43, 127, + 137, 37, 76, 77, 78, 79, 80, 14, 81, 129, + 0, 0, 0, 132, 67, 0, 0, 0, 95, 68, + 69, 70, 71, 72, 73, 74, 75, 0, 0, 0, + 0, 0, 76, 77, 78, 79, 80, 0, 81, 0, + 0, 0, 0, 0, 67, 0, 0, 0, 149, 68, + 69, 70, 71, 72, 73, 74, 75, 0, 0, 0, + 0, 0, 76, 77, 78, 79, 80, 0, 81, 0, + 0, 0, 0, 0, 67, 0, 0, 0, 152, 68, + 69, 70, 71, 72, 73, 74, 75, 0, 0, 0, + 0, 0, 76, 77, 78, 79, 80, 0, 81, 0, + 0, 0, 0, 0, 67, 0, 0, 0, 155, 68, + 69, 70, 71, 72, 73, 74, 75, 0, 0, 0, + 0, 0, 76, 77, 78, 79, 80, 0, 81, 0, + 0, 0, 0, 0, 67, 0, 0, 0, 156, 68, + 69, 70, 71, 72, 73, 74, 75, 0, 0, 0, + 0, 0, 76, 77, 78, 79, 80, 0, 81, 67, + 0, 0, 145, 0, 68, 69, 70, 71, 72, 73, + 74, 75, 0, 0, 0, 0, 0, 76, 77, 78, + 79, 80, 0, 81, 67, 0, 0, 148, 0, 68, + 69, 70, 71, 72, 73, 74, 75, 0, 0, 0, + 0, 0, 76, 77, 78, 79, 80, 67, 81, 0, + 0, 0, 68, 69, 70, 71, 72, 73, 74, 0, + 0, 0, 0, 0, 0, 76, 77, 78, 79, 80, + 67, 81, 0, 0, 0, -1, -1, -1, -1, -1, + -1, 0, 0, 0, 0, 0, 0, 0, 76, 77, + 78, 79, 80, 67, 81, 0, 0, 0, 68, 69, + 70, 71, 72, 73, 0, 0, 0, 0, 0, 0, + 0, 76, 77, 78, 79, 80, 0, 81 }; -#define yypact_value_is_default(yystate) \ - ((yystate) == (-108)) - -#define yytable_value_is_error(yytable_value) \ - ((yytable_value) == (-1)) - static const yytype_int16 yycheck[] = { - 17, 12, 11, 23, 111, 8, 8, 114, 4, 5, - 30, 13, 14, 15, 16, 17, 18, 19, 20, 36, - 37, 35, 8, 37, 26, 27, 28, 29, 31, 31, - 6, 5, 6, 42, 38, 35, 53, 37, 49, 56, - 14, 43, 28, 29, 61, 31, 63, 64, 65, 66, + 17, 12, 6, 23, 11, 8, 114, 6, 7, 117, + 30, 6, 7, 39, 36, 11, 38, 12, 39, 36, + 37, 0, 21, 22, 23, 28, 29, 30, 27, 32, + 3, 4, 5, 41, 6, 7, 43, 44, 49, 56, + 12, 58, 41, 42, 5, 40, 63, 43, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 11, 12, 84, 6, 7, 6, 7, 6, - 7, 12, 35, 38, 23, 12, 34, 35, 41, 6, - 7, 30, 21, 22, 23, 12, 6, 7, 27, 35, - 6, 7, 12, 110, 0, 41, 45, 5, 39, 116, - 49, 40, 41, 36, 121, 21, 22, 23, 57, 58, - 127, 27, 39, 36, 131, 132, 6, 7, 40, 39, - 137, 40, 139, 38, 40, 41, 143, 6, 7, 146, - 40, 21, 22, 23, 34, 84, 34, 27, 6, 7, - 44, 45, 21, 22, 23, 3, 4, 5, 27, 40, - 40, 41, 40, 21, 22, 23, 28, 26, 6, 27, - 6, 40, 41, 6, 7, 7, 6, 7, 31, 10, - 41, 41, 40, 41, 40, 11, 41, 41, 21, 22, - 23, 21, 22, 23, 27, 40, 40, 27, 6, 7, - 19, 5, 35, -1, -1, 35, -1, 40, 116, -1, - 40, -1, -1, 21, 22, 23, 8, -1, -1, 27, - -1, 13, 14, 15, 16, 17, 18, 19, 20, -1, - -1, -1, 40, -1, 26, 27, 28, 29, -1, 31, - -1, -1, -1, -1, -1, 8, -1, -1, -1, 41, - 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, - -1, -1, -1, 26, 27, 28, 29, -1, 31, -1, - -1, -1, -1, -1, 8, -1, -1, -1, 41, 13, + 77, 78, 79, 80, 81, 11, 12, 87, 40, 36, + 6, 7, 36, 6, 7, 42, 41, 23, 42, 37, + 6, 7, 4, 5, 30, 21, 22, 23, 21, 22, + 23, 27, 6, 7, 27, 21, 22, 23, 12, 45, + 37, 27, 119, 49, 39, 41, 42, 124, 41, 42, + 36, 35, 129, 59, 60, 41, 133, 134, 6, 7, + 41, 36, 139, 38, 141, 8, 40, 35, 145, 6, + 7, 148, 41, 21, 22, 23, 30, 41, 32, 27, + 26, 87, 6, 7, 21, 22, 23, 30, 28, 32, + 27, 5, 6, 41, 42, 6, 7, 21, 22, 23, + 14, 12, 6, 27, 41, 42, 6, 7, 30, 6, + 32, 7, 36, 32, 35, 36, 42, 41, 45, 46, + 10, 21, 22, 23, 8, 41, 41, 27, 41, 13, + 14, 15, 16, 17, 18, 19, 20, 42, 19, 42, + 42, 41, 26, 27, 28, 29, 30, 5, 32, 116, + -1, -1, -1, 119, 8, -1, -1, -1, 42, 13, + 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, + -1, -1, 26, 27, 28, 29, 30, -1, 32, -1, + -1, -1, -1, -1, 8, -1, -1, -1, 42, 13, + 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, + -1, -1, 26, 27, 28, 29, 30, -1, 32, -1, + -1, -1, -1, -1, 8, -1, -1, -1, 42, 13, + 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, + -1, -1, 26, 27, 28, 29, 30, -1, 32, -1, + -1, -1, -1, -1, 8, -1, -1, -1, 42, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, - -1, -1, 26, 27, 28, 29, -1, 31, -1, -1, - -1, -1, -1, 8, -1, -1, -1, 41, 13, 14, - 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, - -1, 26, 27, 28, 29, -1, 31, -1, -1, -1, - -1, -1, 8, -1, -1, -1, 41, 13, 14, 15, - 16, 17, 18, 19, 20, -1, -1, -1, -1, -1, - 26, 27, 28, 29, -1, 31, -1, -1, -1, -1, - -1, 8, -1, -1, -1, 41, 13, 14, 15, 16, - 17, 18, 19, 20, -1, -1, -1, -1, -1, 26, - 27, 28, 29, -1, 31, 8, -1, -1, 35, -1, - 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, - -1, -1, -1, 26, 27, 28, 29, -1, 31, 8, - -1, -1, 35, -1, 13, 14, 15, 16, 17, 18, + -1, -1, 26, 27, 28, 29, 30, -1, 32, -1, + -1, -1, -1, -1, 8, -1, -1, -1, 42, 13, + 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, + -1, -1, 26, 27, 28, 29, 30, -1, 32, 8, + -1, -1, 36, -1, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, -1, 26, 27, 28, - 29, 8, 31, -1, -1, -1, 13, 14, 15, 16, - 17, 18, 19, -1, -1, -1, -1, -1, -1, 26, - 27, 28, 29, 8, 31, -1, -1, -1, 13, 14, + 29, 30, -1, 32, 8, -1, -1, 36, -1, 13, + 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, + -1, -1, 26, 27, 28, 29, 30, 8, 32, -1, + -1, -1, 13, 14, 15, 16, 17, 18, 19, -1, + -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, + 8, 32, -1, -1, -1, 13, 14, 15, 16, 17, + 18, -1, -1, -1, -1, -1, -1, -1, 26, 27, + 28, 29, 30, 8, 32, -1, -1, -1, 13, 14, 15, 16, 17, 18, -1, -1, -1, -1, -1, -1, - -1, 26, 27, 28, 29, 8, 31, -1, -1, -1, - 13, 14, 15, 16, 17, 18, -1, -1, -1, -1, - -1, -1, -1, 26, 27, 28, 29, -1, 31 + -1, 26, 27, 28, 29, 30, -1, 32 }; -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 3, 4, 5, 47, 48, 52, 53, 6, 49, - 50, 38, 38, 0, 52, 53, 53, 36, 34, 35, - 6, 7, 12, 55, 56, 57, 58, 59, 60, 70, - 55, 53, 7, 21, 22, 23, 27, 40, 51, 61, - 62, 63, 70, 50, 36, 40, 40, 39, 56, 38, - 54, 34, 34, 11, 42, 39, 40, 40, 40, 63, - 63, 35, 37, 28, 26, 8, 13, 14, 15, 16, - 17, 18, 19, 20, 26, 27, 28, 29, 31, 63, - 65, 66, 70, 6, 55, 63, 7, 67, 63, 64, - 70, 70, 41, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 43, 35, 37, 41, 10, 39, 40, 44, 45, 68, - 69, 35, 41, 41, 41, 63, 66, 11, 66, 41, - 64, 40, 40, 63, 63, 41, 41, 35, 63, 35, - 63, 41, 63, 35, 41, 63, 35, 41, 41, 63, - 41, 41, 63, 41, 41 + 0, 3, 4, 5, 48, 49, 53, 54, 6, 50, + 51, 39, 39, 0, 53, 54, 54, 37, 35, 36, + 6, 7, 12, 56, 57, 58, 59, 61, 62, 72, + 56, 54, 7, 21, 22, 23, 27, 41, 52, 63, + 64, 65, 72, 51, 37, 41, 41, 40, 57, 39, + 55, 35, 35, 11, 43, 44, 60, 40, 41, 41, + 41, 65, 65, 36, 38, 28, 26, 8, 13, 14, + 15, 16, 17, 18, 19, 20, 26, 27, 28, 29, + 30, 32, 65, 67, 68, 72, 6, 56, 7, 69, + 65, 65, 66, 72, 72, 42, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 36, 38, 42, 10, 40, 41, + 45, 46, 70, 71, 36, 42, 42, 42, 68, 60, + 68, 42, 66, 41, 41, 65, 65, 42, 42, 36, + 65, 36, 65, 42, 65, 36, 42, 65, 36, 42, + 42, 65, 42, 42, 65, 42, 42 }; -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab - - -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. However, - YYFAIL appears to be in use. Nevertheless, it is formally deprecated - in Bison 2.4.2's NEWS entry, where a plan to phase it out is - discussed. */ - -#define YYFAIL goto yyerrlab -#if defined YYFAIL - /* This is here to suppress warnings from the GCC cpp's - -Wunused-macros. Normally we don't worry about that warning, but - some users do, and we want to make it easy for users to remove - YYFAIL uses, which will produce warnings from Bison 2.5. */ -#endif + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint8 yyr1[] = +{ + 0, 47, 48, 48, 48, 48, 48, 49, 49, 50, + 50, 51, 51, 52, 52, 53, 54, 55, 56, 56, + 57, 57, 57, 57, 57, 58, 59, 60, 60, 61, + 61, 62, 62, 62, 63, 63, 64, 64, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 66, 66, 67, 67, 68, 68, 69, 69, 70, 70, + 70, 70, 71, 71, 71, 71, 72, 72 +}; + + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 0, 1, 2, 2, 3, 2, 3, 1, + 3, 1, 4, 1, 3, 4, 4, 3, 1, 2, + 1, 1, 1, 2, 2, 2, 6, 1, 1, 3, + 6, 3, 4, 4, 3, 3, 3, 3, 1, 1, + 4, 4, 4, 1, 3, 1, 3, 2, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 1, 3, 1, 3, 0, 1, 4, 3, 6, 5, + 5, 4, 6, 5, 5, 4, 1, 4 +}; + + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + #define YYRECOVERING() (!!yyerrstatus) @@ -877,99 +822,54 @@ else \ { \ yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (YYID (0)) - + YYERROR; \ + } \ +while (0) -#define YYTERROR 1 -#define YYERRCODE 256 +/* Error token number */ +#define YYTERROR 1 +#define YYERRCODE 256 -/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. - If N is 0, then set CURRENT to the empty location which ends - the previous symbol: RHS[0] (always defined). */ -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (YYID (N)) \ - { \ - (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ - (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ - (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ - (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ - } \ - else \ - { \ - (Current).first_line = (Current).last_line = \ - YYRHSLOC (Rhs, 0).last_line; \ - (Current).first_column = (Current).last_column = \ - YYRHSLOC (Rhs, 0).last_column; \ - } \ - while (YYID (0)) -#endif -#define YYRHSLOC(Rhs, K) ((Rhs)[K]) +/* Enable debugging if requested. */ +#if YYDEBUG +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) /* This macro is provided for backward compatibility. */ - #ifndef YY_LOCATION_PRINT # define YY_LOCATION_PRINT(File, Loc) ((void) 0) #endif -/* YYLEX -- calling `yylex' with the right arguments. */ +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) -#ifdef YYLEX_PARAM -# define YYLEX yylex (YYLEX_PARAM) -#else -# define YYLEX yylex () -#endif -/* Enable debugging if requested. */ -#if YYDEBUG +/*----------------------------------------. +| Print this symbol's value on YYOUTPUT. | +`----------------------------------------*/ -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (YYID (0)) - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (YYID (0)) - - -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ - -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_value_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif { FILE *yyo = yyoutput; YYUSE (yyo); @@ -978,14 +878,8 @@ # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# else - YYUSE (yyoutput); # endif - switch (yytype) - { - default: - break; - } + YYUSE (yytype); } @@ -993,22 +887,11 @@ | Print this symbol on YYOUTPUT. | `--------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif { - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + YYFPRINTF (yyoutput, "%s %s (", + yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); yy_symbol_value_print (yyoutput, yytype, yyvaluep); YYFPRINTF (yyoutput, ")"); @@ -1019,16 +902,8 @@ | TOP (included). | `------------------------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) -#else -static void -yy_stack_print (yybottom, yytop) - yytype_int16 *yybottom; - yytype_int16 *yytop; -#endif { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -1039,49 +914,42 @@ YYFPRINTF (stderr, "\n"); } -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (YYID (0)) +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_reduce_print (YYSTYPE *yyvsp, int yyrule) -#else -static void -yy_reduce_print (yyvsp, yyrule) - YYSTYPE *yyvsp; - int yyrule; -#endif +yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) { + unsigned long int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); + yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - ); + yy_symbol_print (stderr, + yystos[yyssp[yyi + 1 - yynrhs]], + &(yyvsp[(yyi + 1) - (yynrhs)]) + ); YYFPRINTF (stderr, "\n"); } } -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyvsp, Rule); \ -} while (YYID (0)) +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, Rule); \ +} while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ @@ -1095,7 +963,7 @@ /* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH +#ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif @@ -1118,15 +986,8 @@ # define yystrlen strlen # else /* Return the length of YYSTR. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static YYSIZE_T yystrlen (const char *yystr) -#else -static YYSIZE_T -yystrlen (yystr) - const char *yystr; -#endif { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) @@ -1142,16 +1003,8 @@ # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static char * yystpcpy (char *yydest, const char *yysrc) -#else -static char * -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -#endif { char *yyd = yydest; const char *yys = yysrc; @@ -1181,27 +1034,27 @@ char const *yyp = yystr; for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } do_not_strip_quotes: ; } @@ -1224,12 +1077,11 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken) { - YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); + YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ - const char *yyformat = YY_NULL; + const char *yyformat = YY_NULLPTR; /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Number of reported tokens (one for the "unexpected", one per @@ -1237,10 +1089,6 @@ int yycount = 0; /* There are many possibilities here to consider: - - Assume YYFAIL is not used. It's too flawed to consider. See - - for details. YYERROR is fine as it does not invoke this - function. - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action is an error action. In that case, don't check for expected @@ -1289,11 +1137,13 @@ break; } yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); - if (! (yysize <= yysize1 - && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) - return 2; - yysize = yysize1; + { + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + if (! (yysize <= yysize1 + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } } } } @@ -1313,10 +1163,12 @@ # undef YYCASE_ } - yysize1 = yysize + yystrlen (yyformat); - if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) - return 2; - yysize = yysize1; + { + YYSIZE_T yysize1 = yysize + yystrlen (yyformat); + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } if (*yymsg_alloc < yysize) { @@ -1353,31 +1205,17 @@ | Release the memory associated to this symbol. | `-----------------------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) -#else -static void -yydestruct (yymsg, yytype, yyvaluep) - const char *yymsg; - int yytype; - YYSTYPE *yyvaluep; -#endif { YYUSE (yyvaluep); - if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - switch (yytype) - { - - default: - break; - } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -1388,7 +1226,6 @@ /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; - /* Number of syntax errors so far. */ int yynerrs; @@ -1397,35 +1234,16 @@ | yyparse. | `----------*/ -#ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void *YYPARSE_PARAM) -#else -int -yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -#endif -#else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) int yyparse (void) -#else -int -yyparse () - -#endif -#endif { int yystate; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* The stacks and their tools: - `yyss': related to states. - `yyvs': related to semantic values. + 'yyss': related to states. + 'yyvs': related to semantic values. Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ @@ -1445,7 +1263,7 @@ int yyn; int yyresult; /* Lookahead token as an internal (translated) token number. */ - int yytoken; + int yytoken = 0; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; @@ -1463,9 +1281,8 @@ Keep to zero when no symbol should be popped. */ int yylen = 0; - yytoken = 0; - yyss = yyssa; - yyvs = yyvsa; + yyssp = yyss = yyssa; + yyvsp = yyvs = yyvsa; yystacksize = YYINITDEPTH; YYDPRINTF ((stderr, "Starting parse\n")); @@ -1474,13 +1291,6 @@ yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - yyssp = yyss; - yyvsp = yyvs; goto yysetstate; /*------------------------------------------------------------. @@ -1501,23 +1311,23 @@ #ifdef yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); - yyss = yyss1; - yyvs = yyvs1; + yyss = yyss1; + yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE @@ -1525,22 +1335,22 @@ # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; + yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ @@ -1549,10 +1359,10 @@ yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) - YYABORT; + YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); @@ -1581,7 +1391,7 @@ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; + yychar = yylex (); } if (yychar <= YYEOF) @@ -1621,7 +1431,9 @@ yychar = YYEMPTY; yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END goto yynewstate; @@ -1644,7 +1456,7 @@ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. + '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison @@ -1658,129 +1470,128 @@ switch (yyn) { case 7: -/* Line 1787 of yacc.c */ -#line 109 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - { _pvariables = (yyvsp[(2) - (2)].pvec); } +#line 112 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + { _pvariables = (yyvsp[0].pvec); } +#line 1476 "parser.cc" /* yacc.c:1646 */ break; case 8: -/* Line 1787 of yacc.c */ -#line 110 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - { _pvariables = (yyvsp[(2) - (3)].pvec); } +#line 113 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + { _pvariables = (yyvsp[-1].pvec); } +#line 1482 "parser.cc" /* yacc.c:1646 */ break; case 9: -/* Line 1787 of yacc.c */ -#line 113 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - { (yyval.pvec) = new std::vector(1, (yyvsp[(1) - (1)].ptree)); } +#line 116 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + { (yyval.pvec) = new std::vector(1, (yyvsp[0].ptree)); } +#line 1488 "parser.cc" /* yacc.c:1646 */ break; case 10: -/* Line 1787 of yacc.c */ -#line 114 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - { (yyval.pvec) = (yyvsp[(1) - (3)].pvec); (yyval.pvec)->push_back((yyvsp[(3) - (3)].ptree)); } +#line 117 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + { (yyval.pvec) = (yyvsp[-2].pvec); (yyval.pvec)->push_back((yyvsp[0].ptree)); } +#line 1494 "parser.cc" /* yacc.c:1646 */ break; case 11: -/* Line 1787 of yacc.c */ -#line 117 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 120 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_VAR, yylineno); setName((yyval.ptree), (yyvsp[(1) - (1)].stringptr)); + (yyval.ptree) = new ParseTree(jags::P_VAR, yylineno); setName((yyval.ptree), (yyvsp[0].stringptr)); } +#line 1502 "parser.cc" /* yacc.c:1646 */ break; case 12: -/* Line 1787 of yacc.c */ -#line 120 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 123 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_VAR, yylineno); setName((yyval.ptree), (yyvsp[(1) - (4)].stringptr)); - setParameters((yyval.ptree), (yyvsp[(3) - (4)].pvec)); + (yyval.ptree) = new ParseTree(jags::P_VAR, yylineno); setName((yyval.ptree), (yyvsp[-3].stringptr)); + setParameters((yyval.ptree), (yyvsp[-1].pvec)); } +#line 1511 "parser.cc" /* yacc.c:1646 */ break; case 13: -/* Line 1787 of yacc.c */ -#line 126 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - { (yyval.pvec) = new std::vector(1, (yyvsp[(1) - (1)].ptree)); } +#line 129 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + { (yyval.pvec) = new std::vector(1, (yyvsp[0].ptree)); } +#line 1517 "parser.cc" /* yacc.c:1646 */ break; case 14: -/* Line 1787 of yacc.c */ -#line 127 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - { (yyval.pvec)=(yyvsp[(1) - (3)].pvec); (yyval.pvec)->push_back((yyvsp[(3) - (3)].ptree)); } +#line 130 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + { (yyval.pvec)=(yyvsp[-2].pvec); (yyval.pvec)->push_back((yyvsp[0].ptree)); } +#line 1523 "parser.cc" /* yacc.c:1646 */ break; case 15: -/* Line 1787 of yacc.c */ -#line 130 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 133 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - ParseTree *p = new ParseTree(P_RELATIONS, yylineno); - setParameters(p, (yyvsp[(3) - (4)].pvec)); + ParseTree *p = new ParseTree(jags::P_RELATIONS, yylineno); + setParameters(p, (yyvsp[-1].pvec)); _pdata = p; } +#line 1533 "parser.cc" /* yacc.c:1646 */ break; case 16: -/* Line 1787 of yacc.c */ -#line 137 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 140 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - ParseTree *p = new ParseTree(P_RELATIONS, yylineno); - setParameters(p, (yyvsp[(3) - (4)].pvec)); + ParseTree *p = new ParseTree(jags::P_RELATIONS, yylineno); + setParameters(p, (yyvsp[-1].pvec)); _prelations = p; } +#line 1543 "parser.cc" /* yacc.c:1646 */ break; case 17: -/* Line 1787 of yacc.c */ -#line 144 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 147 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_RELATIONS, yylineno); - setParameters((yyval.ptree), (yyvsp[(2) - (3)].pvec)); + (yyval.ptree) = new ParseTree(jags::P_RELATIONS, yylineno); + setParameters((yyval.ptree), (yyvsp[-1].pvec)); } +#line 1552 "parser.cc" /* yacc.c:1646 */ break; case 18: -/* Line 1787 of yacc.c */ -#line 150 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - { (yyval.pvec) = new std::vector(1, (yyvsp[(1) - (1)].ptree)); } +#line 153 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + { (yyval.pvec) = new std::vector(1, (yyvsp[0].ptree)); } +#line 1558 "parser.cc" /* yacc.c:1646 */ break; case 19: -/* Line 1787 of yacc.c */ -#line 151 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - { (yyval.pvec)=(yyvsp[(1) - (2)].pvec); (yyval.pvec)->push_back((yyvsp[(2) - (2)].ptree)); } +#line 154 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + { (yyval.pvec)=(yyvsp[-1].pvec); (yyval.pvec)->push_back((yyvsp[0].ptree)); } +#line 1564 "parser.cc" /* yacc.c:1646 */ break; case 25: -/* Line 1787 of yacc.c */ -#line 161 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 164 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_FOR, yylineno); - setParameters((yyval.ptree), (yyvsp[(1) - (2)].ptree), (yyvsp[(2) - (2)].ptree)); + (yyval.ptree) = new ParseTree(jags::P_FOR, yylineno); + setParameters((yyval.ptree), (yyvsp[-1].ptree), (yyvsp[0].ptree)); } +#line 1573 "parser.cc" /* yacc.c:1646 */ break; case 26: -/* Line 1787 of yacc.c */ -#line 167 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 170 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_COUNTER, yylineno); setName((yyval.ptree), (yyvsp[(3) - (6)].stringptr)); - setParameters((yyval.ptree), (yyvsp[(5) - (6)].ptree)); + (yyval.ptree) = new ParseTree(jags::P_COUNTER, yylineno); setName((yyval.ptree), (yyvsp[-3].stringptr)); + setParameters((yyval.ptree), (yyvsp[-1].ptree)); } +#line 1582 "parser.cc" /* yacc.c:1646 */ break; - case 27: -/* Line 1787 of yacc.c */ -#line 173 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" + case 29: +#line 180 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_DETRMREL, yylineno); - setParameters((yyval.ptree), (yyvsp[(1) - (3)].ptree), (yyvsp[(3) - (3)].ptree)); + (yyval.ptree) = new ParseTree(jags::P_DETRMREL, yylineno); + setParameters((yyval.ptree), (yyvsp[-2].ptree), (yyvsp[0].ptree)); } +#line 1591 "parser.cc" /* yacc.c:1646 */ break; - case 28: -/* Line 1787 of yacc.c */ -#line 177 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" + case 30: +#line 184 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { /* @@ -1789,390 +1600,394 @@ function is applied to the RHS of the deterministic relation */ - ParseTree *p = new ParseTree(P_LINK, yylineno); setName(p, (yyvsp[(1) - (6)].stringptr)); - setParameters(p, (yyvsp[(6) - (6)].ptree)); + ParseTree *p = new ParseTree(jags::P_LINK, yylineno); setName(p, (yyvsp[-5].stringptr)); + setParameters(p, (yyvsp[0].ptree)); - (yyval.ptree) = new ParseTree(P_DETRMREL, yylineno); - setParameters((yyval.ptree), (yyvsp[(3) - (6)].ptree), p); + (yyval.ptree) = new ParseTree(jags::P_DETRMREL, yylineno); + setParameters((yyval.ptree), (yyvsp[-3].ptree), p); } +#line 1610 "parser.cc" /* yacc.c:1646 */ break; - case 29: -/* Line 1787 of yacc.c */ -#line 193 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" + case 31: +#line 200 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_STOCHREL, yylineno); - setParameters((yyval.ptree), (yyvsp[(1) - (3)].ptree), (yyvsp[(3) - (3)].ptree)); + (yyval.ptree) = new ParseTree(jags::P_STOCHREL, yylineno); + setParameters((yyval.ptree), (yyvsp[-2].ptree), (yyvsp[0].ptree)); } +#line 1619 "parser.cc" /* yacc.c:1646 */ break; - case 30: -/* Line 1787 of yacc.c */ -#line 197 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" + case 32: +#line 204 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_STOCHREL, yylineno); - setParameters((yyval.ptree), (yyvsp[(1) - (4)].ptree), (yyvsp[(3) - (4)].ptree), (yyvsp[(4) - (4)].ptree)); + (yyval.ptree) = new ParseTree(jags::P_STOCHREL, yylineno); + setParameters((yyval.ptree), (yyvsp[-3].ptree), (yyvsp[-1].ptree), (yyvsp[0].ptree)); } +#line 1628 "parser.cc" /* yacc.c:1646 */ break; - case 31: -/* Line 1787 of yacc.c */ -#line 201 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" + case 33: +#line 208 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_STOCHREL, yylineno); - setParameters((yyval.ptree), (yyvsp[(1) - (4)].ptree), (yyvsp[(3) - (4)].ptree), (yyvsp[(4) - (4)].ptree)); + (yyval.ptree) = new ParseTree(jags::P_STOCHREL, yylineno); + setParameters((yyval.ptree), (yyvsp[-3].ptree), (yyvsp[-1].ptree), (yyvsp[0].ptree)); } +#line 1637 "parser.cc" /* yacc.c:1646 */ break; - case 32: -/* Line 1787 of yacc.c */ -#line 207 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" + case 34: +#line 214 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { (yyval.pvec) = new std::vector; - (yyval.pvec)->push_back((yyvsp[(1) - (3)].ptree)); - (yyval.pvec)->push_back((yyvsp[(3) - (3)].ptree)); + (yyval.pvec)->push_back((yyvsp[-2].ptree)); + (yyval.pvec)->push_back((yyvsp[0].ptree)); } +#line 1647 "parser.cc" /* yacc.c:1646 */ break; - case 33: -/* Line 1787 of yacc.c */ -#line 212 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" + case 35: +#line 219 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { // This creates a shift-reduce conflict because in the expression // A*B*C, (A*B) is a valid expression. By default, bison shifts, // which is what we want. The warning is suppressed with the %expect // declaration (See also sum: below). - (yyval.pvec) = (yyvsp[(1) - (3)].pvec); - (yyval.pvec)->push_back((yyvsp[(3) - (3)].ptree)); + (yyval.pvec) = (yyvsp[-2].pvec); + (yyval.pvec)->push_back((yyvsp[0].ptree)); } +#line 1660 "parser.cc" /* yacc.c:1646 */ break; - case 34: -/* Line 1787 of yacc.c */ -#line 222 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" + case 36: +#line 229 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { (yyval.pvec) = new std::vector; - (yyval.pvec)->push_back((yyvsp[(1) - (3)].ptree)); - (yyval.pvec)->push_back((yyvsp[(3) - (3)].ptree)); + (yyval.pvec)->push_back((yyvsp[-2].ptree)); + (yyval.pvec)->push_back((yyvsp[0].ptree)); } +#line 1670 "parser.cc" /* yacc.c:1646 */ break; - case 35: -/* Line 1787 of yacc.c */ -#line 227 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" + case 37: +#line 234 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { // This creates a shift-reduce conflict. By default, bison shifts, // which is what we want. The warning is suppressed with the %expect // declaration (See also product: above). - (yyval.pvec) = (yyvsp[(1) - (3)].pvec); - (yyval.pvec)->push_back((yyvsp[(3) - (3)].ptree)); -} - break; - - case 37: -/* Line 1787 of yacc.c */ -#line 237 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - {(yyval.ptree) = new ParseTree(P_VALUE, yylineno); (yyval.ptree)->setValue((yyvsp[(1) - (1)].val));} - break; - - case 38: -/* Line 1787 of yacc.c */ -#line 238 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - { - (yyval.ptree) = new ParseTree(P_LENGTH, yylineno); - setParameters((yyval.ptree),(yyvsp[(3) - (4)].ptree)); + (yyval.pvec) = (yyvsp[-2].pvec); + (yyval.pvec)->push_back((yyvsp[0].ptree)); } +#line 1682 "parser.cc" /* yacc.c:1646 */ break; case 39: -/* Line 1787 of yacc.c */ -#line 242 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - { - (yyval.ptree) = new ParseTree(P_DIM, yylineno); - setParameters((yyval.ptree),(yyvsp[(3) - (4)].ptree)); -} +#line 244 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + {(yyval.ptree) = new ParseTree(jags::P_VALUE, yylineno); (yyval.ptree)->setValue((yyvsp[0].val));} +#line 1688 "parser.cc" /* yacc.c:1646 */ break; case 40: -/* Line 1787 of yacc.c */ -#line 246 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 245 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_FUNCTION, yylineno); setName((yyval.ptree), (yyvsp[(1) - (4)].stringptr)); - setParameters((yyval.ptree), (yyvsp[(3) - (4)].pvec)); + (yyval.ptree) = new ParseTree(jags::P_LENGTH, yylineno); + setParameters((yyval.ptree),(yyvsp[-1].ptree)); } +#line 1697 "parser.cc" /* yacc.c:1646 */ break; case 41: -/* Line 1787 of yacc.c */ -#line 250 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 249 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_FUNCTION, yylineno); (yyval.ptree)->setName("*"); - setParameters((yyval.ptree), (yyvsp[(1) - (1)].pvec)); + (yyval.ptree) = new ParseTree(jags::P_DIM, yylineno); + setParameters((yyval.ptree),(yyvsp[-1].ptree)); } +#line 1706 "parser.cc" /* yacc.c:1646 */ break; case 42: -/* Line 1787 of yacc.c */ -#line 254 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 253 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_FUNCTION, yylineno); (yyval.ptree)->setName("/"); - setParameters((yyval.ptree), (yyvsp[(1) - (3)].ptree), (yyvsp[(3) - (3)].ptree)); + (yyval.ptree) = new ParseTree(jags::P_FUNCTION, yylineno); setName((yyval.ptree), (yyvsp[-3].stringptr)); + setParameters((yyval.ptree), (yyvsp[-1].pvec)); } +#line 1715 "parser.cc" /* yacc.c:1646 */ break; case 43: -/* Line 1787 of yacc.c */ -#line 258 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 257 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_FUNCTION, yylineno); (yyval.ptree)->setName("+"); - setParameters((yyval.ptree), (yyvsp[(1) - (1)].pvec)); + (yyval.ptree) = new ParseTree(jags::P_FUNCTION, yylineno); (yyval.ptree)->setName("*"); + setParameters((yyval.ptree), (yyvsp[0].pvec)); } +#line 1724 "parser.cc" /* yacc.c:1646 */ break; case 44: -/* Line 1787 of yacc.c */ -#line 262 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 261 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_FUNCTION, yylineno); (yyval.ptree)->setName("-"); - setParameters((yyval.ptree), (yyvsp[(1) - (3)].ptree), (yyvsp[(3) - (3)].ptree)); + (yyval.ptree) = new ParseTree(jags::P_FUNCTION, yylineno); (yyval.ptree)->setName("/"); + setParameters((yyval.ptree), (yyvsp[-2].ptree), (yyvsp[0].ptree)); } +#line 1733 "parser.cc" /* yacc.c:1646 */ break; case 45: -/* Line 1787 of yacc.c */ -#line 266 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 265 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_FUNCTION, yylineno); (yyval.ptree)->setName("NEG"); - setParameters((yyval.ptree), (yyvsp[(2) - (2)].ptree)); + (yyval.ptree) = new ParseTree(jags::P_FUNCTION, yylineno); (yyval.ptree)->setName("+"); + setParameters((yyval.ptree), (yyvsp[0].pvec)); } +#line 1742 "parser.cc" /* yacc.c:1646 */ break; case 46: -/* Line 1787 of yacc.c */ -#line 270 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 269 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_FUNCTION, yylineno); (yyval.ptree)->setName(">"); - setParameters((yyval.ptree), (yyvsp[(1) - (3)].ptree), (yyvsp[(3) - (3)].ptree)); - } + (yyval.ptree) = new ParseTree(jags::P_FUNCTION, yylineno); (yyval.ptree)->setName("-"); + setParameters((yyval.ptree), (yyvsp[-2].ptree), (yyvsp[0].ptree)); +} +#line 1751 "parser.cc" /* yacc.c:1646 */ break; case 47: -/* Line 1787 of yacc.c */ -#line 274 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 273 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_FUNCTION, yylineno); (yyval.ptree)->setName(">="); - setParameters((yyval.ptree), (yyvsp[(1) - (3)].ptree), (yyvsp[(3) - (3)].ptree)); - } + (yyval.ptree) = new ParseTree(jags::P_FUNCTION, yylineno); (yyval.ptree)->setName("NEG"); + setParameters((yyval.ptree), (yyvsp[0].ptree)); +} +#line 1760 "parser.cc" /* yacc.c:1646 */ break; case 48: -/* Line 1787 of yacc.c */ -#line 278 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 277 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_FUNCTION, yylineno); (yyval.ptree)->setName("<"); - setParameters((yyval.ptree), (yyvsp[(1) - (3)].ptree), (yyvsp[(3) - (3)].ptree)); - } + (yyval.ptree) = new ParseTree(jags::P_FUNCTION, yylineno); (yyval.ptree)->setName(":"); + setParameters((yyval.ptree), (yyvsp[-2].ptree), (yyvsp[0].ptree)); +} +#line 1769 "parser.cc" /* yacc.c:1646 */ break; case 49: -/* Line 1787 of yacc.c */ -#line 282 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 281 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_FUNCTION, yylineno); (yyval.ptree)->setName("<="); - setParameters((yyval.ptree), (yyvsp[(1) - (3)].ptree), (yyvsp[(3) - (3)].ptree)); + (yyval.ptree) = new ParseTree(jags::P_FUNCTION, yylineno); (yyval.ptree)->setName(">"); + setParameters((yyval.ptree), (yyvsp[-2].ptree), (yyvsp[0].ptree)); } +#line 1778 "parser.cc" /* yacc.c:1646 */ break; case 50: -/* Line 1787 of yacc.c */ -#line 286 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 285 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_FUNCTION, yylineno); (yyval.ptree)->setName("=="); - setParameters((yyval.ptree), (yyvsp[(1) - (3)].ptree), (yyvsp[(3) - (3)].ptree)); + (yyval.ptree) = new ParseTree(jags::P_FUNCTION, yylineno); (yyval.ptree)->setName(">="); + setParameters((yyval.ptree), (yyvsp[-2].ptree), (yyvsp[0].ptree)); } +#line 1787 "parser.cc" /* yacc.c:1646 */ break; case 51: -/* Line 1787 of yacc.c */ -#line 290 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 289 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_FUNCTION, yylineno); (yyval.ptree)->setName("!="); - setParameters((yyval.ptree), (yyvsp[(1) - (3)].ptree), (yyvsp[(3) - (3)].ptree)); -} + (yyval.ptree) = new ParseTree(jags::P_FUNCTION, yylineno); (yyval.ptree)->setName("<"); + setParameters((yyval.ptree), (yyvsp[-2].ptree), (yyvsp[0].ptree)); + } +#line 1796 "parser.cc" /* yacc.c:1646 */ break; case 52: -/* Line 1787 of yacc.c */ -#line 294 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 293 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_FUNCTION, yylineno); (yyval.ptree)->setName("&&"); - setParameters((yyval.ptree), (yyvsp[(1) - (3)].ptree), (yyvsp[(3) - (3)].ptree)); + (yyval.ptree) = new ParseTree(jags::P_FUNCTION, yylineno); (yyval.ptree)->setName("<="); + setParameters((yyval.ptree), (yyvsp[-2].ptree), (yyvsp[0].ptree)); } +#line 1805 "parser.cc" /* yacc.c:1646 */ break; case 53: -/* Line 1787 of yacc.c */ -#line 298 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 297 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_FUNCTION, yylineno); (yyval.ptree)->setName("||"); - setParameters((yyval.ptree), (yyvsp[(1) - (3)].ptree), (yyvsp[(3) - (3)].ptree)); -} + (yyval.ptree) = new ParseTree(jags::P_FUNCTION, yylineno); (yyval.ptree)->setName("=="); + setParameters((yyval.ptree), (yyvsp[-2].ptree), (yyvsp[0].ptree)); + } +#line 1814 "parser.cc" /* yacc.c:1646 */ break; case 54: -/* Line 1787 of yacc.c */ -#line 302 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 301 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_FUNCTION, yylineno); (yyval.ptree)->setName("^"); - setParameters((yyval.ptree), (yyvsp[(1) - (3)].ptree), (yyvsp[(3) - (3)].ptree)); - } + (yyval.ptree) = new ParseTree(jags::P_FUNCTION, yylineno); (yyval.ptree)->setName("!="); + setParameters((yyval.ptree), (yyvsp[-2].ptree), (yyvsp[0].ptree)); +} +#line 1823 "parser.cc" /* yacc.c:1646 */ break; case 55: -/* Line 1787 of yacc.c */ -#line 306 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 305 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_FUNCTION, yylineno); setName((yyval.ptree), (yyvsp[(2) - (3)].stringptr)); - setParameters((yyval.ptree), (yyvsp[(1) - (3)].ptree), (yyvsp[(3) - (3)].ptree)); + (yyval.ptree) = new ParseTree(jags::P_FUNCTION, yylineno); (yyval.ptree)->setName("&&"); + setParameters((yyval.ptree), (yyvsp[-2].ptree), (yyvsp[0].ptree)); } +#line 1832 "parser.cc" /* yacc.c:1646 */ break; case 56: -/* Line 1787 of yacc.c */ -#line 310 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - { (yyval.ptree) = (yyvsp[(2) - (3)].ptree); } +#line 309 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + { + (yyval.ptree) = new ParseTree(jags::P_FUNCTION, yylineno); (yyval.ptree)->setName("||"); + setParameters((yyval.ptree), (yyvsp[-2].ptree), (yyvsp[0].ptree)); +} +#line 1841 "parser.cc" /* yacc.c:1646 */ break; case 57: -/* Line 1787 of yacc.c */ -#line 313 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - { (yyval.pvec) = new std::vector(1, (yyvsp[(1) - (1)].ptree)); } +#line 313 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + { + (yyval.ptree) = new ParseTree(jags::P_FUNCTION, yylineno); (yyval.ptree)->setName("^"); + setParameters((yyval.ptree), (yyvsp[-2].ptree), (yyvsp[0].ptree)); + } +#line 1850 "parser.cc" /* yacc.c:1646 */ break; case 58: -/* Line 1787 of yacc.c */ -#line 314 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - { (yyval.pvec)=(yyvsp[(1) - (3)].pvec); (yyval.pvec)->push_back((yyvsp[(3) - (3)].ptree)); } +#line 317 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + { + (yyval.ptree) = new ParseTree(jags::P_FUNCTION, yylineno); setName((yyval.ptree), (yyvsp[-1].stringptr)); + setParameters((yyval.ptree), (yyvsp[-2].ptree), (yyvsp[0].ptree)); + } +#line 1859 "parser.cc" /* yacc.c:1646 */ break; case 59: -/* Line 1787 of yacc.c */ -#line 317 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - { (yyval.pvec) = new std::vector(1, (yyvsp[(1) - (1)].ptree)); } +#line 321 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + { (yyval.ptree) = (yyvsp[-1].ptree); } +#line 1865 "parser.cc" /* yacc.c:1646 */ break; case 60: -/* Line 1787 of yacc.c */ -#line 318 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - { (yyval.pvec)=(yyvsp[(1) - (3)].pvec); (yyval.pvec)->push_back((yyvsp[(3) - (3)].ptree)); } +#line 324 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + { (yyval.pvec) = new std::vector(1, (yyvsp[0].ptree)); } +#line 1871 "parser.cc" /* yacc.c:1646 */ break; case 61: -/* Line 1787 of yacc.c */ -#line 321 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - {(yyval.ptree) = new ParseTree(P_RANGE, yylineno);} +#line 325 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + { (yyval.pvec)=(yyvsp[-2].pvec); (yyval.pvec)->push_back((yyvsp[0].ptree)); } +#line 1877 "parser.cc" /* yacc.c:1646 */ break; case 62: -/* Line 1787 of yacc.c */ -#line 322 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - {(yyval.ptree) = new ParseTree(P_RANGE, yylineno); setParameters((yyval.ptree),(yyvsp[(1) - (1)].ptree));} +#line 328 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + { (yyval.pvec) = new std::vector(1, (yyvsp[0].ptree)); } +#line 1883 "parser.cc" /* yacc.c:1646 */ break; case 63: -/* Line 1787 of yacc.c */ -#line 323 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - { - (yyval.ptree) = new ParseTree(P_RANGE, yylineno); setParameters((yyval.ptree), (yyvsp[(1) - (3)].ptree), (yyvsp[(3) - (3)].ptree)); -} +#line 329 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + { (yyval.pvec)=(yyvsp[-2].pvec); (yyval.pvec)->push_back((yyvsp[0].ptree)); } +#line 1889 "parser.cc" /* yacc.c:1646 */ break; case 64: -/* Line 1787 of yacc.c */ -#line 329 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - { - (yyval.ptree) = new ParseTree(P_DENSITY, yylineno); setName((yyval.ptree), (yyvsp[(1) - (4)].stringptr)); - setParameters((yyval.ptree), (yyvsp[(3) - (4)].pvec)); -} +#line 332 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + {(yyval.ptree) = new ParseTree(jags::P_RANGE, yylineno);} +#line 1895 "parser.cc" /* yacc.c:1646 */ break; case 65: -/* Line 1787 of yacc.c */ -#line 334 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 333 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - //BUGS has a dflat() distribution with no parameters - (yyval.ptree) = new ParseTree(P_DENSITY, yylineno); setName((yyval.ptree), (yyvsp[(1) - (3)].stringptr)); + (yyval.ptree) = new ParseTree(jags::P_RANGE, yylineno); + setParameters((yyval.ptree),(yyvsp[0].ptree)); } +#line 1904 "parser.cc" /* yacc.c:1646 */ break; case 66: -/* Line 1787 of yacc.c */ -#line 340 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - {(yyval.ptree) = Truncated((yyvsp[(3) - (6)].ptree),(yyvsp[(5) - (6)].ptree));} +#line 340 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + { + (yyval.ptree) = new ParseTree(jags::P_DENSITY, yylineno); setName((yyval.ptree), (yyvsp[-3].stringptr)); + setParameters((yyval.ptree), (yyvsp[-1].pvec)); +} +#line 1913 "parser.cc" /* yacc.c:1646 */ break; case 67: -/* Line 1787 of yacc.c */ -#line 341 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - {(yyval.ptree) = Truncated(0,(yyvsp[(4) - (5)].ptree));} +#line 345 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + { + //BUGS has a dflat() distribution with no parameters + (yyval.ptree) = new ParseTree(jags::P_DENSITY, yylineno); setName((yyval.ptree), (yyvsp[-2].stringptr)); +} +#line 1922 "parser.cc" /* yacc.c:1646 */ break; case 68: -/* Line 1787 of yacc.c */ -#line 342 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - {(yyval.ptree) = Truncated((yyvsp[(3) - (5)].ptree),0);} +#line 351 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + {(yyval.ptree) = Truncated((yyvsp[-3].ptree),(yyvsp[-1].ptree));} +#line 1928 "parser.cc" /* yacc.c:1646 */ break; case 69: -/* Line 1787 of yacc.c */ -#line 343 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - {(yyval.ptree) = Truncated(0,0);} +#line 352 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + {(yyval.ptree) = Truncated(0,(yyvsp[-1].ptree));} +#line 1934 "parser.cc" /* yacc.c:1646 */ break; case 70: -/* Line 1787 of yacc.c */ -#line 346 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - {(yyval.ptree) = Interval((yyvsp[(3) - (6)].ptree),(yyvsp[(5) - (6)].ptree));} +#line 353 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + {(yyval.ptree) = Truncated((yyvsp[-2].ptree),0);} +#line 1940 "parser.cc" /* yacc.c:1646 */ break; case 71: -/* Line 1787 of yacc.c */ -#line 347 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - {(yyval.ptree) = Interval(0,(yyvsp[(4) - (5)].ptree));} +#line 354 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + {(yyval.ptree) = Truncated(0,0);} +#line 1946 "parser.cc" /* yacc.c:1646 */ break; case 72: -/* Line 1787 of yacc.c */ -#line 348 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - {(yyval.ptree) = Interval((yyvsp[(3) - (5)].ptree),0);} +#line 357 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + {(yyval.ptree) = Interval((yyvsp[-3].ptree),(yyvsp[-1].ptree));} +#line 1952 "parser.cc" /* yacc.c:1646 */ break; case 73: -/* Line 1787 of yacc.c */ -#line 349 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - {(yyval.ptree) = Interval(0,0);} +#line 358 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + {(yyval.ptree) = Interval(0,(yyvsp[-1].ptree));} +#line 1958 "parser.cc" /* yacc.c:1646 */ break; case 74: -/* Line 1787 of yacc.c */ -#line 352 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 359 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + {(yyval.ptree) = Interval((yyvsp[-2].ptree),0);} +#line 1964 "parser.cc" /* yacc.c:1646 */ + break; + + case 75: +#line 360 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ + {(yyval.ptree) = Interval(0,0);} +#line 1970 "parser.cc" /* yacc.c:1646 */ + break; + + case 76: +#line 363 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_VAR, yylineno); setName((yyval.ptree), (yyvsp[(1) - (1)].stringptr)); + (yyval.ptree) = new ParseTree(jags::P_VAR, yylineno); setName((yyval.ptree), (yyvsp[0].stringptr)); } +#line 1978 "parser.cc" /* yacc.c:1646 */ break; - case 75: -/* Line 1787 of yacc.c */ -#line 355 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" + case 77: +#line 366 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_VAR, yylineno); setName((yyval.ptree), (yyvsp[(1) - (4)].stringptr)); - setParameters((yyval.ptree), (yyvsp[(3) - (4)].pvec)); + (yyval.ptree) = new ParseTree(jags::P_VAR, yylineno); setName((yyval.ptree), (yyvsp[-3].stringptr)); + setParameters((yyval.ptree), (yyvsp[-1].pvec)); } +#line 1987 "parser.cc" /* yacc.c:1646 */ break; -/* Line 1787 of yacc.c */ -#line 2176 "parser.cc" +#line 1991 "parser.cc" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -2194,7 +2009,7 @@ *++yyvsp = yyval; - /* Now `shift' the result of the reduction. Determine what state + /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -2209,9 +2024,9 @@ goto yynewstate; -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ @@ -2262,20 +2077,20 @@ if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an - error, discard it. */ + error, discard it. */ if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } else - { - yydestruct ("Error: discarding", - yytoken, &yylval); - yychar = YYEMPTY; - } + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } } /* Else will try to reuse lookahead token after shifting the error @@ -2294,7 +2109,7 @@ if (/*CONSTCOND*/ 0) goto yyerrorlab; - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; @@ -2307,35 +2122,37 @@ | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ + yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) - YYABORT; + YYABORT; yydestruct ("Error: popping", - yystos[yystate], yyvsp); + yystos[yystate], yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END /* Shift the error token. */ @@ -2378,14 +2195,14 @@ yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); } - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); + yystos[*yyssp], yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow @@ -2396,13 +2213,9 @@ if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif - /* Make sure YYID is used. */ - return YYID (yyresult); + return yyresult; } - - -/* Line 2048 of yacc.c */ -#line 361 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" +#line 372 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1906 */ static std::string error_buf; @@ -2421,7 +2234,7 @@ static ParseTree *Truncated (ParseTree *left, ParseTree *right) { //JAGS-Style truncation notation - ParseTree *p = new ParseTree(P_BOUNDS, yylineno); + ParseTree *p = new ParseTree(jags::P_BOUNDS, yylineno); setParameters(p, left, right); return p; } @@ -2429,7 +2242,7 @@ static ParseTree *Interval (ParseTree *left, ParseTree *right) { //BUGS-Style interval censoring notation - ParseTree *p = new ParseTree(P_INTERVAL, yylineno); + ParseTree *p = new ParseTree(jags::P_INTERVAL, yylineno); setParameters(p, left, right); return p; } @@ -2524,4 +2337,3 @@ return val; } - diff -Nru jags-3.4.0/src/lib/compiler/parser_extra.h jags-4.0.0/src/lib/compiler/parser_extra.h --- jags-3.4.0/src/lib/compiler/parser_extra.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/parser_extra.h 2015-02-22 08:33:05.000000000 +0000 @@ -17,8 +17,8 @@ * pvariables will point to a newly allocated ParseTree representing * the stochastic and logical relationships between declared nodes. */ -int parse_bugs(std::FILE *file, std::vector * &pvariables, - ParseTree * &pdata, ParseTree * &prelations, +int parse_bugs(std::FILE *file, std::vector * &pvariables, + jags::ParseTree * &pdata, jags::ParseTree * &prelations, std::string &message); #endif /* PARSER_EXTRA_H_ */ diff -Nru jags-3.4.0/src/lib/compiler/parser.h jags-4.0.0/src/lib/compiler/parser.h --- jags-3.4.0/src/lib/compiler/parser.h 2013-08-30 11:52:52.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/parser.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,152 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.6.1. */ - -/* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -#ifndef YY_PARSER_H -# define YY_PARSER_H -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; -#endif - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - VAR = 258, - DATA = 259, - MODEL = 260, - NAME = 261, - FUNC = 262, - SPECIAL = 263, - BADCHAR = 264, - IN = 265, - ARROW = 266, - FOR = 267, - GT = 268, - GE = 269, - LT = 270, - LE = 271, - EQ = 272, - NE = 273, - AND = 274, - OR = 275, - LENGTH = 276, - DIM = 277, - DOUBLE = 278, - INT = 279, - NOT = 280, - NEG = 281, - ENDL = 282, - UREPCHAR = 283 - }; -#endif -/* Tokens. */ -#define VAR 258 -#define DATA 259 -#define MODEL 260 -#define NAME 261 -#define FUNC 262 -#define SPECIAL 263 -#define BADCHAR 264 -#define IN 265 -#define ARROW 266 -#define FOR 267 -#define GT 268 -#define GE 269 -#define LT 270 -#define LE 271 -#define EQ 272 -#define NE 273 -#define AND 274 -#define OR 275 -#define LENGTH 276 -#define DIM 277 -#define DOUBLE 278 -#define INT 279 -#define NOT 280 -#define NEG 281 -#define ENDL 282 -#define UREPCHAR 283 - - - -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -{ -/* Line 2049 of yacc.c */ -#line 41 "../../../../../../jags-3_patched/src/lib/compiler/parser.yy" - - /* - We can't put any C++ class that requires a constructor in - union. In particular, we can't have strings. To get round this - limitation, we put a pointer to a string in the union, and then - get the lexical analyzer to return a pointer to a dynamically - allocated string. The parser frees the memory when it is done. - This is tedious, but the alternative is to copy character - arrays using, e.g. strncpy instead. - */ - double val; - std::string *stringptr; - ParseTree *ptree; - std::vector *pvec; - - -/* Line 2049 of yacc.c */ -#line 130 "parser.h" -} YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -#endif - -extern YYSTYPE yylval; - -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (void); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ - -#endif /* !YY_PARSER_H */ diff -Nru jags-3.4.0/src/lib/compiler/parser.hh jags-4.0.0/src/lib/compiler/parser.hh --- jags-3.4.0/src/lib/compiler/parser.hh 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/parser.hh 2015-09-27 11:56:18.000000000 +0000 @@ -0,0 +1,136 @@ +/* A Bison parser, made by GNU Bison 3.0.2. */ + +/* Bison interface for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +#ifndef YY_YY_PARSER_HH_INCLUDED +# define YY_YY_PARSER_HH_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Token type. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + VAR = 258, + DATA = 259, + MODEL = 260, + NAME = 261, + FUNC = 262, + SPECIAL = 263, + BADCHAR = 264, + IN = 265, + ARROW = 266, + FOR = 267, + GT = 268, + GE = 269, + LT = 270, + LE = 271, + EQ = 272, + NE = 273, + AND = 274, + OR = 275, + LENGTH = 276, + DIM = 277, + DOUBLE = 278, + INT = 279, + NOT = 280, + NEG = 281, + ENDL = 282, + UREPCHAR = 283 + }; +#endif +/* Tokens. */ +#define VAR 258 +#define DATA 259 +#define MODEL 260 +#define NAME 261 +#define FUNC 262 +#define SPECIAL 263 +#define BADCHAR 264 +#define IN 265 +#define ARROW 266 +#define FOR 267 +#define GT 268 +#define GE 269 +#define LT 270 +#define LE 271 +#define EQ 272 +#define NE 273 +#define AND 274 +#define OR 275 +#define LENGTH 276 +#define DIM 277 +#define DOUBLE 278 +#define INT 279 +#define NOT 280 +#define NEG 281 +#define ENDL 282 +#define UREPCHAR 283 + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE YYSTYPE; +union YYSTYPE +{ +#line 42 "../../../../../mcmc-jags/src/lib/compiler/parser.yy" /* yacc.c:1909 */ + + /* + We can't put any C++ class that requires a constructor in + union. In particular, we can't have strings. To get round this + limitation, we put a pointer to a string in the union, and then + get the lexical analyzer to return a pointer to a dynamically + allocated string. The parser frees the memory when it is done. + This is tedious, but the alternative is to copy character + arrays using, e.g. strncpy instead. + */ + double val; + std::string *stringptr; + jags::ParseTree *ptree; + std::vector *pvec; + +#line 126 "parser.hh" /* yacc.c:1909 */ +}; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + +extern YYSTYPE yylval; + +int yyparse (void); + +#endif /* !YY_YY_PARSER_HH_INCLUDED */ diff -Nru jags-3.4.0/src/lib/compiler/parser.yy jags-4.0.0/src/lib/compiler/parser.yy --- jags-3.4.0/src/lib/compiler/parser.yy 2012-07-23 15:36:40.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/parser.yy 2015-02-22 08:33:05.000000000 +0000 @@ -13,7 +13,8 @@ using std::malloc; using std::free; - +using jags::ParseTree; + void yyerror(const char *); int yylex(); int yylex_destroy(); @@ -50,8 +51,8 @@ */ double val; std::string *stringptr; - ParseTree *ptree; - std::vector *pvec; + jags::ParseTree *ptree; + std::vector *pvec; } %token VAR @@ -79,9 +80,11 @@ %left '+' '-' %left '*' '/' %left SPECIAL +%nonassoc ':' %left NEG %right '^' + %token ENDL %type node_dec @@ -115,10 +118,10 @@ ; node_dec: NAME { - $$ = new ParseTree(P_VAR, yylineno); setName($$, $1); + $$ = new ParseTree(jags::P_VAR, yylineno); setName($$, $1); } | NAME '[' dim_list ']' { - $$ = new ParseTree(P_VAR, yylineno); setName($$, $1); + $$ = new ParseTree(jags::P_VAR, yylineno); setName($$, $1); setParameters($$, $3); } ; @@ -128,21 +131,21 @@ ; data_stmt: DATA '{' relation_list '}' { - ParseTree *p = new ParseTree(P_RELATIONS, yylineno); + ParseTree *p = new ParseTree(jags::P_RELATIONS, yylineno); setParameters(p, $3); _pdata = p; } ; model_stmt: MODEL '{' relation_list '}' { - ParseTree *p = new ParseTree(P_RELATIONS, yylineno); + ParseTree *p = new ParseTree(jags::P_RELATIONS, yylineno); setParameters(p, $3); _prelations = p; } ; relations: '{' relation_list '}' { - $$ = new ParseTree(P_RELATIONS, yylineno); + $$ = new ParseTree(jags::P_RELATIONS, yylineno); setParameters($$, $2); } ; @@ -159,22 +162,26 @@ ; for_loop: counter relations { - $$ = new ParseTree(P_FOR, yylineno); + $$ = new ParseTree(jags::P_FOR, yylineno); setParameters($$, $1, $2); } ; counter: FOR '(' NAME IN range_element ')' { - $$ = new ParseTree(P_COUNTER, yylineno); setName($$, $3); + $$ = new ParseTree(jags::P_COUNTER, yylineno); setName($$, $3); setParameters($$, $5); } ; -determ_relation: var ARROW expression { - $$ = new ParseTree(P_DETRMREL, yylineno); +assignment: ARROW +| '=' +; + +determ_relation: var assignment expression { + $$ = new ParseTree(jags::P_DETRMREL, yylineno); setParameters($$, $1, $3); } -| FUNC '(' var ')' ARROW expression { +| FUNC '(' var ')' assignment expression { /* The link function is given using an S-style replacement function @@ -182,24 +189,24 @@ function is applied to the RHS of the deterministic relation */ - ParseTree *p = new ParseTree(P_LINK, yylineno); setName(p, $1); + ParseTree *p = new ParseTree(jags::P_LINK, yylineno); setName(p, $1); setParameters(p, $6); - $$ = new ParseTree(P_DETRMREL, yylineno); + $$ = new ParseTree(jags::P_DETRMREL, yylineno); setParameters($$, $3, p); } ; stoch_relation: var '~' distribution { - $$ = new ParseTree(P_STOCHREL, yylineno); + $$ = new ParseTree(jags::P_STOCHREL, yylineno); setParameters($$, $1, $3); } | var '~' distribution truncated { - $$ = new ParseTree(P_STOCHREL, yylineno); + $$ = new ParseTree(jags::P_STOCHREL, yylineno); setParameters($$, $1, $3, $4); } | var '~' distribution interval { - $$ = new ParseTree(P_STOCHREL, yylineno); + $$ = new ParseTree(jags::P_STOCHREL, yylineno); setParameters($$, $1, $3, $4); } ; @@ -234,77 +241,81 @@ ; expression: var -| DOUBLE {$$ = new ParseTree(P_VALUE, yylineno); $$->setValue($1);} +| DOUBLE {$$ = new ParseTree(jags::P_VALUE, yylineno); $$->setValue($1);} | LENGTH '(' var ')' { - $$ = new ParseTree(P_LENGTH, yylineno); + $$ = new ParseTree(jags::P_LENGTH, yylineno); setParameters($$,$3); } | DIM '(' var ')' { - $$ = new ParseTree(P_DIM, yylineno); + $$ = new ParseTree(jags::P_DIM, yylineno); setParameters($$,$3); } | FUNC '(' expression_list ')' { - $$ = new ParseTree(P_FUNCTION, yylineno); setName($$, $1); + $$ = new ParseTree(jags::P_FUNCTION, yylineno); setName($$, $1); setParameters($$, $3); } | product { - $$ = new ParseTree(P_FUNCTION, yylineno); $$->setName("*"); + $$ = new ParseTree(jags::P_FUNCTION, yylineno); $$->setName("*"); setParameters($$, $1); } | expression '/' expression { - $$ = new ParseTree(P_FUNCTION, yylineno); $$->setName("/"); + $$ = new ParseTree(jags::P_FUNCTION, yylineno); $$->setName("/"); setParameters($$, $1, $3); } | sum { - $$ = new ParseTree(P_FUNCTION, yylineno); $$->setName("+"); + $$ = new ParseTree(jags::P_FUNCTION, yylineno); $$->setName("+"); setParameters($$, $1); } | expression '-' expression { - $$ = new ParseTree(P_FUNCTION, yylineno); $$->setName("-"); + $$ = new ParseTree(jags::P_FUNCTION, yylineno); $$->setName("-"); setParameters($$, $1, $3); } | '-' expression %prec NEG { - $$ = new ParseTree(P_FUNCTION, yylineno); $$->setName("NEG"); + $$ = new ParseTree(jags::P_FUNCTION, yylineno); $$->setName("NEG"); setParameters($$, $2); } +| expression ':' expression { + $$ = new ParseTree(jags::P_FUNCTION, yylineno); $$->setName(":"); + setParameters($$, $1, $3); +} | expression GT expression { - $$ = new ParseTree(P_FUNCTION, yylineno); $$->setName(">"); + $$ = new ParseTree(jags::P_FUNCTION, yylineno); $$->setName(">"); setParameters($$, $1, $3); } | expression GE expression { - $$ = new ParseTree(P_FUNCTION, yylineno); $$->setName(">="); + $$ = new ParseTree(jags::P_FUNCTION, yylineno); $$->setName(">="); setParameters($$, $1, $3); } | expression LT expression { - $$ = new ParseTree(P_FUNCTION, yylineno); $$->setName("<"); + $$ = new ParseTree(jags::P_FUNCTION, yylineno); $$->setName("<"); setParameters($$, $1, $3); } | expression LE expression { - $$ = new ParseTree(P_FUNCTION, yylineno); $$->setName("<="); + $$ = new ParseTree(jags::P_FUNCTION, yylineno); $$->setName("<="); setParameters($$, $1, $3); } | expression EQ expression { - $$ = new ParseTree(P_FUNCTION, yylineno); $$->setName("=="); + $$ = new ParseTree(jags::P_FUNCTION, yylineno); $$->setName("=="); setParameters($$, $1, $3); } | expression NE expression { - $$ = new ParseTree(P_FUNCTION, yylineno); $$->setName("!="); + $$ = new ParseTree(jags::P_FUNCTION, yylineno); $$->setName("!="); setParameters($$, $1, $3); } | expression AND expression { - $$ = new ParseTree(P_FUNCTION, yylineno); $$->setName("&&"); + $$ = new ParseTree(jags::P_FUNCTION, yylineno); $$->setName("&&"); setParameters($$, $1, $3); } | expression OR expression { - $$ = new ParseTree(P_FUNCTION, yylineno); $$->setName("||"); + $$ = new ParseTree(jags::P_FUNCTION, yylineno); $$->setName("||"); setParameters($$, $1, $3); } | expression '^' expression { - $$ = new ParseTree(P_FUNCTION, yylineno); $$->setName("^"); + $$ = new ParseTree(jags::P_FUNCTION, yylineno); $$->setName("^"); setParameters($$, $1, $3); } | expression SPECIAL expression { - $$ = new ParseTree(P_FUNCTION, yylineno); setName($$, $2); + $$ = new ParseTree(jags::P_FUNCTION, yylineno); setName($$, $2); setParameters($$, $1, $3); } | '(' expression ')' { $$ = $2; } @@ -318,22 +329,22 @@ | range_list ',' range_element { $$=$1; $$->push_back($3); } ; -range_element: {$$ = new ParseTree(P_RANGE, yylineno);} -| expression {$$ = new ParseTree(P_RANGE, yylineno); setParameters($$,$1);} -| expression ':' expression { - $$ = new ParseTree(P_RANGE, yylineno); setParameters($$, $1, $3); +range_element: {$$ = new ParseTree(jags::P_RANGE, yylineno);} +| expression { + $$ = new ParseTree(jags::P_RANGE, yylineno); + setParameters($$,$1); } ; distribution: FUNC '(' expression_list ')' { - $$ = new ParseTree(P_DENSITY, yylineno); setName($$, $1); + $$ = new ParseTree(jags::P_DENSITY, yylineno); setName($$, $1); setParameters($$, $3); } | FUNC '(' ')' { //BUGS has a dflat() distribution with no parameters - $$ = new ParseTree(P_DENSITY, yylineno); setName($$, $1); + $$ = new ParseTree(jags::P_DENSITY, yylineno); setName($$, $1); } ; @@ -350,10 +361,10 @@ ; var: NAME { - $$ = new ParseTree(P_VAR, yylineno); setName($$, $1); + $$ = new ParseTree(jags::P_VAR, yylineno); setName($$, $1); } | NAME '[' range_list ']' { - $$ = new ParseTree(P_VAR, yylineno); setName($$, $1); + $$ = new ParseTree(jags::P_VAR, yylineno); setName($$, $1); setParameters($$, $3); } ; @@ -376,7 +387,7 @@ static ParseTree *Truncated (ParseTree *left, ParseTree *right) { //JAGS-Style truncation notation - ParseTree *p = new ParseTree(P_BOUNDS, yylineno); + ParseTree *p = new ParseTree(jags::P_BOUNDS, yylineno); setParameters(p, left, right); return p; } @@ -384,7 +395,7 @@ static ParseTree *Interval (ParseTree *left, ParseTree *right) { //BUGS-Style interval censoring notation - ParseTree *p = new ParseTree(P_INTERVAL, yylineno); + ParseTree *p = new ParseTree(jags::P_INTERVAL, yylineno); setParameters(p, left, right); return p; } diff -Nru jags-3.4.0/src/lib/compiler/ParseTree.cc jags-4.0.0/src/lib/compiler/ParseTree.cc --- jags-3.4.0/src/lib/compiler/ParseTree.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/ParseTree.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,8 @@ using std::vector; using std::logic_error; +namespace jags { + ParseTree::ParseTree(TreeClass tclass, int line) : _tclass(tclass), _parameters(), _parent(0), _name(), _value(0), _line(line) @@ -103,3 +105,5 @@ } _parameters = parameters; } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/compiler/scanner.cc jags-4.0.0/src/lib/compiler/scanner.cc --- jags-3.4.0/src/lib/compiler/scanner.cc 2013-08-30 11:52:52.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/scanner.cc 2015-09-27 11:56:18.000000000 +0000 @@ -8,7 +8,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 36 +#define YY_FLEX_SUBMINOR_VERSION 37 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -429,61 +429,61 @@ static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, + 1, 4, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 5, 1, 6, 1, 7, 8, 1, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 18, 19, 20, - 21, 22, 1, 1, 23, 23, 23, 23, 24, 23, - 23, 23, 25, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 26, 23, 23, 23, 23, 23, 23, - 27, 1, 28, 29, 30, 1, 31, 23, 23, 32, - - 33, 34, 35, 36, 37, 23, 23, 38, 39, 40, - 41, 23, 23, 42, 23, 43, 23, 44, 23, 23, - 23, 23, 45, 46, 47, 48, 1, 1, 1, 1, + 1, 2, 6, 1, 7, 1, 8, 9, 1, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 19, 20, 21, + 22, 23, 1, 1, 24, 24, 24, 24, 25, 24, + 24, 24, 26, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 27, 24, 24, 24, 24, 24, 24, + 28, 1, 29, 30, 31, 1, 32, 24, 24, 33, + + 34, 35, 36, 37, 38, 24, 24, 39, 40, 41, + 42, 24, 24, 43, 24, 44, 24, 45, 24, 24, + 24, 24, 46, 47, 48, 49, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 49, 1, - 50, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 50, 1, + 51, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 51, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 52, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[52] = +static yyconst flex_int32_t yy_meta[53] = { 0, - 1, 2, 3, 3, 1, 1, 1, 1, 4, 1, - 5, 1, 1, 1, 4, 1, 4, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 1, 1, 1, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, - 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, - 1 + 1, 2, 3, 1, 3, 1, 1, 1, 1, 4, + 1, 5, 1, 1, 1, 4, 1, 4, 1, 1, + 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, + 1, 1 } ; static yyconst flex_int16_t yy_base[123] = { 0, - 0, 0, 203, 202, 212, 266, 50, 53, 190, 207, - 202, 200, 266, 266, 196, 266, 266, 266, 188, 193, - 43, 266, 266, 45, 181, 180, 60, 63, 59, 266, - 266, 266, 61, 62, 72, 77, 80, 82, 266, 154, - 266, 266, 146, 0, 72, 92, 266, 187, 266, 170, - 154, 266, 266, 82, 266, 83, 87, 105, 266, 266, - 266, 266, 99, 266, 116, 121, 122, 266, 124, 266, - 125, 126, 127, 130, 135, 138, 136, 266, 102, 0, - 98, 130, 266, 266, 136, 125, 140, 126, 88, 153, - 154, 157, 158, 266, 162, 170, 171, 266, 80, 70, - - 68, 56, 172, 174, 266, 180, 266, 183, 184, 185, - 186, 189, 197, 266, 266, 226, 232, 238, 243, 249, - 255, 259 + 0, 0, 206, 205, 216, 258, 51, 55, 193, 211, + 205, 203, 258, 258, 199, 258, 258, 258, 192, 197, + 45, 258, 258, 47, 186, 185, 62, 65, 63, 258, + 258, 258, 66, 64, 75, 80, 82, 85, 258, 159, + 258, 258, 150, 0, 74, 97, 258, 195, 258, 187, + 168, 258, 258, 85, 258, 87, 93, 107, 258, 258, + 258, 258, 87, 258, 105, 121, 124, 258, 126, 258, + 127, 128, 130, 131, 133, 137, 140, 258, 125, 0, + 96, 132, 258, 258, 133, 127, 140, 148, 145, 152, + 154, 155, 157, 258, 167, 170, 176, 258, 142, 76, + + 70, 53, 177, 179, 258, 180, 258, 183, 186, 189, + 190, 192, 195, 258, 258, 227, 232, 237, 241, 245, + 249, 253 } ; static yyconst flex_int16_t yy_def[123] = @@ -504,82 +504,80 @@ 115, 115 } ; -static yyconst flex_int16_t yy_nxt[318] = +static yyconst flex_int16_t yy_nxt[311] = { 0, - 6, 7, 8, 7, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 27, 28, 29, 30, 31, 32, 6, - 27, 33, 27, 34, 27, 27, 35, 36, 37, 27, - 27, 27, 27, 38, 39, 40, 41, 42, 6, 6, - 43, 46, 46, 46, 46, 46, 46, 56, 59, 57, - 69, 63, 63, 63, 67, 60, 58, 70, 64, 64, - 64, 68, 102, 63, 65, 58, 65, 65, 63, 65, - 64, 63, 82, 63, 102, 64, 100, 83, 64, 65, - 64, 71, 65, 46, 46, 46, 100, 72, 54, 86, - - 63, 56, 73, 57, 89, 85, 87, 64, 115, 75, - 58, 74, 77, 115, 85, 87, 88, 63, 88, 58, - 76, 89, 63, 67, 64, 69, 63, 63, 63, 64, - 68, 93, 70, 64, 64, 64, 63, 63, 94, 63, - 82, 86, 89, 64, 64, 83, 64, 99, 87, 99, - 98, 101, 100, 101, 63, 104, 102, 87, 106, 93, - 51, 64, 105, 63, 91, 107, 94, 90, 92, 96, - 64, 63, 63, 63, 95, 104, 84, 97, 64, 64, - 64, 106, 105, 103, 63, 63, 63, 63, 107, 49, - 113, 64, 64, 64, 64, 79, 108, 114, 113, 78, - - 62, 61, 109, 55, 54, 114, 53, 52, 51, 49, - 47, 115, 45, 45, 115, 115, 115, 115, 115, 115, - 112, 111, 115, 115, 115, 110, 44, 44, 44, 44, - 44, 44, 48, 48, 48, 48, 48, 48, 50, 115, - 115, 50, 50, 50, 66, 115, 66, 115, 66, 80, - 80, 80, 80, 115, 80, 81, 81, 81, 81, 81, - 65, 115, 65, 115, 65, 5, 115, 115, 115, 115, + 6, 7, 8, 7, 7, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 27, 28, 29, 30, 31, 32, + 6, 27, 33, 27, 34, 27, 27, 35, 36, 37, + 27, 27, 27, 27, 38, 39, 40, 41, 42, 6, + 6, 43, 46, 46, 46, 46, 46, 46, 46, 46, + 56, 59, 57, 63, 69, 63, 67, 63, 60, 58, + 102, 64, 70, 64, 68, 64, 63, 65, 58, 65, + 65, 63, 65, 63, 64, 82, 63, 102, 63, 64, + 83, 64, 65, 100, 64, 65, 64, 71, 46, 46, + + 46, 46, 54, 72, 86, 73, 63, 115, 56, 85, + 57, 87, 115, 75, 64, 74, 77, 58, 85, 88, + 87, 88, 63, 76, 89, 67, 58, 69, 63, 63, + 64, 63, 93, 68, 63, 70, 64, 64, 63, 64, + 94, 63, 64, 82, 86, 99, 64, 99, 83, 64, + 100, 87, 101, 63, 101, 104, 106, 102, 93, 100, + 87, 64, 89, 105, 107, 89, 94, 91, 63, 96, + 90, 63, 92, 95, 98, 51, 64, 63, 63, 64, + 104, 106, 97, 103, 63, 64, 64, 63, 105, 107, + 63, 63, 64, 113, 84, 64, 113, 49, 64, 64, + + 79, 114, 108, 109, 114, 78, 62, 61, 55, 54, + 53, 52, 51, 49, 47, 115, 45, 45, 115, 115, + 115, 115, 115, 115, 111, 112, 110, 44, 44, 44, + 44, 44, 48, 48, 48, 48, 48, 50, 115, 115, + 50, 50, 66, 115, 66, 80, 80, 80, 80, 81, + 81, 81, 81, 81, 65, 115, 65, 5, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115 + + 115, 115, 115, 115, 115, 115, 115, 115, 115, 115 } ; -static yyconst flex_int16_t yy_chk[318] = +static yyconst flex_int16_t yy_chk[311] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 7, 7, 7, 8, 8, 8, 21, 24, 21, - 29, 27, 33, 34, 28, 24, 21, 29, 27, 33, - 34, 28, 102, 35, 27, 21, 27, 28, 36, 28, - 35, 37, 45, 38, 101, 36, 100, 45, 37, 27, - 38, 33, 28, 46, 46, 46, 99, 33, 54, 56, - - 63, 57, 34, 57, 89, 54, 56, 63, 81, 36, - 57, 35, 38, 81, 54, 56, 58, 65, 58, 57, - 37, 58, 66, 67, 65, 69, 71, 72, 73, 66, - 67, 74, 69, 71, 72, 73, 75, 77, 74, 76, - 82, 86, 88, 75, 77, 82, 76, 85, 86, 85, - 79, 87, 85, 87, 90, 91, 87, 86, 92, 93, - 51, 90, 91, 95, 72, 92, 93, 71, 73, 76, - 95, 96, 97, 103, 75, 104, 50, 77, 96, 97, - 103, 106, 104, 90, 108, 109, 110, 111, 106, 48, - 112, 108, 109, 110, 111, 43, 95, 112, 113, 40, - - 26, 25, 96, 20, 19, 113, 15, 12, 11, 10, - 9, 5, 4, 3, 0, 0, 0, 0, 0, 0, - 110, 109, 0, 0, 0, 108, 116, 116, 116, 116, - 116, 116, 117, 117, 117, 117, 117, 117, 118, 0, - 0, 118, 118, 118, 119, 0, 119, 0, 119, 120, - 120, 120, 120, 0, 120, 121, 121, 121, 121, 121, - 122, 0, 122, 0, 122, 115, 115, 115, 115, 115, + 1, 1, 7, 7, 7, 7, 8, 8, 8, 8, + 21, 24, 21, 27, 29, 34, 28, 33, 24, 21, + 102, 27, 29, 34, 28, 33, 35, 27, 21, 27, + 28, 36, 28, 37, 35, 45, 38, 101, 63, 36, + 45, 37, 27, 100, 38, 28, 63, 33, 46, 46, + + 46, 46, 54, 33, 56, 34, 65, 81, 57, 54, + 57, 56, 81, 36, 65, 35, 38, 57, 54, 58, + 56, 58, 66, 37, 58, 67, 57, 69, 71, 72, + 66, 73, 74, 67, 75, 69, 71, 72, 76, 73, + 74, 77, 75, 82, 86, 85, 76, 85, 82, 77, + 85, 86, 87, 90, 87, 91, 92, 87, 93, 99, + 86, 90, 89, 91, 92, 88, 93, 72, 95, 76, + 71, 96, 73, 75, 79, 51, 95, 97, 103, 96, + 104, 106, 77, 90, 108, 97, 103, 109, 104, 106, + 110, 111, 108, 112, 50, 109, 113, 48, 110, 111, + + 43, 112, 95, 96, 113, 40, 26, 25, 20, 19, + 15, 12, 11, 10, 9, 5, 4, 3, 0, 0, + 0, 0, 0, 0, 109, 110, 108, 116, 116, 116, + 116, 116, 117, 117, 117, 117, 117, 118, 0, 0, + 118, 118, 119, 0, 119, 120, 120, 120, 120, 121, + 121, 121, 121, 121, 122, 0, 122, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115 + + 115, 115, 115, 115, 115, 115, 115, 115, 115, 115 } ; /* Table of booleans, true if rule could match eol. */ @@ -615,9 +613,9 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; -#line 1 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 1 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" /* -*-C++-*- */ -#line 3 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 3 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" /* Note the use of trailing context in the rules for the functions, allowing function names to be used as variable names. This occurs in the "otree" example where "mean" is used as a variable name. @@ -625,7 +623,7 @@ #include #include "remap.h" -#include "parser.h" +#include "parser.hh" #include @@ -633,7 +631,7 @@ #define YY_FATAL_ERROR(msg) jags_scanner_error (msg) -#line 637 "scanner.cc" +#line 635 "scanner.cc" #define INITIAL 0 #define COMMENT 1 @@ -814,9 +812,9 @@ register char *yy_cp, *yy_bp; register int yy_act; -#line 28 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 28 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" -#line 820 "scanner.cc" +#line 818 "scanner.cc" if ( !(yy_init) ) { @@ -881,7 +879,7 @@ *(yy_state_ptr)++ = yy_current_state; ++yy_cp; } - while ( yy_base[yy_current_state] != 266 ); + while ( yy_base[yy_current_state] != 258 ); yy_find_action: yy_current_state = *--(yy_state_ptr); @@ -926,7 +924,7 @@ if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] ) { - int yyl; + yy_size_t yyl; for ( yyl = 0; yyl < yyleng; ++yyl ) if ( yytext[yyl] == '\n' ) @@ -940,17 +938,17 @@ { /* beginning of action switch */ case 1: YY_RULE_SETUP -#line 29 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 29 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return VAR; YY_BREAK case 2: YY_RULE_SETUP -#line 30 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 30 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return DATA; YY_BREAK case 3: YY_RULE_SETUP -#line 31 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 31 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return MODEL; YY_BREAK case 4: @@ -958,7 +956,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 32 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 32 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return LENGTH; YY_BREAK case 5: @@ -966,7 +964,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 33 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 33 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return DIM; YY_BREAK case 6: @@ -974,7 +972,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 34 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 34 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return FOR; YY_BREAK case 7: @@ -982,147 +980,147 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 35 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 35 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return IN; YY_BREAK case 8: YY_RULE_SETUP -#line 36 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 36 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return IN; YY_BREAK case 9: YY_RULE_SETUP -#line 37 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 37 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return ';'; YY_BREAK case 10: YY_RULE_SETUP -#line 38 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 38 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return ','; YY_BREAK case 11: YY_RULE_SETUP -#line 39 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 39 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return ':'; YY_BREAK case 12: YY_RULE_SETUP -#line 40 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 40 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return '['; YY_BREAK case 13: YY_RULE_SETUP -#line 41 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 41 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return ']'; YY_BREAK case 14: YY_RULE_SETUP -#line 42 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 42 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return '('; YY_BREAK case 15: YY_RULE_SETUP -#line 43 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 43 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return ')'; YY_BREAK case 16: YY_RULE_SETUP -#line 44 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 44 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return '{'; YY_BREAK case 17: YY_RULE_SETUP -#line 45 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 45 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return '}'; YY_BREAK case 18: YY_RULE_SETUP -#line 46 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 46 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return LE; YY_BREAK case 19: YY_RULE_SETUP -#line 47 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 47 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return LT; YY_BREAK case 20: YY_RULE_SETUP -#line 48 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 48 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return GE; YY_BREAK case 21: YY_RULE_SETUP -#line 49 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 49 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return GT; YY_BREAK case 22: YY_RULE_SETUP -#line 50 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 50 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return AND; YY_BREAK case 23: YY_RULE_SETUP -#line 51 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 51 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return OR; YY_BREAK case 24: YY_RULE_SETUP -#line 52 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 52 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return NE; YY_BREAK case 25: YY_RULE_SETUP -#line 53 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 53 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return NOT; YY_BREAK case 26: YY_RULE_SETUP -#line 54 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 54 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return EQ; YY_BREAK case 27: YY_RULE_SETUP -#line 55 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 55 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return '='; YY_BREAK case 28: YY_RULE_SETUP -#line 56 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 56 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return '~'; YY_BREAK case 29: YY_RULE_SETUP -#line 57 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 57 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return ARROW; YY_BREAK case 30: YY_RULE_SETUP -#line 58 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 58 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return '+'; YY_BREAK case 31: YY_RULE_SETUP -#line 59 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 59 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return '-'; YY_BREAK case 32: YY_RULE_SETUP -#line 60 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 60 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return '^'; YY_BREAK case 33: YY_RULE_SETUP -#line 61 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 61 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return '^'; YY_BREAK case 34: YY_RULE_SETUP -#line 62 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 62 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return '*'; YY_BREAK case 35: YY_RULE_SETUP -#line 63 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 63 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return '/'; YY_BREAK case 36: @@ -1130,7 +1128,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 65 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 65 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return 'T'; YY_BREAK case 37: @@ -1138,12 +1136,12 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 66 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 66 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" return 'I'; YY_BREAK case 38: YY_RULE_SETUP -#line 68 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 68 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" { /* Special operators, e.g. %*% for matrix multiplication */ yylval.stringptr = new std::string(yytext); @@ -1152,62 +1150,62 @@ YY_BREAK case 39: YY_RULE_SETUP -#line 74 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 74 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" BEGIN(COMMENT); YY_BREAK case 40: /* rule 40 can match eol */ YY_RULE_SETUP -#line 75 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" -/* Eat up anything that's not a '*' */ +#line 75 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" +; /* Eat up anything that's not a '*' */ YY_BREAK case 41: /* rule 41 can match eol */ YY_RULE_SETUP -#line 76 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" -/* Eat up '*'s not followed by a '/' */ +#line 76 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" +; /* Eat up '*'s not followed by a '/' */ YY_BREAK case 42: YY_RULE_SETUP -#line 77 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 77 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" BEGIN(INITIAL); YY_BREAK case 43: /* rule 43 can match eol */ YY_RULE_SETUP -#line 79 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 79 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" /* Eat whitespace */ YY_BREAK case 44: /* rule 44 can match eol */ YY_RULE_SETUP -#line 80 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 80 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" /* Eat comments */ YY_BREAK case 45: YY_RULE_SETUP -#line 83 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 83 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" { yylval.val = atof(yytext); return DOUBLE; } YY_BREAK case 46: YY_RULE_SETUP -#line 86 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 86 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" { yylval.val = atof(yytext); return DOUBLE; } YY_BREAK case 47: YY_RULE_SETUP -#line 89 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 89 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" { yylval.val = atof(yytext); return DOUBLE; } YY_BREAK case 48: YY_RULE_SETUP -#line 93 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 93 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" { yylval.stringptr = new std::string(yytext); return FUNC; @@ -1215,7 +1213,7 @@ YY_BREAK case 49: YY_RULE_SETUP -#line 98 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 98 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" { yylval.stringptr = new std::string(yytext); return NAME; @@ -1223,19 +1221,19 @@ YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(COMMENT): -#line 103 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 103 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" yyterminate(); YY_BREAK case 50: YY_RULE_SETUP -#line 105 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 105 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" { throw std::logic_error("Coding error in file (UTF-8 replacement char U+FFFD found by parser)"); } YY_BREAK case 51: YY_RULE_SETUP -#line 109 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 109 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" { /* Default rule for unmatched input. We return a BADCHAR which is not matched by any grammar rule, @@ -1246,10 +1244,10 @@ YY_BREAK case 52: YY_RULE_SETUP -#line 117 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 117 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 1253 "scanner.cc" +#line 1251 "scanner.cc" case YY_END_OF_BUFFER: { @@ -1945,7 +1943,7 @@ YY_BUFFER_STATE b; char *buf; yy_size_t n; - int i; + yy_size_t i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; @@ -2186,7 +2184,7 @@ #define YYTABLES_NAME "yytables" -#line 117 "../../../../../../jags-3_patched/src/lib/compiler/scanner.ll" +#line 117 "../../../../../mcmc-jags/src/lib/compiler/scanner.ll" diff -Nru jags-3.4.0/src/lib/compiler/scanner.ll jags-4.0.0/src/lib/compiler/scanner.ll --- jags-3.4.0/src/lib/compiler/scanner.ll 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/compiler/scanner.ll 2015-02-22 08:33:05.000000000 +0000 @@ -7,7 +7,7 @@ #include #include "remap.h" -#include "parser.h" +#include "parser.hh" #include @@ -72,11 +72,11 @@ } "/*" BEGIN(COMMENT); -[^*]* /* Eat up anything that's not a '*' */ -"*"+[^*/n]* /* Eat up '*'s not followed by a '/' */ +[^*]* ; /* Eat up anything that's not a '*' */ +"*"+[^*/]* ; /* Eat up '*'s not followed by a '/' */ "*"+"/" BEGIN(INITIAL); -[ \t\r\n]+ /* Eat whitespace */ +[ \t\r\n\f]+ /* Eat whitespace */ "#".*\n /* Eat comments */ diff -Nru jags-3.4.0/src/lib/Console.cc jags-4.0.0/src/lib/Console.cc --- jags-3.4.0/src/lib/Console.cc 2012-11-26 14:29:09.000000000 +0000 +++ jags-4.0.0/src/lib/Console.cc 2015-09-13 20:17:06.000000000 +0000 @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -14,7 +15,8 @@ #include #include #include -#include +#include +#include #include #include @@ -34,20 +36,23 @@ using std::FILE; #define CATCH_ERRORS \ - catch (NodeError except) { \ - _err << "Error in node " << \ - _model->symtab().getName(except.node) << "\n"; \ - _err << except.what() << endl; \ + catch (ParentError const &except) { \ + except.printMessage(_err, _model->symtab()); \ clearModel(); \ return false; \ } \ - catch (std::runtime_error except) { \ + catch (NodeError const &except) { \ + except.printMessage(_err, _model->symtab()); \ + clearModel(); \ + return false; \ + } \ + catch (std::runtime_error const &except) { \ _err << "RUNTIME ERROR:\n"; \ _err << except.what() << endl; \ clearModel(); \ return false; \ } \ - catch (std::logic_error except) { \ + catch (std::logic_error const &except) { \ _err << "LOGIC ERROR:\n" << except.what() << '\n'; \ _err << "Please send a bug report to " \ << PACKAGE_BUGREPORT << endl; \ @@ -57,14 +62,16 @@ /* Helper functions for dumpState */ +namespace jags { + static bool isData(Node const *node) { - return node->isRandomVariable() && node->isObserved(); + return node->randomVariableStatus() == RV_TRUE_OBSERVED; } static bool isParameter(Node const *node) { - return node->isRandomVariable() && !node->isObserved(); + return node->randomVariableStatus() == RV_TRUE_UNOBSERVED; } static bool alwaysTrue(Node const *node) @@ -91,51 +98,44 @@ } } -static void getVariableNames(ParseTree const *ptree, set &names, - vector &counterstack) +static void getVariableNames(ParseTree const *ptree, set &nameset, + vector &namelist, + vector &counters) { /* Get variables from model, ensuring that we ignore counters. - */ if (ptree->treeClass() == P_VAR) { - bool is_counter = false; - for (unsigned int i = 0; i < counterstack.size(); ++i) { - if (ptree->name() == counterstack[i]) { - is_counter = true; - break; + string const &var = ptree->name(); + if (find(counters.begin(), counters.end(), var) == counters.end()) { + if (nameset.count(var) == 0) { + nameset.insert(var); + namelist.push_back(var); } } - if (!is_counter) { - names.insert(ptree->name()); - } } vector const ¶m = ptree->parameters(); for (vector::const_iterator p = param.begin(); p != param.end(); ++p) { - ParseTree *counter; + //ParseTree objects of type P_BOUND can have null parameters + if (*p == 0) continue; - if (*p) { - //ParseTree objects of type P_BOUND can have null parameters - switch ((*p)->treeClass()) { - case P_FOR: - counter = (*p)->parameters()[0]; - for (unsigned int i = 0; i < counter->parameters().size(); ++i) - { - getVariableNames(counter->parameters()[i], names, - counterstack); - } - counterstack.push_back(counter->name()); - getVariableNames((*p)->parameters()[1], names, counterstack); - counterstack.pop_back(); - break; - default: - getVariableNames(*p, names, counterstack); - break; + if ((*p)->treeClass() == P_FOR) { + ParseTree *counter = (*p)->parameters()[0]; + for (unsigned int i = 0; i < counter->parameters().size(); ++i) { + getVariableNames(counter->parameters()[i], nameset, + namelist, counters); } + counters.push_back(counter->name()); + getVariableNames((*p)->parameters()[1], nameset, + namelist, counters); + counters.pop_back(); + } + else { + getVariableNames(*p, nameset, namelist, counters); } } } @@ -170,26 +170,19 @@ //Get names of all variables in the model set nameset; vector counterstack; + _array_names.clear(); if (_pvariables) { for (vector::const_iterator p = _pvariables->begin(); p != _pvariables->end(); ++p) { - getVariableNames(*p, nameset, counterstack); + getVariableNames(*p, nameset, _array_names, counterstack); } } if (_pdata) { - getVariableNames(_pdata, nameset, counterstack); + getVariableNames(_pdata, nameset, _array_names, counterstack); } if (_prelations) { - getVariableNames(_prelations, nameset, counterstack); - } - - _array_names.clear(); - _array_names.reserve(nameset.size()); - for (set::const_iterator p = nameset.begin(); p != nameset.end(); - ++p) - { - _array_names.push_back(*p); + getVariableNames(_prelations, nameset, _array_names, counterstack); } return true; @@ -225,18 +218,18 @@ compiler.writeRelations(_pdata); /* Check validity of data generating model */ - vector nodes; - _model->graph().getNodes(nodes); - for (unsigned int i = 0; i < nodes.size(); ++i) { - if (nodes[i]->isObserved()) { - vector const &parents = nodes[i]->parents(); + for (vector::const_iterator r = _model->nodes().begin(); + r != _model->nodes().end(); ++r) + { + if ((*r)->randomVariableStatus() == RV_TRUE_OBSERVED) { + vector const &parents = (*r)->parents(); for (vector::const_iterator p = parents.begin(); p != parents.end(); ++p) { - if (!((*p)->isObserved())) { + if (!((*p)->isFixed())) { _err << "Invalid data graph: observed node " - << _model->symtab().getName(nodes[i]) - << " has unobserved parent " + << _model->symtab().getName(*r) + << " has non-fixed parent " << _model->symtab().getName(*p) << "\n"; clearModel(); @@ -257,7 +250,7 @@ delete _model; _model = 0; } - CATCH_ERRORS + CATCH_ERRORS; } _model = new BUGSModel(nchain); @@ -280,7 +273,20 @@ return true; } if (_model) { - _out << " Graph Size: " << _model->graph().size() << endl; + unsigned int nobs = 0, nparam = 0; + vector const &snodes = _model->stochasticNodes(); + for (unsigned int i = 0; i < snodes.size(); ++i) { + if (isObserved(snodes[i])) { + ++nobs; + } + else { + ++nparam; + } + } + _out << "Graph information:\n"; + _out << " Observed stochastic nodes: " << nobs << "\n"; + _out << " Unobserved stochastic nodes: " << nparam << "\n"; + _out << " Total graph size: " << _model->nodes().size() << endl; if (datagen_rng) { // Reuse the data-generation RNG, if there is one, for chain 0 _model->setRNG(datagen_rng, 0); @@ -300,12 +306,18 @@ { if (_model == 0) { _err << "Can't initialize. No model!" << endl; - return true; + return false; + } + if (_model->nodes().size() == 0) { + _err << "Can't initialize. No nodes in graph." << endl; + _err << "Have you compiled the model?" << endl; + return false; } - if (_model->graph().size() == 0) { - _err << "Can't initialize. No nodes in graph (Have you compiled the model?)" << endl; + if (_model->isInitialized()) { + _err << "Model is already initialized" << endl; return true; } + try { _out << "Initializing model" << endl; _model->initialize(false); @@ -330,9 +342,9 @@ try { _model->setParameters(init_table, chain - 1); } - CATCH_ERRORS + CATCH_ERRORS; - return true; + return true; } bool Console::setRNGname(string const &name, unsigned int chain) @@ -347,9 +359,9 @@ _err << "WARNING: RNG name " << name << " not found\n"; } } - CATCH_ERRORS + CATCH_ERRORS; - return true; + return true; } bool Console::update(unsigned int n) @@ -411,7 +423,7 @@ return false; } } - CATCH_ERRORS + CATCH_ERRORS; return true; } @@ -432,47 +444,11 @@ return false; } } - CATCH_ERRORS + CATCH_ERRORS; return true; } -/* -bool Console::setDefaultMonitors(string const &type, unsigned int thin) -{ - if (!_model) { - _err << "Can't set monitors. No model!" << endl; - return false; - } - - try { - bool ok = _model->setDefaultMonitors(type, thin); - if (!ok) { - _err << "Failed to set default monitors of type " << type << endl; - return false; - } - } - CATCH_ERRORS - - return true; -} - -bool Console::clearDefaultMonitors(string const &type) -{ - if (!_model) { - _err << "Can't clear monitors. No model!" << endl; - return true; - } - - try { - _model->clearDefaultMonitors(type); - } - CATCH_ERRORS - - return true; -} -*/ - void Console::clearModel() { _out << "Deleting model" << endl; @@ -527,7 +503,7 @@ } } } - CATCH_ERRORS + CATCH_ERRORS; return true; } @@ -551,7 +527,7 @@ } } } - CATCH_ERRORS + CATCH_ERRORS; return true; } @@ -571,7 +547,7 @@ _err << "WARNING:\n" << warn; } } - CATCH_ERRORS + CATCH_ERRORS; return true; } @@ -592,7 +568,7 @@ _err << "WARNINGS:\n" << warn; } } - CATCH_ERRORS + CATCH_ERRORS; return true; } @@ -626,7 +602,7 @@ try { status = _model->checkAdaptation(); } - CATCH_ERRORS + CATCH_ERRORS; return true; } @@ -645,7 +621,7 @@ try { _model->adaptOff(); } - CATCH_ERRORS + CATCH_ERRORS; return true; } @@ -674,7 +650,7 @@ try { _model->samplerNames(sampler_names); } - CATCH_ERRORS + CATCH_ERRORS; return true; } @@ -686,6 +662,13 @@ { if ((*p)->name() == name) { (*p)->load(); + if (rngSeed() != 0) { + // Set default seed of RNG factories + vector const &facs = (*p)->rngFactories(); + for (unsigned int i = 0; i < facs.size(); ++i) { + facs[i]->setSeed(rngSeed()); + } + } return true; } } @@ -829,3 +812,24 @@ } return ans; } + +unsigned int &Console::rngSeed() +{ + static unsigned int seed = 0; + return seed; +} + +void Console::setRNGSeed(unsigned int seed) +{ + if (seed == 0) return; + + list >::const_iterator p; + for (p = Model::rngFactories().begin(); p != Model::rngFactories().end(); + ++p) + { + p->first->setSeed(seed); + } + rngSeed() = seed; +} + +} //namespace jags diff -Nru jags-3.4.0/src/lib/distribution/ArrayDist.cc jags-4.0.0/src/lib/distribution/ArrayDist.cc --- jags-3.4.0/src/lib/distribution/ArrayDist.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/distribution/ArrayDist.cc 2015-04-26 21:29:43.000000000 +0000 @@ -1,10 +1,13 @@ #include #include #include +#include using std::string; using std::vector; +namespace jags { + ArrayDist::ArrayDist(string const &name, unsigned int npar) : Distribution(name, npar) { @@ -15,3 +18,32 @@ return product(dim(pdims)); } + + double ArrayDist::KL(vector const &par1, + vector const &par2, + vector > const &dims, + double const *lower, double const *upper, + RNG *rng, unsigned int nrep) const + { + double div = 0; + + vector d = dim(dims); + unsigned int N = product(d); + vector v(N); + for (unsigned int r = 0; r < nrep; ++r) { + randomSample(&v[0], N, par1, dims, lower, upper, rng); + div += logDensity(&v[0], N, PDF_FULL, par1, dims, lower, upper); + div -= logDensity(&v[0], N, PDF_FULL, par2, dims, lower, upper); + } + return div / nrep; + } + + double ArrayDist::KL(vector const &par1, + vector const &par2, + vector > const &dims) const + { + return JAGS_NA; + } + + +} //namespace jags diff -Nru jags-3.4.0/src/lib/distribution/DistError.cc jags-4.0.0/src/lib/distribution/DistError.cc --- jags-3.4.0/src/lib/distribution/DistError.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/distribution/DistError.cc 2015-02-22 08:33:05.000000000 +0000 @@ -4,7 +4,11 @@ using std::string; +namespace jags { + DistError::DistError(Distribution const *edist, string const &emsg) : runtime_error(emsg + " in distribution " + edist->name()) { } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/distribution/DistPtr.cc jags-4.0.0/src/lib/distribution/DistPtr.cc --- jags-3.4.0/src/lib/distribution/DistPtr.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/distribution/DistPtr.cc 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,8 @@ using std::string; +namespace jags { + DistPtr::DistPtr() : sdist(0), vdist(0), adist(0) {} @@ -53,3 +55,5 @@ { return (p.sdist == 0 && p.vdist == 0 && p.adist == 0); } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/distribution/Distribution.cc jags-4.0.0/src/lib/distribution/Distribution.cc --- jags-3.4.0/src/lib/distribution/Distribution.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/distribution/Distribution.cc 2015-02-22 08:33:05.000000000 +0000 @@ -5,6 +5,8 @@ using std::vector; using std::string; +namespace jags { + Distribution::Distribution(string const &name, unsigned int npar) : _name(name), _npar(npar) { @@ -24,9 +26,11 @@ return ""; } -bool Distribution::checkNPar (unsigned int npar) const + + +unsigned int Distribution::npar () const { - return _npar == 0 || npar == _npar; + return _npar; } bool Distribution::isLocationParameter(unsigned int i) const @@ -53,3 +57,5 @@ { return true; } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/distribution/DistTab.cc jags-4.0.0/src/lib/distribution/DistTab.cc --- jags-3.4.0/src/lib/distribution/DistTab.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/distribution/DistTab.cc 2015-09-10 05:42:23.000000000 +0000 @@ -8,6 +8,8 @@ using std::binary_function; using std::find_if; +namespace jags { + typedef std::list DistList; // Adaptable binary predicate for find_if algorithm @@ -44,6 +46,13 @@ } }; + DistTab::DistTab() + : _dlist(), _nulldist() + { + //Required by Solaris Studio, which won't create a default constructor + //with -std=c++11 + } + void DistTab::insert (DistPtr const &dist) { DistList::const_iterator p = std::find(_dlist.begin(), _dlist.end(), dist); @@ -68,3 +77,4 @@ _dlist.remove(dist); } +} //namespace jags diff -Nru jags-3.4.0/src/lib/distribution/Makefile.am jags-4.0.0/src/lib/distribution/Makefile.am --- jags-3.4.0/src/lib/distribution/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/distribution/Makefile.am 2015-02-22 08:33:05.000000000 +0000 @@ -3,4 +3,4 @@ libdist_la_CPPFLAGS = -I$(top_srcdir)/src/include libdist_la_SOURCES = Distribution.cc ScalarDist.cc VectorDist.cc \ -ArrayDist.cc DistPtr.cc DistTab.cc DistError.cc +ArrayDist.cc DistPtr.cc DistTab.cc DistError.cc RScalarDist.cc diff -Nru jags-3.4.0/src/lib/distribution/Makefile.in jags-4.0.0/src/lib/distribution/Makefile.in --- jags-3.4.0/src/lib/distribution/Makefile.in 2013-08-30 13:23:27.000000000 +0000 +++ jags-4.0.0/src/lib/distribution/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/lib/distribution -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -62,6 +98,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -71,21 +108,47 @@ am_libdist_la_OBJECTS = libdist_la-Distribution.lo \ libdist_la-ScalarDist.lo libdist_la-VectorDist.lo \ libdist_la-ArrayDist.lo libdist_la-DistPtr.lo \ - libdist_la-DistTab.lo libdist_la-DistError.lo + libdist_la-DistTab.lo libdist_la-DistError.lo \ + libdist_la-RScalarDist.lo libdist_la_OBJECTS = $(am_libdist_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(libdist_la_SOURCES) DIST_SOURCES = $(libdist_la_SOURCES) am__can_run_installinfo = \ @@ -93,11 +156,30 @@ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -111,6 +193,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -180,10 +265,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -252,7 +333,7 @@ noinst_LTLIBRARIES = libdist.la libdist_la_CPPFLAGS = -I$(top_srcdir)/src/include libdist_la_SOURCES = Distribution.cc ScalarDist.cc VectorDist.cc \ -ArrayDist.cc DistPtr.cc DistTab.cc DistError.cc +ArrayDist.cc DistPtr.cc DistTab.cc DistError.cc RScalarDist.cc all: all-am @@ -270,7 +351,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/distribution/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/lib/distribution/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -291,14 +371,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libdist.la: $(libdist_la_OBJECTS) $(libdist_la_DEPENDENCIES) $(EXTRA_libdist_la_DEPENDENCIES) - $(CXXLINK) $(libdist_la_OBJECTS) $(libdist_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(CXXLINK) $(libdist_la_OBJECTS) $(libdist_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -311,78 +394,89 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdist_la-DistPtr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdist_la-DistTab.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdist_la-Distribution.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdist_la-RScalarDist.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdist_la-ScalarDist.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdist_la-VectorDist.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< libdist_la-Distribution.lo: Distribution.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdist_la-Distribution.lo -MD -MP -MF $(DEPDIR)/libdist_la-Distribution.Tpo -c -o libdist_la-Distribution.lo `test -f 'Distribution.cc' || echo '$(srcdir)/'`Distribution.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libdist_la-Distribution.Tpo $(DEPDIR)/libdist_la-Distribution.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Distribution.cc' object='libdist_la-Distribution.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdist_la-Distribution.lo -MD -MP -MF $(DEPDIR)/libdist_la-Distribution.Tpo -c -o libdist_la-Distribution.lo `test -f 'Distribution.cc' || echo '$(srcdir)/'`Distribution.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdist_la-Distribution.Tpo $(DEPDIR)/libdist_la-Distribution.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Distribution.cc' object='libdist_la-Distribution.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdist_la-Distribution.lo `test -f 'Distribution.cc' || echo '$(srcdir)/'`Distribution.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdist_la-Distribution.lo `test -f 'Distribution.cc' || echo '$(srcdir)/'`Distribution.cc libdist_la-ScalarDist.lo: ScalarDist.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdist_la-ScalarDist.lo -MD -MP -MF $(DEPDIR)/libdist_la-ScalarDist.Tpo -c -o libdist_la-ScalarDist.lo `test -f 'ScalarDist.cc' || echo '$(srcdir)/'`ScalarDist.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libdist_la-ScalarDist.Tpo $(DEPDIR)/libdist_la-ScalarDist.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ScalarDist.cc' object='libdist_la-ScalarDist.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdist_la-ScalarDist.lo -MD -MP -MF $(DEPDIR)/libdist_la-ScalarDist.Tpo -c -o libdist_la-ScalarDist.lo `test -f 'ScalarDist.cc' || echo '$(srcdir)/'`ScalarDist.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdist_la-ScalarDist.Tpo $(DEPDIR)/libdist_la-ScalarDist.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ScalarDist.cc' object='libdist_la-ScalarDist.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdist_la-ScalarDist.lo `test -f 'ScalarDist.cc' || echo '$(srcdir)/'`ScalarDist.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdist_la-ScalarDist.lo `test -f 'ScalarDist.cc' || echo '$(srcdir)/'`ScalarDist.cc libdist_la-VectorDist.lo: VectorDist.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdist_la-VectorDist.lo -MD -MP -MF $(DEPDIR)/libdist_la-VectorDist.Tpo -c -o libdist_la-VectorDist.lo `test -f 'VectorDist.cc' || echo '$(srcdir)/'`VectorDist.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libdist_la-VectorDist.Tpo $(DEPDIR)/libdist_la-VectorDist.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='VectorDist.cc' object='libdist_la-VectorDist.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdist_la-VectorDist.lo -MD -MP -MF $(DEPDIR)/libdist_la-VectorDist.Tpo -c -o libdist_la-VectorDist.lo `test -f 'VectorDist.cc' || echo '$(srcdir)/'`VectorDist.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdist_la-VectorDist.Tpo $(DEPDIR)/libdist_la-VectorDist.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='VectorDist.cc' object='libdist_la-VectorDist.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdist_la-VectorDist.lo `test -f 'VectorDist.cc' || echo '$(srcdir)/'`VectorDist.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdist_la-VectorDist.lo `test -f 'VectorDist.cc' || echo '$(srcdir)/'`VectorDist.cc libdist_la-ArrayDist.lo: ArrayDist.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdist_la-ArrayDist.lo -MD -MP -MF $(DEPDIR)/libdist_la-ArrayDist.Tpo -c -o libdist_la-ArrayDist.lo `test -f 'ArrayDist.cc' || echo '$(srcdir)/'`ArrayDist.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libdist_la-ArrayDist.Tpo $(DEPDIR)/libdist_la-ArrayDist.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ArrayDist.cc' object='libdist_la-ArrayDist.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdist_la-ArrayDist.lo -MD -MP -MF $(DEPDIR)/libdist_la-ArrayDist.Tpo -c -o libdist_la-ArrayDist.lo `test -f 'ArrayDist.cc' || echo '$(srcdir)/'`ArrayDist.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdist_la-ArrayDist.Tpo $(DEPDIR)/libdist_la-ArrayDist.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ArrayDist.cc' object='libdist_la-ArrayDist.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdist_la-ArrayDist.lo `test -f 'ArrayDist.cc' || echo '$(srcdir)/'`ArrayDist.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdist_la-ArrayDist.lo `test -f 'ArrayDist.cc' || echo '$(srcdir)/'`ArrayDist.cc libdist_la-DistPtr.lo: DistPtr.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdist_la-DistPtr.lo -MD -MP -MF $(DEPDIR)/libdist_la-DistPtr.Tpo -c -o libdist_la-DistPtr.lo `test -f 'DistPtr.cc' || echo '$(srcdir)/'`DistPtr.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libdist_la-DistPtr.Tpo $(DEPDIR)/libdist_la-DistPtr.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DistPtr.cc' object='libdist_la-DistPtr.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdist_la-DistPtr.lo -MD -MP -MF $(DEPDIR)/libdist_la-DistPtr.Tpo -c -o libdist_la-DistPtr.lo `test -f 'DistPtr.cc' || echo '$(srcdir)/'`DistPtr.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdist_la-DistPtr.Tpo $(DEPDIR)/libdist_la-DistPtr.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DistPtr.cc' object='libdist_la-DistPtr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdist_la-DistPtr.lo `test -f 'DistPtr.cc' || echo '$(srcdir)/'`DistPtr.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdist_la-DistPtr.lo `test -f 'DistPtr.cc' || echo '$(srcdir)/'`DistPtr.cc libdist_la-DistTab.lo: DistTab.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdist_la-DistTab.lo -MD -MP -MF $(DEPDIR)/libdist_la-DistTab.Tpo -c -o libdist_la-DistTab.lo `test -f 'DistTab.cc' || echo '$(srcdir)/'`DistTab.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libdist_la-DistTab.Tpo $(DEPDIR)/libdist_la-DistTab.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DistTab.cc' object='libdist_la-DistTab.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdist_la-DistTab.lo -MD -MP -MF $(DEPDIR)/libdist_la-DistTab.Tpo -c -o libdist_la-DistTab.lo `test -f 'DistTab.cc' || echo '$(srcdir)/'`DistTab.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdist_la-DistTab.Tpo $(DEPDIR)/libdist_la-DistTab.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DistTab.cc' object='libdist_la-DistTab.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdist_la-DistTab.lo `test -f 'DistTab.cc' || echo '$(srcdir)/'`DistTab.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdist_la-DistTab.lo `test -f 'DistTab.cc' || echo '$(srcdir)/'`DistTab.cc libdist_la-DistError.lo: DistError.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdist_la-DistError.lo -MD -MP -MF $(DEPDIR)/libdist_la-DistError.Tpo -c -o libdist_la-DistError.lo `test -f 'DistError.cc' || echo '$(srcdir)/'`DistError.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libdist_la-DistError.Tpo $(DEPDIR)/libdist_la-DistError.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DistError.cc' object='libdist_la-DistError.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdist_la-DistError.lo -MD -MP -MF $(DEPDIR)/libdist_la-DistError.Tpo -c -o libdist_la-DistError.lo `test -f 'DistError.cc' || echo '$(srcdir)/'`DistError.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdist_la-DistError.Tpo $(DEPDIR)/libdist_la-DistError.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DistError.cc' object='libdist_la-DistError.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdist_la-DistError.lo `test -f 'DistError.cc' || echo '$(srcdir)/'`DistError.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdist_la-DistError.lo `test -f 'DistError.cc' || echo '$(srcdir)/'`DistError.cc + +libdist_la-RScalarDist.lo: RScalarDist.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdist_la-RScalarDist.lo -MD -MP -MF $(DEPDIR)/libdist_la-RScalarDist.Tpo -c -o libdist_la-RScalarDist.lo `test -f 'RScalarDist.cc' || echo '$(srcdir)/'`RScalarDist.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdist_la-RScalarDist.Tpo $(DEPDIR)/libdist_la-RScalarDist.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='RScalarDist.cc' object='libdist_la-RScalarDist.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdist_la-RScalarDist.lo `test -f 'RScalarDist.cc' || echo '$(srcdir)/'`RScalarDist.cc mostlyclean-libtool: -rm -f *.lo @@ -390,26 +484,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -421,15 +504,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -438,6 +517,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -579,18 +673,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/lib/distribution/RScalarDist.cc jags-4.0.0/src/lib/distribution/RScalarDist.cc --- jags-3.4.0/src/lib/distribution/RScalarDist.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/distribution/RScalarDist.cc 2015-02-22 14:47:08.000000000 +0000 @@ -0,0 +1,180 @@ +#include +#include +#include +#include +#include + +#include +#include + +using std::string; +using std::vector; +using std::log; +using std::min; +using std::max; + +namespace jags { + +double RScalarDist::calPlower(double lower, + vector const ¶meters) const +{ + //P(X < lower) + if (_discrete) lower -= 1; + return p(lower, parameters, true, false); +} + +double RScalarDist::calPupper(double upper, + vector const ¶meters) const +{ + //P(X <= upper) + return p(upper, parameters, true, false); +} + + +RScalarDist::RScalarDist(string const &name, unsigned int npar, + Support support, bool discrete) + + : ScalarDist(name, npar, support), _discrete(discrete) +{ +} + +double +RScalarDist::typicalValue(vector const ¶meters, + double const *lower, double const *upper) const +{ + double llimit = l(parameters), ulimit = u(parameters); + double plower = 0, pupper = 1; + + if (lower) { + llimit = max(llimit, *lower); + plower = calPlower(llimit, parameters); + } + + if (upper) { + ulimit = min(ulimit, *upper); + pupper = calPupper(ulimit, parameters); + } + + double pmed = (plower + pupper)/2; + double med = q(pmed, parameters, true, false); + + //Calculate the log densities + double dllimit = d(llimit, PDF_FULL, parameters, true); + double dulimit = d(ulimit, PDF_FULL, parameters, true); + double dmed = d(med, PDF_FULL, parameters, true); + + //Pick the median if it has the highest density, otherwise pick + //a point near to (but not on) the boundary + if (dmed >= dllimit && dmed >= dulimit) { + return med; + } + else if (dulimit > dllimit) { + return q(0.1 * plower + 0.9 * pupper, parameters, true, false); + } + else { + return q(0.9 * plower + 0.1 * pupper, parameters, true, false); + } +} + +double +RScalarDist::logDensity(double x, PDFType type, + vector const ¶meters, + double const *lower, double const *upper) const +{ + if (lower && x < *lower) + return JAGS_NEGINF; + if (upper && x > *upper) + return JAGS_NEGINF; + if (upper && lower && *upper < *lower) + return JAGS_NEGINF; + + double loglik = d(x, type, parameters, true); + + if (type != PDF_PRIOR && (lower || upper)) { + //Normalize truncated distributions + + double ll = l(parameters); + if (lower && *lower < ll) ll = *lower; + if (_discrete) ll -= 1; //Adjustment for discrete valued distributions + + /* In theory, we just have to subtract log[P(lower <= X <= + upper)] from the log likelihood. But we need to work around + numerical problems. */ + + bool have_lower = lower && p(ll, parameters, true, false) > 0; + bool have_upper = upper && p(*upper, parameters, false, false) > 0; + + if (have_lower && have_upper) { + if (p(ll, parameters, false, false) < 0.5) { + //Use upper tail + loglik -= log(p(ll, parameters, false, false) - + p(*upper, parameters, false, false)); + } + else { + //Use lower tail + loglik -= log(p(*upper, parameters, true, false) - + p(ll, parameters, true, false)); + } + } + else if (have_lower) { + loglik -= p(ll, parameters, false, true); + } + else if (have_upper) { + loglik -= p(*upper, parameters, true, true); + } + } + + return loglik; +} + + +double +RScalarDist::randomSample(vector const ¶meters, + double const *lower, double const *upper, + RNG *rng) const +{ + if (!lower && !upper) { + return r(parameters, rng); + } + + double plower = lower ? calPlower(*lower, parameters) : 0; + double pupper = upper ? calPupper(*upper, parameters) : 1; + + if (pupper - plower > 0.25) { + //Rejection sampling if expected number of samples is 4 or less + while (true) { + double y = r(parameters, rng); + if (lower && y < *lower) continue; + if (upper && y > *upper) continue; + return y; + } + } + + //Inversion + //FIXME: We probably need to take care of tail behaviour here + double u = plower + rng->uniform() * (pupper - plower); + return q(u, parameters, true, false); +} + +bool RScalarDist::canBound() const +{ + return true; +} + +bool RScalarDist::isDiscreteValued(vector const &mask) const +{ + return _discrete; +} + +bool RScalarDist::discrete() const +{ + return _discrete; +} + +double xlog0(double x, bool give_log) { + if (x < 0) return JAGS_POSINF; + else if (x > 0) return give_log ? JAGS_NEGINF : 0; + else return give_log ? 0 : 1; + } + +} diff -Nru jags-3.4.0/src/lib/distribution/ScalarDist.cc jags-4.0.0/src/lib/distribution/ScalarDist.cc --- jags-3.4.0/src/lib/distribution/ScalarDist.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/distribution/ScalarDist.cc 2015-04-26 21:05:29.000000000 +0000 @@ -15,6 +15,8 @@ using std::logic_error; using std::count_if; +namespace jags { + ScalarDist::ScalarDist(string const &name, unsigned int npar, Support support) : Distribution(name, npar), _support(support) { @@ -68,11 +70,25 @@ return 1; } -/* -double ScalarDist::KL(vector const &par1, - vector const &par2) const -{ - double x1 = + double ScalarDist::KL(vector const &par1, + vector const &par2, + double const *lower, double const *upper, + RNG *rng, unsigned int nrep) const + { + double div = 0; + + for (unsigned int r = 0; r < nrep; ++r) { + double v1 = randomSample(par1, lower, upper, rng); + div += logDensity(v1, PDF_FULL, par1, lower, upper); + div -= logDensity(v1, PDF_FULL, par2, lower, upper); + } + return div / nrep; + } -} -*/ + double ScalarDist::KL(vector const &par1, + vector const &par2) const + { + return JAGS_NA; + } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/distribution/VectorDist.cc jags-4.0.0/src/lib/distribution/VectorDist.cc --- jags-3.4.0/src/lib/distribution/VectorDist.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/distribution/VectorDist.cc 2015-06-13 12:56:35.000000000 +0000 @@ -1,9 +1,12 @@ #include #include +#include using std::string; using std::vector; +namespace jags { + VectorDist::VectorDist(string const &name, unsigned int npar) : Distribution(name, npar) { @@ -13,3 +16,30 @@ { return length(par); } + + double VectorDist::KL(vector const &par1, + vector const &par2, + vector const &lengths, + double const *lower, double const *upper, + RNG *rng, unsigned int nrep) const + { + double div = 0; + + unsigned int N = length(lengths); + vector v(N); + for (unsigned int r = 0; r < nrep; ++r) { + randomSample(&v[0], N, par1, lengths, lower, upper, rng); + div += logDensity(&v[0], N, PDF_FULL, par1, lengths, lower, upper); + div -= logDensity(&v[0], N, PDF_FULL, par2, lengths, lower, upper); + } + return div / nrep; + } + + double VectorDist::KL(std::vector const &par1, + std::vector const &par2, + std::vector const &lengths) const + { + return JAGS_NA; + } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/function/ArrayFunction.cc jags-4.0.0/src/lib/function/ArrayFunction.cc --- jags-3.4.0/src/lib/function/ArrayFunction.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/function/ArrayFunction.cc 2015-02-22 08:33:05.000000000 +0000 @@ -4,6 +4,8 @@ using std::vector; using std::string; +namespace jags { + ArrayFunction::ArrayFunction (string const &name, unsigned int npar) : Function(name, npar) { @@ -16,3 +18,5 @@ { return true; } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/function/ArrayLogDensity.cc jags-4.0.0/src/lib/function/ArrayLogDensity.cc --- jags-3.4.0/src/lib/function/ArrayLogDensity.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/function/ArrayLogDensity.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,93 @@ +#include +#include +#include +#include + +using std::vector; +using std::string; + +namespace jags { + + ArrayLogDensity::ArrayLogDensity(ArrayDist const *dist) + : ArrayFunction(string("logdensity.") + dist->name().substr(1), + dist->npar() + 1), + _dist(dist) + {} + + vector ArrayLogDensity::dim( + vector > const &dims, + vector const &values) const + { + return vector(1, 1); + } + + void ArrayLogDensity::evaluate( + double *value, + vector const &args, + vector > const &dims) const + { + unsigned int npar = _dist->npar(); + + vector dargs(npar); + vector > ddims(npar); + for (unsigned int i = 0; i < npar; ++i) { + dargs[i] = args[i+1]; + ddims[i] = dims[i+1]; + } + + value[0] = _dist->logDensity(args[0], product(dims[0]), PDF_FULL, + dargs, ddims, 0, 0); + } + + + + bool + ArrayLogDensity::checkParameterDim(vector > const &dim) + const + { + unsigned int npar = _dist->npar(); + + vector > ddim(npar); + for (unsigned int i = 0; i < npar; ++i) { + ddim[i] = dim[i+1]; + } + + if (!_dist->checkParameterDim(ddim)) return false; + if (dim[0] != _dist->dim(ddim)) return false; + + return true; + } + + bool + ArrayLogDensity::checkParameterValue(vector const &args, + vector > const &dims) + const + { + //We have to include discreteness check here as there is + //no equivalent of checkParameterDiscrete for Functions. + + unsigned int npar = _dist->npar(); + + vector mask(npar); + for (unsigned int i = 0; i < npar; ++i) { + double p = *args[i + 1]; + mask[i] = (p == static_cast(p)); + } + if (!_dist->checkParameterDiscrete(mask)) return false; + + if (_dist->isDiscreteValued(mask)) { + if (*args[0] != static_cast(*args[0])) { + return false; + } + } + + vector dargs(npar); + vector > ddims(npar); + for (unsigned int i = 0; i < npar; ++i) { + dargs[i] = args[i+1]; + ddims[i] = dims[i+1]; + } + return _dist->checkParameterValue(dargs, ddims); + } + +} diff -Nru jags-3.4.0/src/lib/function/DFunction.cc jags-4.0.0/src/lib/function/DFunction.cc --- jags-3.4.0/src/lib/function/DFunction.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/function/DFunction.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,37 @@ +#include +#include +#include + +using std::vector; +using std::string; + +namespace jags { + + DFunction::DFunction(RScalarDist const *dist) + : DPQFunction(dist->name(), dist) + {} + + double DFunction::evaluate(vector const &args) const + { + double x = *args[0]; + vector param(args.size() - 1); + for (unsigned int i = 1; i < args.size(); ++i) { + param[i-1] = args[i]; + } + + return dist()->d(x, PDF_FULL, param, false); + } + + bool + DFunction::checkParameterValue(vector const &args) const + { + if (dist()->discrete()) { + double x = *args[0]; + if (x != static_cast(x)) + return false; + } + + return checkArgs(args); + } + +} diff -Nru jags-3.4.0/src/lib/function/DPQFunction.cc jags-4.0.0/src/lib/function/DPQFunction.cc --- jags-3.4.0/src/lib/function/DPQFunction.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/function/DPQFunction.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,29 @@ +#include +#include +#include + +using std::vector; +using std::string; + +namespace jags { + + DPQFunction::DPQFunction(string const &name, RScalarDist const *dist) + : ScalarFunction(name, dist->npar() + 1), _dist(dist) + {} + + RScalarDist const *DPQFunction::dist() const + { + return _dist; + } + + bool DPQFunction::checkArgs(vector const &args) const + { + vector param(_dist->npar()); + for (unsigned int i = 0; i < param.size(); ++i) { + param[i] = args[i+1]; + } + + return _dist->checkParameterValue(param); + } + +} diff -Nru jags-3.4.0/src/lib/function/FuncError.cc jags-4.0.0/src/lib/function/FuncError.cc --- jags-3.4.0/src/lib/function/FuncError.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/function/FuncError.cc 2015-02-22 08:33:05.000000000 +0000 @@ -4,7 +4,11 @@ using std::string; +namespace jags { + FuncError::FuncError(Function const *efunc, string const &emsg) : runtime_error(emsg + " in function " + efunc->name()) { } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/function/FuncTab.cc jags-4.0.0/src/lib/function/FuncTab.cc --- jags-3.4.0/src/lib/function/FuncTab.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/function/FuncTab.cc 2015-09-10 05:42:23.000000000 +0000 @@ -9,6 +9,8 @@ using std::binary_function; using std::find_if; +namespace jags { + typedef std::list FuncList; // Adaptable binary predicate for find_if algorithm @@ -57,6 +59,13 @@ } }; + FuncTab::FuncTab() + : _flist(), _nullfun() + { + //Required by Solaris Studio, which won't create a default constructor + //with -std=c++11 + } + void FuncTab::insert (FunctionPtr const &func) { FuncList::const_iterator p = std::find(_flist.begin(), _flist.end(), func); @@ -90,3 +99,4 @@ } +} //namespace jags diff -Nru jags-3.4.0/src/lib/function/Function.cc jags-4.0.0/src/lib/function/Function.cc --- jags-3.4.0/src/lib/function/Function.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/function/Function.cc 2015-07-02 19:56:07.000000000 +0000 @@ -4,6 +4,8 @@ using std::vector; using std::string; +namespace jags { + Function::Function (string const &name, unsigned int npar) : _name (name), _npar (npar) { @@ -24,10 +26,11 @@ return ""; } -bool Function::checkNPar (unsigned int npar) const -{ - return _npar == 0 || npar == _npar; -} + unsigned int Function::npar() const + { + return _npar; + } + bool Function::isDiscreteValued(vector const &mask) const { @@ -46,6 +49,12 @@ return isScale(mask, isfixed); } +bool Function::isAdditive(vector const &mask, + vector const &isfixed) const +{ + return false; +} + bool Function::isPower(vector const &mask, vector const &isfixed) const { @@ -66,3 +75,15 @@ return name; } + + bool Function::checkParameterDiscrete(vector const &mask) const + { + return true; + } + + bool Function::checkParameterFixed(std::vector const &mask) const + { + return true; + } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/function/FunctionPtr.cc jags-4.0.0/src/lib/function/FunctionPtr.cc --- jags-3.4.0/src/lib/function/FunctionPtr.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/function/FunctionPtr.cc 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,8 @@ using std::string; +namespace jags { + FunctionPtr::FunctionPtr() : lfunc(0), sfunc(0), vfunc(0), afunc(0) {} @@ -79,3 +81,5 @@ { return (p.lfunc==0 && p.sfunc == 0 && p.vfunc == 0 && p.afunc == 0); } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/function/LinkFunction.cc jags-4.0.0/src/lib/function/LinkFunction.cc --- jags-3.4.0/src/lib/function/LinkFunction.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/function/LinkFunction.cc 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,8 @@ using std::string; +namespace jags { + LinkFunction::LinkFunction (string const &name, string const &link) : Function (name, 1), _link(link) { @@ -13,3 +15,4 @@ return _link; } +} //namespace jags diff -Nru jags-3.4.0/src/lib/function/Makefile.am jags-4.0.0/src/lib/function/Makefile.am --- jags-3.4.0/src/lib/function/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/function/Makefile.am 2015-09-28 20:53:07.000000000 +0000 @@ -3,4 +3,13 @@ libfunc_la_CPPFLAGS = -I$(top_srcdir)/src/include libfunc_la_SOURCES = Function.cc ScalarFunction.cc LinkFunction.cc \ -VectorFunction.cc ArrayFunction.cc FunctionPtr.cc FuncTab.cc FuncError.cc +VectorFunction.cc ArrayFunction.cc FunctionPtr.cc FuncTab.cc FuncError.cc \ +DPQFunction.cc DFunction.cc PFunction.cc QFunction.cc \ +ScalarLogDensity.cc VectorLogDensity.cc ArrayLogDensity.cc \ +ScalarVectorFunction.cc + +check_LTLIBRARIES = libfuntest.la +libfuntest_la_SOURCES = testfun.cc +libfuntest_la_CPPFLAGS = -I$(top_srcdir)/src/include +libfuntest_la_CXXFLAGS = $(CPPUNIT_CFLAGS) +libfuntest_la_LDFLAGS = $(CPPUNIT_LIBS) diff -Nru jags-3.4.0/src/lib/function/Makefile.in jags-4.0.0/src/lib/function/Makefile.in --- jags-3.4.0/src/lib/function/Makefile.in 2013-08-30 13:23:27.000000000 +0000 +++ jags-4.0.0/src/lib/function/Makefile.in 2015-09-28 21:41:12.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/lib/function -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -62,6 +98,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -72,33 +109,88 @@ libfunc_la-ScalarFunction.lo libfunc_la-LinkFunction.lo \ libfunc_la-VectorFunction.lo libfunc_la-ArrayFunction.lo \ libfunc_la-FunctionPtr.lo libfunc_la-FuncTab.lo \ - libfunc_la-FuncError.lo + libfunc_la-FuncError.lo libfunc_la-DPQFunction.lo \ + libfunc_la-DFunction.lo libfunc_la-PFunction.lo \ + libfunc_la-QFunction.lo libfunc_la-ScalarLogDensity.lo \ + libfunc_la-VectorLogDensity.lo libfunc_la-ArrayLogDensity.lo \ + libfunc_la-ScalarVectorFunction.lo libfunc_la_OBJECTS = $(am_libfunc_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libfuntest_la_LIBADD = +am_libfuntest_la_OBJECTS = libfuntest_la-testfun.lo +libfuntest_la_OBJECTS = $(am_libfuntest_la_OBJECTS) +libfuntest_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ + $(libfuntest_la_CXXFLAGS) $(CXXFLAGS) $(libfuntest_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(libfunc_la_SOURCES) -DIST_SOURCES = $(libfunc_la_SOURCES) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +SOURCES = $(libfunc_la_SOURCES) $(libfuntest_la_SOURCES) +DIST_SOURCES = $(libfunc_la_SOURCES) $(libfuntest_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -112,6 +204,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -181,10 +276,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -253,8 +344,16 @@ noinst_LTLIBRARIES = libfunc.la libfunc_la_CPPFLAGS = -I$(top_srcdir)/src/include libfunc_la_SOURCES = Function.cc ScalarFunction.cc LinkFunction.cc \ -VectorFunction.cc ArrayFunction.cc FunctionPtr.cc FuncTab.cc FuncError.cc - +VectorFunction.cc ArrayFunction.cc FunctionPtr.cc FuncTab.cc FuncError.cc \ +DPQFunction.cc DFunction.cc PFunction.cc QFunction.cc \ +ScalarLogDensity.cc VectorLogDensity.cc ArrayLogDensity.cc \ +ScalarVectorFunction.cc + +check_LTLIBRARIES = libfuntest.la +libfuntest_la_SOURCES = testfun.cc +libfuntest_la_CPPFLAGS = -I$(top_srcdir)/src/include +libfuntest_la_CXXFLAGS = $(CPPUNIT_CFLAGS) +libfuntest_la_LDFLAGS = $(CPPUNIT_LIBS) all: all-am .SUFFIXES: @@ -271,7 +370,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/function/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/lib/function/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -290,16 +388,33 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): +clean-checkLTLIBRARIES: + -test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES) + @list='$(check_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libfunc.la: $(libfunc_la_OBJECTS) $(libfunc_la_DEPENDENCIES) $(EXTRA_libfunc_la_DEPENDENCIES) - $(CXXLINK) $(libfunc_la_OBJECTS) $(libfunc_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(CXXLINK) $(libfunc_la_OBJECTS) $(libfunc_la_LIBADD) $(LIBS) + +libfuntest.la: $(libfuntest_la_OBJECTS) $(libfuntest_la_DEPENDENCIES) $(EXTRA_libfuntest_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libfuntest_la_LINK) $(libfuntest_la_OBJECTS) $(libfuntest_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -308,90 +423,165 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfunc_la-ArrayFunction.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfunc_la-ArrayLogDensity.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfunc_la-DFunction.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfunc_la-DPQFunction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfunc_la-FuncError.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfunc_la-FuncTab.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfunc_la-Function.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfunc_la-FunctionPtr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfunc_la-LinkFunction.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfunc_la-PFunction.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfunc_la-QFunction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfunc_la-ScalarFunction.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfunc_la-ScalarLogDensity.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfunc_la-ScalarVectorFunction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfunc_la-VectorFunction.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfunc_la-VectorLogDensity.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfuntest_la-testfun.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< libfunc_la-Function.lo: Function.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-Function.lo -MD -MP -MF $(DEPDIR)/libfunc_la-Function.Tpo -c -o libfunc_la-Function.lo `test -f 'Function.cc' || echo '$(srcdir)/'`Function.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfunc_la-Function.Tpo $(DEPDIR)/libfunc_la-Function.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Function.cc' object='libfunc_la-Function.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-Function.lo -MD -MP -MF $(DEPDIR)/libfunc_la-Function.Tpo -c -o libfunc_la-Function.lo `test -f 'Function.cc' || echo '$(srcdir)/'`Function.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libfunc_la-Function.Tpo $(DEPDIR)/libfunc_la-Function.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Function.cc' object='libfunc_la-Function.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-Function.lo `test -f 'Function.cc' || echo '$(srcdir)/'`Function.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-Function.lo `test -f 'Function.cc' || echo '$(srcdir)/'`Function.cc libfunc_la-ScalarFunction.lo: ScalarFunction.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-ScalarFunction.lo -MD -MP -MF $(DEPDIR)/libfunc_la-ScalarFunction.Tpo -c -o libfunc_la-ScalarFunction.lo `test -f 'ScalarFunction.cc' || echo '$(srcdir)/'`ScalarFunction.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfunc_la-ScalarFunction.Tpo $(DEPDIR)/libfunc_la-ScalarFunction.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ScalarFunction.cc' object='libfunc_la-ScalarFunction.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-ScalarFunction.lo -MD -MP -MF $(DEPDIR)/libfunc_la-ScalarFunction.Tpo -c -o libfunc_la-ScalarFunction.lo `test -f 'ScalarFunction.cc' || echo '$(srcdir)/'`ScalarFunction.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libfunc_la-ScalarFunction.Tpo $(DEPDIR)/libfunc_la-ScalarFunction.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ScalarFunction.cc' object='libfunc_la-ScalarFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-ScalarFunction.lo `test -f 'ScalarFunction.cc' || echo '$(srcdir)/'`ScalarFunction.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-ScalarFunction.lo `test -f 'ScalarFunction.cc' || echo '$(srcdir)/'`ScalarFunction.cc libfunc_la-LinkFunction.lo: LinkFunction.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-LinkFunction.lo -MD -MP -MF $(DEPDIR)/libfunc_la-LinkFunction.Tpo -c -o libfunc_la-LinkFunction.lo `test -f 'LinkFunction.cc' || echo '$(srcdir)/'`LinkFunction.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfunc_la-LinkFunction.Tpo $(DEPDIR)/libfunc_la-LinkFunction.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='LinkFunction.cc' object='libfunc_la-LinkFunction.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-LinkFunction.lo -MD -MP -MF $(DEPDIR)/libfunc_la-LinkFunction.Tpo -c -o libfunc_la-LinkFunction.lo `test -f 'LinkFunction.cc' || echo '$(srcdir)/'`LinkFunction.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libfunc_la-LinkFunction.Tpo $(DEPDIR)/libfunc_la-LinkFunction.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='LinkFunction.cc' object='libfunc_la-LinkFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-LinkFunction.lo `test -f 'LinkFunction.cc' || echo '$(srcdir)/'`LinkFunction.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-LinkFunction.lo `test -f 'LinkFunction.cc' || echo '$(srcdir)/'`LinkFunction.cc libfunc_la-VectorFunction.lo: VectorFunction.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-VectorFunction.lo -MD -MP -MF $(DEPDIR)/libfunc_la-VectorFunction.Tpo -c -o libfunc_la-VectorFunction.lo `test -f 'VectorFunction.cc' || echo '$(srcdir)/'`VectorFunction.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfunc_la-VectorFunction.Tpo $(DEPDIR)/libfunc_la-VectorFunction.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='VectorFunction.cc' object='libfunc_la-VectorFunction.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-VectorFunction.lo -MD -MP -MF $(DEPDIR)/libfunc_la-VectorFunction.Tpo -c -o libfunc_la-VectorFunction.lo `test -f 'VectorFunction.cc' || echo '$(srcdir)/'`VectorFunction.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libfunc_la-VectorFunction.Tpo $(DEPDIR)/libfunc_la-VectorFunction.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='VectorFunction.cc' object='libfunc_la-VectorFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-VectorFunction.lo `test -f 'VectorFunction.cc' || echo '$(srcdir)/'`VectorFunction.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-VectorFunction.lo `test -f 'VectorFunction.cc' || echo '$(srcdir)/'`VectorFunction.cc libfunc_la-ArrayFunction.lo: ArrayFunction.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-ArrayFunction.lo -MD -MP -MF $(DEPDIR)/libfunc_la-ArrayFunction.Tpo -c -o libfunc_la-ArrayFunction.lo `test -f 'ArrayFunction.cc' || echo '$(srcdir)/'`ArrayFunction.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfunc_la-ArrayFunction.Tpo $(DEPDIR)/libfunc_la-ArrayFunction.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ArrayFunction.cc' object='libfunc_la-ArrayFunction.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-ArrayFunction.lo -MD -MP -MF $(DEPDIR)/libfunc_la-ArrayFunction.Tpo -c -o libfunc_la-ArrayFunction.lo `test -f 'ArrayFunction.cc' || echo '$(srcdir)/'`ArrayFunction.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libfunc_la-ArrayFunction.Tpo $(DEPDIR)/libfunc_la-ArrayFunction.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ArrayFunction.cc' object='libfunc_la-ArrayFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-ArrayFunction.lo `test -f 'ArrayFunction.cc' || echo '$(srcdir)/'`ArrayFunction.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-ArrayFunction.lo `test -f 'ArrayFunction.cc' || echo '$(srcdir)/'`ArrayFunction.cc libfunc_la-FunctionPtr.lo: FunctionPtr.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-FunctionPtr.lo -MD -MP -MF $(DEPDIR)/libfunc_la-FunctionPtr.Tpo -c -o libfunc_la-FunctionPtr.lo `test -f 'FunctionPtr.cc' || echo '$(srcdir)/'`FunctionPtr.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfunc_la-FunctionPtr.Tpo $(DEPDIR)/libfunc_la-FunctionPtr.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='FunctionPtr.cc' object='libfunc_la-FunctionPtr.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-FunctionPtr.lo -MD -MP -MF $(DEPDIR)/libfunc_la-FunctionPtr.Tpo -c -o libfunc_la-FunctionPtr.lo `test -f 'FunctionPtr.cc' || echo '$(srcdir)/'`FunctionPtr.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libfunc_la-FunctionPtr.Tpo $(DEPDIR)/libfunc_la-FunctionPtr.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='FunctionPtr.cc' object='libfunc_la-FunctionPtr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-FunctionPtr.lo `test -f 'FunctionPtr.cc' || echo '$(srcdir)/'`FunctionPtr.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-FunctionPtr.lo `test -f 'FunctionPtr.cc' || echo '$(srcdir)/'`FunctionPtr.cc libfunc_la-FuncTab.lo: FuncTab.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-FuncTab.lo -MD -MP -MF $(DEPDIR)/libfunc_la-FuncTab.Tpo -c -o libfunc_la-FuncTab.lo `test -f 'FuncTab.cc' || echo '$(srcdir)/'`FuncTab.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfunc_la-FuncTab.Tpo $(DEPDIR)/libfunc_la-FuncTab.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='FuncTab.cc' object='libfunc_la-FuncTab.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-FuncTab.lo -MD -MP -MF $(DEPDIR)/libfunc_la-FuncTab.Tpo -c -o libfunc_la-FuncTab.lo `test -f 'FuncTab.cc' || echo '$(srcdir)/'`FuncTab.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libfunc_la-FuncTab.Tpo $(DEPDIR)/libfunc_la-FuncTab.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='FuncTab.cc' object='libfunc_la-FuncTab.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-FuncTab.lo `test -f 'FuncTab.cc' || echo '$(srcdir)/'`FuncTab.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-FuncTab.lo `test -f 'FuncTab.cc' || echo '$(srcdir)/'`FuncTab.cc libfunc_la-FuncError.lo: FuncError.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-FuncError.lo -MD -MP -MF $(DEPDIR)/libfunc_la-FuncError.Tpo -c -o libfunc_la-FuncError.lo `test -f 'FuncError.cc' || echo '$(srcdir)/'`FuncError.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfunc_la-FuncError.Tpo $(DEPDIR)/libfunc_la-FuncError.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='FuncError.cc' object='libfunc_la-FuncError.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-FuncError.lo -MD -MP -MF $(DEPDIR)/libfunc_la-FuncError.Tpo -c -o libfunc_la-FuncError.lo `test -f 'FuncError.cc' || echo '$(srcdir)/'`FuncError.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libfunc_la-FuncError.Tpo $(DEPDIR)/libfunc_la-FuncError.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='FuncError.cc' object='libfunc_la-FuncError.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-FuncError.lo `test -f 'FuncError.cc' || echo '$(srcdir)/'`FuncError.cc + +libfunc_la-DPQFunction.lo: DPQFunction.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-DPQFunction.lo -MD -MP -MF $(DEPDIR)/libfunc_la-DPQFunction.Tpo -c -o libfunc_la-DPQFunction.lo `test -f 'DPQFunction.cc' || echo '$(srcdir)/'`DPQFunction.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libfunc_la-DPQFunction.Tpo $(DEPDIR)/libfunc_la-DPQFunction.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DPQFunction.cc' object='libfunc_la-DPQFunction.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-DPQFunction.lo `test -f 'DPQFunction.cc' || echo '$(srcdir)/'`DPQFunction.cc + +libfunc_la-DFunction.lo: DFunction.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-DFunction.lo -MD -MP -MF $(DEPDIR)/libfunc_la-DFunction.Tpo -c -o libfunc_la-DFunction.lo `test -f 'DFunction.cc' || echo '$(srcdir)/'`DFunction.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libfunc_la-DFunction.Tpo $(DEPDIR)/libfunc_la-DFunction.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DFunction.cc' object='libfunc_la-DFunction.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-DFunction.lo `test -f 'DFunction.cc' || echo '$(srcdir)/'`DFunction.cc + +libfunc_la-PFunction.lo: PFunction.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-PFunction.lo -MD -MP -MF $(DEPDIR)/libfunc_la-PFunction.Tpo -c -o libfunc_la-PFunction.lo `test -f 'PFunction.cc' || echo '$(srcdir)/'`PFunction.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libfunc_la-PFunction.Tpo $(DEPDIR)/libfunc_la-PFunction.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='PFunction.cc' object='libfunc_la-PFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-FuncError.lo `test -f 'FuncError.cc' || echo '$(srcdir)/'`FuncError.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-PFunction.lo `test -f 'PFunction.cc' || echo '$(srcdir)/'`PFunction.cc + +libfunc_la-QFunction.lo: QFunction.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-QFunction.lo -MD -MP -MF $(DEPDIR)/libfunc_la-QFunction.Tpo -c -o libfunc_la-QFunction.lo `test -f 'QFunction.cc' || echo '$(srcdir)/'`QFunction.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libfunc_la-QFunction.Tpo $(DEPDIR)/libfunc_la-QFunction.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='QFunction.cc' object='libfunc_la-QFunction.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-QFunction.lo `test -f 'QFunction.cc' || echo '$(srcdir)/'`QFunction.cc + +libfunc_la-ScalarLogDensity.lo: ScalarLogDensity.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-ScalarLogDensity.lo -MD -MP -MF $(DEPDIR)/libfunc_la-ScalarLogDensity.Tpo -c -o libfunc_la-ScalarLogDensity.lo `test -f 'ScalarLogDensity.cc' || echo '$(srcdir)/'`ScalarLogDensity.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libfunc_la-ScalarLogDensity.Tpo $(DEPDIR)/libfunc_la-ScalarLogDensity.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ScalarLogDensity.cc' object='libfunc_la-ScalarLogDensity.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-ScalarLogDensity.lo `test -f 'ScalarLogDensity.cc' || echo '$(srcdir)/'`ScalarLogDensity.cc + +libfunc_la-VectorLogDensity.lo: VectorLogDensity.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-VectorLogDensity.lo -MD -MP -MF $(DEPDIR)/libfunc_la-VectorLogDensity.Tpo -c -o libfunc_la-VectorLogDensity.lo `test -f 'VectorLogDensity.cc' || echo '$(srcdir)/'`VectorLogDensity.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libfunc_la-VectorLogDensity.Tpo $(DEPDIR)/libfunc_la-VectorLogDensity.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='VectorLogDensity.cc' object='libfunc_la-VectorLogDensity.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-VectorLogDensity.lo `test -f 'VectorLogDensity.cc' || echo '$(srcdir)/'`VectorLogDensity.cc + +libfunc_la-ArrayLogDensity.lo: ArrayLogDensity.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-ArrayLogDensity.lo -MD -MP -MF $(DEPDIR)/libfunc_la-ArrayLogDensity.Tpo -c -o libfunc_la-ArrayLogDensity.lo `test -f 'ArrayLogDensity.cc' || echo '$(srcdir)/'`ArrayLogDensity.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libfunc_la-ArrayLogDensity.Tpo $(DEPDIR)/libfunc_la-ArrayLogDensity.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ArrayLogDensity.cc' object='libfunc_la-ArrayLogDensity.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-ArrayLogDensity.lo `test -f 'ArrayLogDensity.cc' || echo '$(srcdir)/'`ArrayLogDensity.cc + +libfunc_la-ScalarVectorFunction.lo: ScalarVectorFunction.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libfunc_la-ScalarVectorFunction.lo -MD -MP -MF $(DEPDIR)/libfunc_la-ScalarVectorFunction.Tpo -c -o libfunc_la-ScalarVectorFunction.lo `test -f 'ScalarVectorFunction.cc' || echo '$(srcdir)/'`ScalarVectorFunction.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libfunc_la-ScalarVectorFunction.Tpo $(DEPDIR)/libfunc_la-ScalarVectorFunction.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ScalarVectorFunction.cc' object='libfunc_la-ScalarVectorFunction.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libfunc_la-ScalarVectorFunction.lo `test -f 'ScalarVectorFunction.cc' || echo '$(srcdir)/'`ScalarVectorFunction.cc + +libfuntest_la-testfun.lo: testfun.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfuntest_la_CPPFLAGS) $(CPPFLAGS) $(libfuntest_la_CXXFLAGS) $(CXXFLAGS) -MT libfuntest_la-testfun.lo -MD -MP -MF $(DEPDIR)/libfuntest_la-testfun.Tpo -c -o libfuntest_la-testfun.lo `test -f 'testfun.cc' || echo '$(srcdir)/'`testfun.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libfuntest_la-testfun.Tpo $(DEPDIR)/libfuntest_la-testfun.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='testfun.cc' object='libfuntest_la-testfun.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfuntest_la_CPPFLAGS) $(CPPFLAGS) $(libfuntest_la_CXXFLAGS) $(CXXFLAGS) -c -o libfuntest_la-testfun.lo `test -f 'testfun.cc' || echo '$(srcdir)/'`testfun.cc mostlyclean-libtool: -rm -f *.lo @@ -399,26 +589,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -430,15 +609,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -447,6 +622,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -482,6 +672,7 @@ fi; \ done check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_LTLIBRARIES) check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: @@ -517,8 +708,8 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ - mostlyclean-am +clean-am: clean-checkLTLIBRARIES clean-generic clean-libtool \ + clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -586,10 +777,11 @@ uninstall-am: -.MAKE: install-am install-strip +.MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-checkLTLIBRARIES clean-generic clean-libtool \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ @@ -599,7 +791,9 @@ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/lib/function/PFunction.cc jags-4.0.0/src/lib/function/PFunction.cc --- jags-3.4.0/src/lib/function/PFunction.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/function/PFunction.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,37 @@ +#include +#include +#include + +using std::vector; +using std::string; + +namespace jags { + + PFunction::PFunction(RScalarDist const *dist) + : DPQFunction(string("p") + dist->name().substr(1), dist) + {} + + double PFunction::evaluate(vector const &args) const + { + double x = *args[0]; + vector param(args.size() - 1); + for (unsigned int i = 1; i < args.size(); ++i) { + param[i-1] = args[i]; + } + + return dist()->p(x, param, true, false); + } + + bool + PFunction::checkParameterValue(vector const &args) const + { + if (dist()->discrete()) { + double x = *args[0]; + if (x != static_cast(x)) + return false; + } + + return checkArgs(args); + } + +} diff -Nru jags-3.4.0/src/lib/function/QFunction.cc jags-4.0.0/src/lib/function/QFunction.cc --- jags-3.4.0/src/lib/function/QFunction.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/function/QFunction.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,30 @@ +#include +#include +#include + +using std::vector; +using std::string; + +namespace jags { + + QFunction::QFunction(RScalarDist const *dist) + : DPQFunction(string("q") + dist->name().substr(1), dist) + {} + + double QFunction::evaluate(vector const &args) const + { + double x = *args[0]; + vector param(args.size() - 1); + for (unsigned int i = 1; i < args.size(); ++i) { + param[i-1] = args[i]; + } + + return dist()->q(x, param, true, false); + } + + bool QFunction::checkParameterValue(vector const &args) const + { + return checkArgs(args); + } + +} diff -Nru jags-3.4.0/src/lib/function/ScalarFunction.cc jags-4.0.0/src/lib/function/ScalarFunction.cc --- jags-3.4.0/src/lib/function/ScalarFunction.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/function/ScalarFunction.cc 2015-02-22 08:33:05.000000000 +0000 @@ -8,6 +8,8 @@ using std::string; using std::find_if; +namespace jags { + ScalarFunction::ScalarFunction (string const &name, unsigned int npar) : Function (name, npar) { @@ -33,3 +35,5 @@ return isScale(mask, vector()); } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/function/ScalarLogDensity.cc jags-4.0.0/src/lib/function/ScalarLogDensity.cc --- jags-3.4.0/src/lib/function/ScalarLogDensity.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/function/ScalarLogDensity.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,53 @@ +#include +#include +#include + +using std::vector; +using std::string; + +namespace jags { + + ScalarLogDensity::ScalarLogDensity(ScalarDist const *dist) + : ScalarFunction(string("logdensity.") + dist->name().substr(1), + dist->npar() + 1), + _dist(dist) + {} + + double ScalarLogDensity::evaluate(vector const &args) const + { + vector param(_dist->npar()); + for (unsigned int i = 0; i < param.size(); ++i) { + param[i] = args[i+1]; + } + + return _dist->logDensity(*args[0], PDF_FULL, param, 0, 0); + } + + bool + ScalarLogDensity::checkParameterValue(vector const &args) + const + { + //We have to include discreteness check here as there is + //no equivalent of checkParameterDiscrete for Functions. + + vector mask(_dist->npar()); + for (unsigned int i = 0; i < mask.size(); ++i) { + double p = *args[i + 1]; + mask[i] = (p == static_cast(p)); + } + if (!_dist->checkParameterDiscrete(mask)) return false; + + if (_dist->isDiscreteValued(mask)) { + if (*args[0] != static_cast(*args[0])) { + return false; + } + } + + vector param(_dist->npar()); + for (unsigned int i = 0; i < param.size(); ++i) { + param[i] = args[i+1]; + } + return _dist->checkParameterValue(param); + } + +} diff -Nru jags-3.4.0/src/lib/function/ScalarVectorFunction.cc jags-4.0.0/src/lib/function/ScalarVectorFunction.cc --- jags-3.4.0/src/lib/function/ScalarVectorFunction.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/function/ScalarVectorFunction.cc 2015-09-10 05:42:23.000000000 +0000 @@ -0,0 +1,30 @@ +#include +#include + +using std::vector; +using std::string; + +namespace jags { + + ScalarVectorFunction::ScalarVectorFunction (string const &name, + unsigned int npar) + : VectorFunction(name, npar) + { + } + + void + ScalarVectorFunction::evaluate(double *value, + vector const &args, + vector const &lengths) const + { + *value = scalarEval(args, lengths); + } + + unsigned int + ScalarVectorFunction::length(vector const &lengths, + vector const &values) const + { + return 1; + } + +} diff -Nru jags-3.4.0/src/lib/function/testfun.cc jags-4.0.0/src/lib/function/testfun.cc --- jags-3.4.0/src/lib/function/testfun.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/function/testfun.cc 2015-09-25 18:37:36.000000000 +0000 @@ -0,0 +1,374 @@ +#include +#include +#include + +#include + +using jags::ScalarFunction; +using jags::VectorFunction; +using jags::Function; + +#include +#include +#include + +using std::vector; +using std::string; +using std::copy; +using std::floor; + +/* All functions */ + +bool isdiscrete(Function const *f, bool mask1) +{ + CPPUNIT_ASSERT(checkNPar(f, 1)); + return f->isDiscreteValued(vector(1, mask1)); +} + +bool isdiscrete(Function const *f, bool mask1, bool mask2) +{ + CPPUNIT_ASSERT(checkNPar(f, 2)); + vector arg(2); + arg[0] = mask1; + arg[1] = mask2; + return f->isDiscreteValued(arg); +} + +bool isdiscrete(Function const *f, bool mask1, bool mask2, bool mask3) +{ + CPPUNIT_ASSERT(checkNPar(f, 3)); + vector arg(3); + arg[0] = mask1; + arg[1] = mask2; + arg[2] = mask3; + return f->isDiscreteValued(arg); +} + +class BoolIterator : public std::vector +{ +public: + bool atEnd; + BoolIterator(unsigned int n) : vector(n, false), atEnd(false) {}; + + void next() { + bool bump = true; + for (unsigned int i = 0; i < size(); ++i) { + if (bump) { + bool x = operator[](i); //current value + bump = x; + operator[](i) = !x; + } + else return; + } + if (bump) atEnd=true; + } + +}; + +bool isdiscrete(Function const *f, unsigned int npar, + bool (*predicate) (vector const &)) +{ + CPPUNIT_ASSERT(checkNPar(f, npar)); + BoolIterator mask(npar); + + for(BoolIterator mask(npar); !mask.atEnd; mask.next()) { + if (f->isDiscreteValued(mask) != predicate(mask)) { + return false; + } + } + return true; +} + +bool always(vector const &mask) { return true; } +bool never(vector const &mask) { return false; } +bool all(vector const &mask) { return allTrue(mask); } +bool any(vector const &mask) { return anyTrue(mask); } + +bool neveradditive(Function const *f, unsigned int npar) +{ + CPPUNIT_ASSERT_MESSAGE(f->name(), checkNPar(f, npar)); + + for(BoolIterator mask(npar); !mask.atEnd; mask.next()) { + if (f->isAdditive(mask, vector())) return false; + for(BoolIterator fixed(npar); !fixed.atEnd; fixed.next()) { + if (f->isAdditive(mask, fixed)) return false; + } + } + return true; +} + +bool neverlinear(Function const *f, unsigned int npar) +{ + CPPUNIT_ASSERT_MESSAGE(f->name(), checkNPar(f, npar)); + + for(BoolIterator mask(npar); !mask.atEnd; mask.next()) { + if (f->isLinear(mask, vector())) return false; + for(BoolIterator fixed(npar); !fixed.atEnd; fixed.next()) { + if (f->isLinear(mask, fixed)) return false; + } + } + return true; +} + +bool neverscale(Function const *f, unsigned int npar) +{ + CPPUNIT_ASSERT_MESSAGE(f->name(), checkNPar(f, npar)); + + for(BoolIterator mask(npar); !mask.atEnd; mask.next()) { + if (f->isScale(mask, vector())) return false; + for(BoolIterator fixed(npar); !fixed.atEnd; fixed.next()) { + if (f->isScale(mask, fixed)) return false; + } + } + return true; +} + +bool neverpow(Function const *f, unsigned int npar) +{ + CPPUNIT_ASSERT_MESSAGE(f->name(), checkNPar(f, npar)); + + for(BoolIterator mask(npar); !mask.atEnd; mask.next()) { + if (f->isPower(mask, vector())) return false; + for(BoolIterator fixed(npar); !fixed.atEnd; fixed.next()) { + if (f->isPower(mask, fixed)) return false; + } + } + return true; +} + +bool neverclosed(Function const *f, unsigned int npar) +{ + return neverscale(f, npar) && neverlinear(f, npar) && + neverpow(f, npar) && neveradditive(f, npar); +} + +/* Scalar functions */ + +static bool checkval(ScalarFunction const *f, double x) +{ + CPPUNIT_ASSERT_MESSAGE(f->name(), checkNPar(f, 1)); + vector arg(1, &x); + return f->checkParameterValue(arg); +} + +void checkLimits(ScalarFunction const *f, double lower, double upper) +{ + CPPUNIT_ASSERT(lower < upper); + CPPUNIT_ASSERT_MESSAGE(f->name(), checkval(f, lower)); + CPPUNIT_ASSERT_MESSAGE(f->name(), checkval(f, upper)); + + CPPUNIT_ASSERT_MESSAGE(f->name(), !jags_isnan(eval(f, lower))); + CPPUNIT_ASSERT_MESSAGE(f->name(), !jags_isnan(eval(f, upper))); + + if (jags_finite(upper)) { + if (upper > 1) { + upper *= (1.0 + DBL_EPSILON); + } + else if (upper < -1) { + upper *= (1.0 - DBL_EPSILON); + } + else { + upper += DBL_EPSILON; + } + CPPUNIT_ASSERT_MESSAGE(f->name(), !checkval(f, upper)); + } + if (jags_finite(lower)) { + if (lower > 1) { + lower *= (1.0 - DBL_EPSILON); + } + else if (lower < -1) { + lower *= (1.0 + DBL_EPSILON); + } + else { + lower -= DBL_EPSILON; + } + CPPUNIT_ASSERT_MESSAGE(f->name(), !checkval(f, lower)); + } +} + +static vector discreteMask(vector const &args) +{ + vector out(args.size(), true); + + for (unsigned int i = 0; i < args.size(); ++i) { + double v = *args[i]; + if (v != floor(v + 0.5)) { + out[i] = false; + } + } + + return out; +} + +static double checkEval(ScalarFunction const *f, + vector const &args) +{ + //Evaluate scalar function with checks + CPPUNIT_ASSERT_MESSAGE(f->name(), checkNPar(f, args.size())); + vector mask = discreteMask(args); + CPPUNIT_ASSERT_MESSAGE(f->name(), f->checkParameterDiscrete(mask)); + CPPUNIT_ASSERT_MESSAGE(f->name(), f->checkParameterValue(args)); + return f->evaluate(args); +} + +/* + Evaluate a scalar function that takes a single argument +*/ +double eval(ScalarFunction const *f, const double x) +{ + vector arg(1, &x); + return checkEval(f, arg); +} + +/* + Evaluate a scalar function that takes two arguments +*/ +double eval(ScalarFunction const *f, double x, double y) +{ + CPPUNIT_ASSERT_MESSAGE(f->name(), checkNPar(f, 2)); + vector args(2); + args[0] = &x; + args[1] = &y; + CPPUNIT_ASSERT_MESSAGE(f->name(), f->checkParameterValue(args)); + return checkEval(f, args); +} + +/* + Evaluate a scalar function that takes three arguments +*/ +double eval(ScalarFunction const *f, double x, double y, double z) +{ + CPPUNIT_ASSERT_MESSAGE(f->name(), checkNPar(f, 3)); + vector args(3); + args[0] = &x; + args[1] = &y; + args[2] = &z; + CPPUNIT_ASSERT_MESSAGE(f->name(), f->checkParameterValue(args)); + return checkEval(f, args); +} + +static vector discreteMask(vector const &args, + vector const &arglen) +{ + vector out(args.size(), true); + + for (unsigned int i = 0; i < args.size(); ++i) { + double const *v = args[i]; + for (unsigned int j = 0; j < arglen[i]; ++j) { + if (v[j] != floor(v[j] + 0.5)) { + out[i] = false; + break; + } + } + } + + return out; +} + +static vector checkVEval(VectorFunction const *f, + vector const &args, + vector const &arglen) +{ + // Evaluate vector function with checks + CPPUNIT_ASSERT_EQUAL_MESSAGE(f->name(), args.size(), arglen.size()); + CPPUNIT_ASSERT_MESSAGE(f->name(), checkNPar(f, args.size())); + CPPUNIT_ASSERT_MESSAGE(f->name(), f->checkParameterLength(arglen)); + vector mask = discreteMask(args, arglen); + CPPUNIT_ASSERT_MESSAGE(f->name(), f->checkParameterDiscrete(mask)); + CPPUNIT_ASSERT_MESSAGE(f->name(), f->checkParameterValue(args, arglen)); + vector ans(f->length(arglen, args)); + f->evaluate(&ans[0], args, arglen); + return ans; +} + +/* Evaluate a VectorFunction that takes a single argument */ +vector +veval(VectorFunction const *f, vector const &x) +{ + vector arg(1, &x[0]); + vector arglen(1, x.size()); + return checkVEval(f, arg, arglen); +} + +//Evaluate a VectorFunction that takes two arguments +vector +veval(VectorFunction const *f, vector const &x, vector const &y) +{ + vector arg(2); + arg[0] = &x[0]; + arg[1] = &y[0]; + vector arglen(2); + arglen[0] = x.size(); + arglen[1] = y.size(); + return checkVEval(f, arg, arglen); +} + +//Evaluate a VectorFunction that takes three arguments +vector +veval(VectorFunction const *f, vector const &x, + vector const &y, vector const &z) +{ + vector arg(3); + arg[0] = &x[0]; + arg[1] = &y[0]; + arg[2] = &z[0]; + vector arglen(3); + arglen[0] = x.size(); + arglen[1] = y.size(); + arglen[2] = z.size(); + return checkVEval(f, arg, arglen); +} + +//Evaluate a VectorFunction that takes four arguments +vector +veval(VectorFunction const *f, + vector const &x, vector const &y, + vector const &z, vector const &w) +{ + vector arg(4); + arg[0] = &x[0]; + arg[1] = &y[0]; + arg[2] = &z[0]; + arg[3] = &w[0]; + vector arglen(4); + arglen[0] = x.size(); + arglen[1] = y.size(); + arglen[2] = z.size(); + arglen[3] = w.size(); + return checkVEval(f, arg, arglen); +} + + +/* + Evaluate a VectorFunction that takes a single argument and returns a + scalar +*/ +double eval(VectorFunction const *f, vector const &x) +{ + vector y = veval(f, x); + CPPUNIT_ASSERT_EQUAL(static_cast(1), y.size()); + return y[0]; +} + +/* + Evaluate a VectorFunction that takes two arguments and returns a scalar +*/ +double eval(VectorFunction const *f, vector const &x, + vector const &y) +{ + vector z = veval(f, x, y); + CPPUNIT_ASSERT_EQUAL(static_cast(1), z.size()); + return z[0]; +} + +/* + Evaluate a VectorFunction that takes three arguments and returns a scalar +*/ +double eval(VectorFunction const *f, vector const &x, + vector const &y, vector const &z) +{ + vector ans = veval(f, x, y, z); + CPPUNIT_ASSERT_EQUAL(static_cast(1), ans.size()); + return ans[0]; +} + diff -Nru jags-3.4.0/src/lib/function/VectorFunction.cc jags-4.0.0/src/lib/function/VectorFunction.cc --- jags-3.4.0/src/lib/function/VectorFunction.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/function/VectorFunction.cc 2015-02-22 08:33:05.000000000 +0000 @@ -4,6 +4,8 @@ using std::vector; using std::string; +namespace jags { + VectorFunction::VectorFunction (string const &name, unsigned int npar) : Function(name, npar) { @@ -16,14 +18,13 @@ return true; } -unsigned int -VectorFunction::length(vector const &arglengths) const -{ - return 1; -} - bool -VectorFunction::checkParameterLength(vector const &args) const +VectorFunction::checkParameterLength(vector const &arglen) const { + for (unsigned int i = 0; i < arglen.size(); ++i) { + if (arglen[i] == 0) return false; + } return true; } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/function/VectorLogDensity.cc jags-4.0.0/src/lib/function/VectorLogDensity.cc --- jags-3.4.0/src/lib/function/VectorLogDensity.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/function/VectorLogDensity.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,90 @@ +#include +#include +#include + +using std::vector; +using std::string; + +namespace jags { + + VectorLogDensity::VectorLogDensity(VectorDist const *dist) + : VectorFunction(string("logdensity.") + dist->name().substr(1), + dist->npar() + 1), + _dist(dist) + {} + + unsigned int + VectorLogDensity::length(vector const &lengths, + vector const &values) const + { + return 1; + } + + void + VectorLogDensity::evaluate(double *value, + vector const &args, + vector const &lengths) const + { + unsigned int npar = _dist->npar(); + + vector dargs(npar); + vector dlengths(npar); + for (unsigned int i = 0; i < npar; ++i) { + dargs[i] = args[i+1]; + dlengths[i] = lengths[i+1]; + } + + value[0] = _dist->logDensity(args[0], lengths[0], PDF_FULL, + dargs, dlengths, 0, 0); + } + + bool + VectorLogDensity::checkParameterLength(vector const &lengths) + const + { + unsigned int npar = _dist->npar(); + + vector dlengths(npar); + for (unsigned int i = 0; i < npar; ++i) { + dlengths[i] = lengths[i+1]; + } + + if (!_dist->checkParameterLength(dlengths)) return false; + if (lengths[0] != _dist->length(dlengths)) return false; + + return true; + } + + bool + VectorLogDensity::checkParameterValue(vector const &args, + vector const &lengths) + const + { + //We have to include discreteness check here as there is + //no equivalent of checkParameterDiscrete for Functions. + + unsigned int npar = _dist->npar(); + + vector mask(npar); + for (unsigned int i = 0; i < npar; ++i) { + double p = *args[i + 1]; + mask[i] = (p == static_cast(p)); + } + if (!_dist->checkParameterDiscrete(mask)) return false; + + if (_dist->isDiscreteValued(mask)) { + if (*args[0] != static_cast(*args[0])) { + return false; + } + } + + vector dargs(npar); + vector dlengths(npar); + for (unsigned int i = 0; i < npar; ++i) { + dargs[i] = args[i+1]; + dlengths[i] = lengths[i+1]; + } + return _dist->checkParameterValue(dargs, dlengths); + } + +} diff -Nru jags-3.4.0/src/lib/graph/AggNode.cc jags-4.0.0/src/lib/graph/AggNode.cc --- jags-3.4.0/src/lib/graph/AggNode.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/graph/AggNode.cc 2015-07-03 05:52:00.000000000 +0000 @@ -14,6 +14,7 @@ using std::out_of_range; using std::string; +namespace jags { /* Two utility functions "substitute_parents" and "substitute_offsets" @@ -62,12 +63,13 @@ return newoffsets; } -AggNode::AggNode(vector const &dim, +AggNode::AggNode(vector const &dim, + unsigned int nchain, vector const &parents, vector const &offsets) - : DeterministicNode(dim, sub_parents(parents, offsets)), + : DeterministicNode(dim, nchain, sub_parents(parents, offsets)), _offsets(sub_offsets(parents, offsets)), - _parent_values(_length * _nchain), _discrete(true) + _parent_values(_length * nchain), _discrete(true) { // Check argument lengths if (_length != parents.size() || _length != offsets.size()) { @@ -101,8 +103,8 @@ } } - // Initialize if fully observed. See DeterministicNode constructor - if (isObserved()) { + // Initialize if fixed. See comments in the DeterministicNode constructor + if (isFixed()) { for (unsigned int ch = 0; ch < _nchain; ++ch) { deterministicSample(ch); } @@ -151,7 +153,34 @@ bool AggNode::isClosed(set const &ancestors, ClosedFuncClass fc, bool fixed) const { + switch(fc) { + case DNODE_ADDITIVE: + { + //Only one parent may be additive, and it must be completely + //embedded in the AggNode + Node const *pnode = 0; + vector pmask; + vector const &par = parents(); + for (unsigned int i = 0; i < par.size(); ++i) { + if (ancestors.count(par[i])) { + if (pnode == 0) { + pnode = par[i]; + pmask = vector(pnode->length(), false); + } + else { + if (par[i] != pnode) return false; + if (pmask[_offsets[i]]) return false; + } + pmask[_offsets[i]] = true; + } + else if (fixed) { + if (!par[i]->isFixed()) return false; + } + } + if (!allTrue(pmask)) return false; + } + break; case DNODE_SCALE: //All parents must be scale transformations for (unsigned int i = 0; i < parents().size(); ++i) { @@ -189,11 +218,13 @@ parents.back() + ")"; } +/* DeterministicNode * AggNode::clone(vector const &parents) const { return new AggNode(this->dim(), parents, _offsets); } +*/ bool AggNode::isDiscreteValued() const { @@ -204,3 +235,5 @@ { return _offsets; } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/graph/ArrayLogicalNode.cc jags-4.0.0/src/lib/graph/ArrayLogicalNode.cc --- jags-3.4.0/src/lib/graph/ArrayLogicalNode.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/graph/ArrayLogicalNode.cc 2015-04-19 13:55:29.000000000 +0000 @@ -12,6 +12,8 @@ using std::string; using std::logic_error; +namespace jags { + static vector mkDim(ArrayFunction const *func, vector const &parents) { @@ -20,20 +22,32 @@ parameters. */ - vector > parameter_dims(parents.size()); - for (unsigned int j = 0; j < parents.size(); ++j) { - parameter_dims[j] = parents[j]->dim(); + unsigned long N = parents.size(); + vector > dims(N); + vector fixed(N), discrete(N); + vector values(N); + for (unsigned int j = 0; j < N; ++j) { + dims[j] = parents[j]->dim(); + fixed[j] = parents[j]->isFixed(); + values[j] = parents[j]->value(0); + discrete[j] = parents[j]->isDiscreteValued(); } if (!func) { throw logic_error("NULL function in ArrayLogicalNode constructor"); } - if (!func->checkNPar(parameter_dims.size())) { + if (!checkNPar(func, dims.size())) { throw FuncError(func, "Incorrect number of parameters"); } - if (!func->checkParameterDim(parameter_dims)) { + if (!func->checkParameterDim(dims)) { throw FuncError(func, "Non-conforming parameters"); } - return func->dim(parameter_dims); + if (!func->checkParameterFixed(fixed)) { + throw FuncError(func, "Expected parameters with fixed values"); + } + if (!func->checkParameterDiscrete(discrete)) { + throw FuncError(func, "Failed check for discrete-valued parameters"); + } + return func->dim(dims, values); } static vector > const & @@ -45,12 +59,13 @@ return getUnique(dims); } -ArrayLogicalNode::ArrayLogicalNode(ArrayFunction const *function, +ArrayLogicalNode::ArrayLogicalNode(ArrayFunction const *function, + unsigned int nchain, vector const ¶meters) - : LogicalNode(mkDim(function,parameters), parameters, function), + : LogicalNode(mkDim(function,parameters), nchain, parameters, function), _func(function), _dims(mkParameterDims(parameters)) { - if (isObserved()) { + if (isFixed()) { for (unsigned int ch = 0; ch < _nchain; ++ch) { deterministicSample(ch); } @@ -67,9 +82,12 @@ return _func->checkParameterValue(_parameters[chain], _dims); } + /* DeterministicNode * ArrayLogicalNode::clone(vector const &parents) const { return new ArrayLogicalNode(_func, parents); } - + */ + +} //namespace jags diff -Nru jags-3.4.0/src/lib/graph/ArrayStochasticNode.cc jags-4.0.0/src/lib/graph/ArrayStochasticNode.cc --- jags-3.4.0/src/lib/graph/ArrayStochasticNode.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/graph/ArrayStochasticNode.cc 2015-04-21 19:37:19.000000000 +0000 @@ -15,6 +15,8 @@ using std::min; using std::max; +namespace jags { + static vector mkDim(ArrayDist const *dist, vector const &parents) { @@ -23,7 +25,7 @@ parents */ - if (!dist->checkNPar(parents.size())) { + if (!checkNPar(dist, parents.size())) { throw DistError(dist, "Incorrect number of parameters"); } vector > parameter_dims(parents.size()); @@ -45,10 +47,13 @@ return getUnique(dims); } -ArrayStochasticNode::ArrayStochasticNode(ArrayDist const *dist, +ArrayStochasticNode::ArrayStochasticNode(ArrayDist const *dist, + unsigned int nchain, vector const ¶ms, - Node const *lower, Node const *upper) - : StochasticNode(mkDim(dist, params), dist, params, lower, upper), + Node const *lower, Node const *upper, + double const *data, + unsigned int length) + : StochasticNode(mkDim(dist, params), nchain, dist, params, lower, upper), _dist(dist), _dims(mkParameterDims(params)) { if (!dist->checkParameterDim(_dims)) { @@ -136,13 +141,15 @@ return _dist->checkParameterValue(_parameters[chain], _dims); } + /* StochasticNode * ArrayStochasticNode::clone(vector const ¶meters, Node const *lower, Node const *upper) const { return new ArrayStochasticNode(_dist, parameters, lower, upper); } - + */ + unsigned int ArrayStochasticNode::df() const { return _dist->df(_dims); @@ -153,3 +160,19 @@ { _dist->support(lower, upper, length, _parameters[chain], _dims); } + + double ArrayStochasticNode::KL(unsigned int ch1, unsigned int ch2, + RNG *rng, unsigned int nrep) const + { + if (lowerBound() && !lowerBound()->isFixed()) { + return JAGS_POSINF; + } + if (upperBound() && !upperBound()->isFixed()) { + return JAGS_POSINF; + } + return _dist->KL(_parameters[ch1], _parameters[ch2], _dims, + lowerLimit(ch1), upperLimit(ch1), + rng, nrep); + } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/graph/ConstantNode.cc jags-4.0.0/src/lib/graph/ConstantNode.cc --- jags-3.4.0/src/lib/graph/ConstantNode.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/graph/ConstantNode.cc 2015-06-14 18:50:52.000000000 +0000 @@ -3,83 +3,83 @@ #include #include -#include #include using std::vector; using std::string; using std::ostringstream; using std::floor; -using std::copy; using std::logic_error; -ConstantNode::ConstantNode(double value, unsigned int nchain) - : Node(vector(1,1), nchain) -{ - for (unsigned int n = 0; n < nchain; ++n) { - setValue(&value, 1, n); - } -} - -ConstantNode::ConstantNode(vector const &dim, - vector const &value, - unsigned int nchain) - : Node(dim, nchain) -{ - if (value.size() != _length) { - throw logic_error("Invalid value in ConstantNode"); - } - - //FIXME: Should we be using an array in constructor anyway? - double *val = new double[_length]; - copy(value.begin(), value.end(), val); - for (unsigned int n = 0; n < nchain; ++n) { - setValue(val, _length, n); - } - delete [] val; -} - -ConstantNode::~ConstantNode() -{ -} - -bool ConstantNode::isDiscreteValued() const -{ - double const *val = value(0); - for (unsigned int i = 0; i < _length; ++i) { - if (val[i] != floor(val[i])) - return false; - } - return true; -} - -void ConstantNode::deterministicSample(unsigned int) {} - -void ConstantNode::randomSample(RNG*, unsigned int) {} - -string ConstantNode::deparse(vector const &parents) const -{ - ostringstream os; - if (length() == 1) { - os << *value(0); - } - else { - os << "c(" << value(0)[0] << "..." << value(0)[length() - 1] << ")"; - } - return os.str(); -} - -bool ConstantNode::checkParentValues(unsigned int) const -{ - return true; -} - -bool ConstantNode::isRandomVariable() const -{ - return true; -} - -bool ConstantNode::isObserved() const -{ - return true; -} +namespace jags { + + ConstantNode::ConstantNode(double value, unsigned int nchain, + bool observed) + : Node(vector(1,1), nchain), _observed(observed) + { + for (unsigned int n = 0; n < nchain; ++n) { + setValue(&value, 1, n); + } + } + + ConstantNode::ConstantNode(vector const &dim, + vector const &value, + unsigned int nchain, bool observed) + : Node(dim, nchain), _observed(observed) + { + if (value.size() != _length) { + throw logic_error("Invalid value in ConstantNode"); + } + + for (unsigned int n = 0; n < nchain; ++n) { + setValue(&value[0], _length, n); + } + } + + bool ConstantNode::isDiscreteValued() const + { + double const *val = value(0); + for (unsigned int i = 0; i < _length; ++i) { + if (val[i] != floor(val[i])) + return false; + } + return true; + } + + void ConstantNode::deterministicSample(unsigned int) {} + + void ConstantNode::randomSample(RNG*, unsigned int) {} + + string ConstantNode::deparse(vector const &parents) const + { + ostringstream os; + if (length() == 1) { + os << *value(0); + } + else { + os << "c(" << value(0)[0] << "..." << value(0)[length() - 1] << ")"; + } + return os.str(); + } + + bool ConstantNode::checkParentValues(unsigned int) const + { + return true; + } + + bool ConstantNode::isFixed() const + { + return true; + } + + RVStatus ConstantNode::randomVariableStatus() const + { + return _observed ? RV_TRUE_OBSERVED : RV_FALSE; + } + + void ConstantNode::unlinkParents() + { + + } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/graph/DeterministicNode.cc jags-4.0.0/src/lib/graph/DeterministicNode.cc --- jags-3.4.0/src/lib/graph/DeterministicNode.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/graph/DeterministicNode.cc 2015-06-17 21:20:52.000000000 +0000 @@ -2,52 +2,66 @@ #include using std::vector; +using std::set; -DeterministicNode::DeterministicNode(vector const &dim, +namespace jags { + +DeterministicNode::DeterministicNode(vector const &dim, + unsigned int nchain, vector const &parents) - : Node(dim, parents), _observed(true) + : Node(dim, nchain, parents), _fixed(true) { //Add this node as a deterministic child of its parents + //taking care to avoid repeats + set pset; for (unsigned int i = 0; i < parents.size(); ++i) { - parents[i]->addChild(this); + Node const *p = parents[i]; + if (pset.insert(p).second) { + p->addChild(this); + } } - //Deterministic nodes are not observed if any parents are unobserved + //Deterministic nodes are not fixed if any parents are not fixed vector::const_iterator p; for (p = parents.begin(); p != parents.end(); ++p) { - if (!(*p)->isObserved()) { - _observed = false; + if (!(*p)->isFixed()) { + _fixed = false; break; } } /* - Observed deterministic nodes should be immediately initialized - by calling deterministicSample. We can't do this here because - this is a virtual function. So we have to do it in whatever + Fixed deterministic nodes should be immediately initialized by + calling deterministicSample. We can't do this here because this + is a virtual function. So we have to do it in whatever sub-class defines the deterministicSample member function. */ - } DeterministicNode::~DeterministicNode() { - for (unsigned int i = 0; i < parents().size(); ++i) { - parents()[i]->removeChild(this); - } } -void DeterministicNode::randomSample(RNG*, unsigned int nchain) { - deterministicSample(nchain); +void DeterministicNode::randomSample(RNG*, unsigned int chain) { + deterministicSample(chain); } -bool DeterministicNode::isRandomVariable() const { - return false; +RVStatus DeterministicNode::randomVariableStatus() const +{ + return RV_FALSE; } -bool DeterministicNode::isObserved() const +bool DeterministicNode::isFixed() const { - return _observed; + return _fixed; } + void DeterministicNode::unlinkParents() + { + for (unsigned int i = 0; i < parents().size(); ++i) { + parents()[i]->removeChild(this); + } + } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/graph/Graph.cc jags-4.0.0/src/lib/graph/Graph.cc --- jags-3.4.0/src/lib/graph/Graph.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/graph/Graph.cc 2015-02-22 08:33:05.000000000 +0000 @@ -16,160 +16,13 @@ using std::logic_error; using std::reverse; -Graph::Graph() - : _nodes() -{ -} - -void Graph::add(Node *node) -{ - if (!node) { - throw invalid_argument("Attempt to add null node to graph"); - } - if (!this->contains(node)) { - _nodes.insert(node); - } -} - -void Graph::remove(Node *node) -{ - if (this->contains(node)) { - _nodes.erase(node); - } -} +namespace jags { -void Graph::clear() -{ - _nodes.clear(); -} - -bool Graph::contains(Node const *node) const -{ - return _nodes.find(const_cast(node)) != _nodes.end(); -} - -unsigned int Graph::size() const -{ - return _nodes.size(); -} + Graph::Graph() {} -#include -bool Graph::isClosed() const -{ - //Determine whether any nodes in the graph have children or - //parents outside the graph - - for (set::iterator i = _nodes.begin(); i != _nodes.end(); i++) { - - // Check parents - vector const &parents = (*i)->parents(); - for (vector::const_iterator j = parents.begin(); - j != parents.end(); j++) - { - if (!this->contains(*j)) { - return false; - } - } - - // Check children - set const *sch = (*i)->stochasticChildren(); - for (set::iterator k = sch->begin(); k != sch->end(); k++) - { - if (!this->contains(*k)) { - return false; - } - } - - set const *dch = (*i)->deterministicChildren(); - for (set::iterator k = dch->begin(); k != dch->end(); k++) - { - if (!this->contains(*k)) { - return false; - } - } - } - return true; -} - -set const &Graph::nodes() const -{ - return _nodes; -} - -void Graph::getNodes(vector &nodes) const -{ - for (set::iterator p = _nodes.begin(); - p != _nodes.end(); p++) + bool Graph::contains(Node const *node) const { - nodes.push_back(*p); + return find(const_cast(node)) != end(); } -} - -/* Helper function for Graph::getSortedNodes. Returns true - if node has any children in set S */ -static bool childInSet(Node *node, set const &S) -{ - for (set::const_iterator j = node->stochasticChildren()->begin(); - j != node->stochasticChildren()->end(); ++j) - { - if (S.count(*j)) { - return true; - } - } - for (set::const_iterator j = node->deterministicChildren()->begin(); - j != node->deterministicChildren()->end(); ++j) - { - if (S.count(*j)) { - return true; - } - } - return false; -} - - -void Graph::getSortedNodes(set &S, vector &sortednodes) -{ - /* - Return a vector of nodes whose ordering follows the partial - ordering of the set. If a is after b then there is never a - path from a to b. - */ - - if (!sortednodes.empty()) { - throw logic_error("vector not empty in getSortedNodes"); - } - - sortednodes.reserve(S.size()); - - while (!S.empty()) { - - bool loopcheck = false; - - set::iterator i = S.begin(); - while (i != S.end()) { - if (childInSet(*i, S)) { - ++i; - } - else { - loopcheck = true; - sortednodes.push_back(*i); - set::iterator j = i; - ++i; - S.erase(j); - } - } - - if (!loopcheck) { - //We did not add any nodes to sortednodes on this pass - throw logic_error("Failure in Graph::getSortedNodes. Directed cycle in graph"); - } - } - - reverse(sortednodes.begin(), sortednodes.end()); -} - -void Graph::getSortedNodes(vector &sortednodes) const -{ - set S = _nodes; - getSortedNodes(S, sortednodes); + } diff -Nru jags-3.4.0/src/lib/graph/GraphMarks.cc jags-4.0.0/src/lib/graph/GraphMarks.cc --- jags-3.4.0/src/lib/graph/GraphMarks.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/graph/GraphMarks.cc 2015-02-22 08:33:05.000000000 +0000 @@ -16,6 +16,30 @@ using std::pair; using std::list; +namespace jags { + + + /* + This is a helper class for the markAncestors member function. A + GMIterator moves across a vector of Nodes. A dereferencing + operator and a prefix increment operator are provided so that + it behaves like an STL iterator. + + Unlike an STL iterator, however, a GMIterator stores its end + position. The atEnd member function can be used to test + whether the iterator has moved beyond the last element of the + vector. + */ + class GMIterator { + vector::const_iterator _begin, _end; + public: + GMIterator(vector const &v) + : _begin(v.begin()), _end(v.end()) {} + inline Node const * operator*() const { return *_begin; } + inline bool atEnd() const { return _begin == _end; } + inline void operator++() { ++_begin; } + }; + GraphMarks::GraphMarks(Graph const &graph) : _graph(graph) { @@ -105,140 +129,56 @@ } } -/* -void GraphMarks::markChildren(Node *node, int m) -{ - - if (!_graph.contains(node)) { - throw logic_error("Can't mark children of node: not in Graph"); - } - - set const *children = node->hildren(); - for (set::const_iterator p = children->begin(); - p != children->end(); ++p) - { - if (_graph.contains(*p)) { - _marks[*p] = m; - } - } -} - -void GraphMarks::markChildren(Node *node, bool (*test)(Node const *), int m) +void GraphMarks::markAncestors(vector const &nodes, int m) { + set visited; //visited nodes + vector ancestors; //ancestor nodes + + /* + Do a depth-first search of the graph to find all the ancestors + of the given Nodes in the graph. The set "visited" keeps track + of previously visited nodes for efficiency. Ancestors are + pushed back on to the vector "ancestors" in the order they are + found. + + We could do this with a recursive helper function, but it is + safer to iterate. So we keep our own stack of GMIterators to + record the current position on the graph. - if (!_graph.contains(node)) { - throw logic_error("Can't mark children of node: not in Graph"); - } - - set const *children = node->children(); - for (set::const_iterator p = children->begin(); - p != children->end(); ++p) - { - Node *child = *p; - if (_graph.contains(child)) { - if (test(child)) { - _marks[child] = m; - } - else { - markChildren(child, test, m); - } + The GMIterator class is defined above. + */ + + vector stack; + stack.push_back(GMIterator(nodes)); + + while (!stack.empty()) { + + for (GMIterator &p = stack.back(); !p.atEnd(); ++p) { + if (visited.count(*p) == 0 && _graph.contains(*p)) { + visited.insert(*p); + ancestors.push_back(*p); + stack.push_back(GMIterator((*p)->parents())); + break; + } } - } -} -*/ - -/* -void -GraphMarks::do_mark_descendants(Node *node, int m, set &visited) -{ - // Recursive helper function for GraphMarks::markDescendants - for (set::const_iterator i = node->children()->begin(); - i != node->children()->end(); ++i) - { - Node const *child = *i; - if (_graph.contains(child) && visited.count(child) == 0) { - visited.insert(child); - _marks[child] = m; - do_mark_descendants(*i, m, visited); + + if (stack.back().atEnd()) { + stack.pop_back(); } } -} - -void GraphMarks::markDescendants(Node *node, int m) -{ - if (!_graph.contains(node)) { - throw logic_error("Can't mark children of node: not in Graph"); - } - // visited_nodes keeps track of previously visited nodes in order - // to avoid an infinite loop when the graph has a directed cycle. - set visited_nodes; - do_mark_descendants(node, m, visited_nodes); -} -*/ - -/* -void -GraphMarks::do_mark_ancestors(Node const *node, int m, - set &visited) -{ - // Recursive helper function for GraphMarks::markAncestors - for (vector::const_iterator i = node->parents().begin(); - i != node->parents().end(); ++i) + /* Now set the marks of all ancestors */ + for(vector::const_iterator p = ancestors.begin(); + p != ancestors.end(); ++p) { - Node const *parent = *i; - if (visited.count(parent) == 0 && _graph.contains(parent)) { - visited.insert(parent); - _marks[parent] = m; - do_mark_ancestors(parent, m, visited); + if (m == 0) { + _marks.erase(*p); } - } -} -*/ - -void GraphMarks::markAncestors(vector const &nodes, int m) -{ - set visited; //visited nodes - list marked; //marked nodes - - vector::const_iterator> begin(1, nodes.begin()); - vector::const_iterator> end(1, nodes.end()); - - while (!begin.empty()) { - - for (vector::const_iterator &i = begin.back(); - i != end.back(); ++i) - { - - Node const *inode = *i; - if (visited.count(inode) == 0 && _graph.contains(inode)) { - visited.insert(inode); - marked.push_back(inode); - begin.push_back(inode->parents().begin()); - end.push_back(inode->parents().end()); - break; - } - } - - if (begin.back() == end.back()) { - begin.pop_back(); - end.pop_back(); + else { + _marks[*p] = m; } } - /* - When inserting a large number of nodes into the map, it is - more efficient to insert them in order, as we get a hint - about the correct placement from the last insertion - */ - marked.sort(); - list::const_iterator p = marked.begin(); - map::iterator q = - _marks.insert(pair(*p,m)).first; - - for(++p; p != marked.end(); ++p) { - q = _marks.insert(q, pair(*p,m)); - } - } +} //namespace jags diff -Nru jags-3.4.0/src/lib/graph/LinkNode.cc jags-4.0.0/src/lib/graph/LinkNode.cc --- jags-3.4.0/src/lib/graph/LinkNode.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/graph/LinkNode.cc 2015-04-19 14:01:31.000000000 +0000 @@ -8,17 +8,19 @@ #include #include -class GraphMarks; - using std::vector; using std::string; using std::set; using std::logic_error; using std::runtime_error; -LinkNode::LinkNode(LinkFunction const *function, +namespace jags { + +class GraphMarks; + +LinkNode::LinkNode(LinkFunction const *function, unsigned int nchain, vector const &parents) - : LogicalNode(vector(1,1), parents, function), + : LogicalNode(vector(1,1), nchain, parents, function), _func(function) { if (!isScalar(parents[0]->dim())) { @@ -26,7 +28,7 @@ } // Initialize if fully observed - if (isObserved()) { + if (isFixed()) { for (unsigned int ch = 0; ch < _nchain; ++ch) { deterministicSample(ch); } @@ -42,13 +44,15 @@ { return true; } - + + /* DeterministicNode * LinkNode::clone(vector const &parents) const { return new LinkNode(_func, parents); } - + */ + double LinkNode::eta(unsigned int chain) const { return *_parameters[chain][0]; @@ -63,3 +67,5 @@ { return _func->linkName(); } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/graph/LogicalNode.cc jags-4.0.0/src/lib/graph/LogicalNode.cc --- jags-3.4.0/src/lib/graph/LogicalNode.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/graph/LogicalNode.cc 2015-07-02 19:50:22.000000000 +0000 @@ -16,6 +16,8 @@ using std::set; using std::logic_error; +namespace jags { + static vector > mkParams(vector const &parents, unsigned int nchain) { @@ -30,25 +32,31 @@ return ans; } -LogicalNode::LogicalNode(vector const &dim, + +LogicalNode::LogicalNode(vector const &dim, + unsigned int nchain, vector const ¶meters, Function const *function) - : DeterministicNode(dim, parameters), _func(function), _discrete(false), - _parameters(mkParams(parameters, nchain())) + : DeterministicNode(dim, nchain, parameters), + _func(function), _discrete(false), + _parameters(mkParams(parameters, nchain)) { - if (!function->checkNPar(parameters.size())) { - throw FuncError(function, "Incorrect number of parameters"); + if (!checkNPar(function, parameters.size())) { + throw FuncError(function, "Incorrect number of arguments"); } vector mask(parents().size()); for (unsigned long j = 0; j < parents().size(); ++j) { mask[j] = parents()[j]->isDiscreteValued(); } + if (!_func->checkParameterDiscrete(mask)) { + throw FuncError(function, "Failed check for discrete-valued arguments"); + } _discrete = _func->isDiscreteValued(mask); } string LogicalNode::deparse(vector const &parents) const { - string name = "("; + string name = "(a"; name.append(_func->deparse(parents)); name.append(")"); @@ -69,7 +77,7 @@ ++nmask; } if (fixed) { - fixed_mask.push_back(par[i]->isObserved()); + fixed_mask.push_back(par[i]->isFixed()); } } @@ -78,6 +86,9 @@ } switch(fc) { + case DNODE_ADDITIVE: + return _func->isAdditive(mask, fixed_mask); + break; case DNODE_LINEAR: return _func->isLinear(mask, fixed_mask); break; @@ -99,3 +110,5 @@ { return _discrete; } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/graph/Makefile.am jags-4.0.0/src/lib/graph/Makefile.am --- jags-3.4.0/src/lib/graph/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/graph/Makefile.am 2015-02-22 08:33:05.000000000 +0000 @@ -2,8 +2,9 @@ libgraph_la_CPPFLAGS = -I$(top_srcdir)/src/include -libgraph_la_SOURCES = Node.cc DeterministicNode.cc AggNode.cc \ -MixtureNode.cc LogicalNode.cc ConstantNode.cc StochasticNode.cc \ -Graph.cc GraphMarks.cc NodeError.cc ScalarLogicalNode.cc LinkNode.cc \ -VectorLogicalNode.cc ArrayLogicalNode.cc VSLogicalNode.cc \ -ScalarStochasticNode.cc VectorStochasticNode.cc ArrayStochasticNode.cc +libgraph_la_SOURCES = Node.cc DeterministicNode.cc AggNode.cc \ + MixtureNode.cc MixTab.cc LogicalNode.cc ConstantNode.cc \ + StochasticNode.cc Graph.cc GraphMarks.cc NodeError.cc \ + ScalarLogicalNode.cc LinkNode.cc VectorLogicalNode.cc \ + ArrayLogicalNode.cc VSLogicalNode.cc ScalarStochasticNode.cc \ + VectorStochasticNode.cc ArrayStochasticNode.cc ParentError.cc diff -Nru jags-3.4.0/src/lib/graph/Makefile.in jags-4.0.0/src/lib/graph/Makefile.in --- jags-3.4.0/src/lib/graph/Makefile.in 2013-08-30 13:23:27.000000000 +0000 +++ jags-4.0.0/src/lib/graph/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/lib/graph -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -62,6 +98,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -70,29 +107,55 @@ libgraph_la_LIBADD = am_libgraph_la_OBJECTS = libgraph_la-Node.lo \ libgraph_la-DeterministicNode.lo libgraph_la-AggNode.lo \ - libgraph_la-MixtureNode.lo libgraph_la-LogicalNode.lo \ - libgraph_la-ConstantNode.lo libgraph_la-StochasticNode.lo \ - libgraph_la-Graph.lo libgraph_la-GraphMarks.lo \ - libgraph_la-NodeError.lo libgraph_la-ScalarLogicalNode.lo \ - libgraph_la-LinkNode.lo libgraph_la-VectorLogicalNode.lo \ + libgraph_la-MixtureNode.lo libgraph_la-MixTab.lo \ + libgraph_la-LogicalNode.lo libgraph_la-ConstantNode.lo \ + libgraph_la-StochasticNode.lo libgraph_la-Graph.lo \ + libgraph_la-GraphMarks.lo libgraph_la-NodeError.lo \ + libgraph_la-ScalarLogicalNode.lo libgraph_la-LinkNode.lo \ + libgraph_la-VectorLogicalNode.lo \ libgraph_la-ArrayLogicalNode.lo libgraph_la-VSLogicalNode.lo \ libgraph_la-ScalarStochasticNode.lo \ libgraph_la-VectorStochasticNode.lo \ - libgraph_la-ArrayStochasticNode.lo + libgraph_la-ArrayStochasticNode.lo libgraph_la-ParentError.lo libgraph_la_OBJECTS = $(am_libgraph_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(libgraph_la_SOURCES) DIST_SOURCES = $(libgraph_la_SOURCES) am__can_run_installinfo = \ @@ -100,11 +163,30 @@ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -118,6 +200,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -187,10 +272,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -258,11 +339,12 @@ top_srcdir = @top_srcdir@ noinst_LTLIBRARIES = libgraph.la libgraph_la_CPPFLAGS = -I$(top_srcdir)/src/include -libgraph_la_SOURCES = Node.cc DeterministicNode.cc AggNode.cc \ -MixtureNode.cc LogicalNode.cc ConstantNode.cc StochasticNode.cc \ -Graph.cc GraphMarks.cc NodeError.cc ScalarLogicalNode.cc LinkNode.cc \ -VectorLogicalNode.cc ArrayLogicalNode.cc VSLogicalNode.cc \ -ScalarStochasticNode.cc VectorStochasticNode.cc ArrayStochasticNode.cc +libgraph_la_SOURCES = Node.cc DeterministicNode.cc AggNode.cc \ + MixtureNode.cc MixTab.cc LogicalNode.cc ConstantNode.cc \ + StochasticNode.cc Graph.cc GraphMarks.cc NodeError.cc \ + ScalarLogicalNode.cc LinkNode.cc VectorLogicalNode.cc \ + ArrayLogicalNode.cc VSLogicalNode.cc ScalarStochasticNode.cc \ + VectorStochasticNode.cc ArrayStochasticNode.cc ParentError.cc all: all-am @@ -280,7 +362,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/graph/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/lib/graph/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -301,14 +382,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgraph.la: $(libgraph_la_OBJECTS) $(libgraph_la_DEPENDENCIES) $(EXTRA_libgraph_la_DEPENDENCIES) - $(CXXLINK) $(libgraph_la_OBJECTS) $(libgraph_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(CXXLINK) $(libgraph_la_OBJECTS) $(libgraph_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -325,9 +409,11 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgraph_la-GraphMarks.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgraph_la-LinkNode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgraph_la-LogicalNode.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgraph_la-MixTab.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgraph_la-MixtureNode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgraph_la-Node.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgraph_la-NodeError.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgraph_la-ParentError.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgraph_la-ScalarLogicalNode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgraph_la-ScalarStochasticNode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgraph_la-StochasticNode.Plo@am__quote@ @@ -336,151 +422,168 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgraph_la-VectorStochasticNode.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< libgraph_la-Node.lo: Node.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-Node.lo -MD -MP -MF $(DEPDIR)/libgraph_la-Node.Tpo -c -o libgraph_la-Node.lo `test -f 'Node.cc' || echo '$(srcdir)/'`Node.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libgraph_la-Node.Tpo $(DEPDIR)/libgraph_la-Node.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Node.cc' object='libgraph_la-Node.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-Node.lo -MD -MP -MF $(DEPDIR)/libgraph_la-Node.Tpo -c -o libgraph_la-Node.lo `test -f 'Node.cc' || echo '$(srcdir)/'`Node.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-Node.Tpo $(DEPDIR)/libgraph_la-Node.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Node.cc' object='libgraph_la-Node.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-Node.lo `test -f 'Node.cc' || echo '$(srcdir)/'`Node.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-Node.lo `test -f 'Node.cc' || echo '$(srcdir)/'`Node.cc libgraph_la-DeterministicNode.lo: DeterministicNode.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-DeterministicNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-DeterministicNode.Tpo -c -o libgraph_la-DeterministicNode.lo `test -f 'DeterministicNode.cc' || echo '$(srcdir)/'`DeterministicNode.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libgraph_la-DeterministicNode.Tpo $(DEPDIR)/libgraph_la-DeterministicNode.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DeterministicNode.cc' object='libgraph_la-DeterministicNode.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-DeterministicNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-DeterministicNode.Tpo -c -o libgraph_la-DeterministicNode.lo `test -f 'DeterministicNode.cc' || echo '$(srcdir)/'`DeterministicNode.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-DeterministicNode.Tpo $(DEPDIR)/libgraph_la-DeterministicNode.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DeterministicNode.cc' object='libgraph_la-DeterministicNode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-DeterministicNode.lo `test -f 'DeterministicNode.cc' || echo '$(srcdir)/'`DeterministicNode.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-DeterministicNode.lo `test -f 'DeterministicNode.cc' || echo '$(srcdir)/'`DeterministicNode.cc libgraph_la-AggNode.lo: AggNode.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-AggNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-AggNode.Tpo -c -o libgraph_la-AggNode.lo `test -f 'AggNode.cc' || echo '$(srcdir)/'`AggNode.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libgraph_la-AggNode.Tpo $(DEPDIR)/libgraph_la-AggNode.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='AggNode.cc' object='libgraph_la-AggNode.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-AggNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-AggNode.Tpo -c -o libgraph_la-AggNode.lo `test -f 'AggNode.cc' || echo '$(srcdir)/'`AggNode.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-AggNode.Tpo $(DEPDIR)/libgraph_la-AggNode.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='AggNode.cc' object='libgraph_la-AggNode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-AggNode.lo `test -f 'AggNode.cc' || echo '$(srcdir)/'`AggNode.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-AggNode.lo `test -f 'AggNode.cc' || echo '$(srcdir)/'`AggNode.cc libgraph_la-MixtureNode.lo: MixtureNode.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-MixtureNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-MixtureNode.Tpo -c -o libgraph_la-MixtureNode.lo `test -f 'MixtureNode.cc' || echo '$(srcdir)/'`MixtureNode.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libgraph_la-MixtureNode.Tpo $(DEPDIR)/libgraph_la-MixtureNode.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MixtureNode.cc' object='libgraph_la-MixtureNode.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-MixtureNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-MixtureNode.Tpo -c -o libgraph_la-MixtureNode.lo `test -f 'MixtureNode.cc' || echo '$(srcdir)/'`MixtureNode.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-MixtureNode.Tpo $(DEPDIR)/libgraph_la-MixtureNode.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MixtureNode.cc' object='libgraph_la-MixtureNode.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-MixtureNode.lo `test -f 'MixtureNode.cc' || echo '$(srcdir)/'`MixtureNode.cc + +libgraph_la-MixTab.lo: MixTab.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-MixTab.lo -MD -MP -MF $(DEPDIR)/libgraph_la-MixTab.Tpo -c -o libgraph_la-MixTab.lo `test -f 'MixTab.cc' || echo '$(srcdir)/'`MixTab.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-MixTab.Tpo $(DEPDIR)/libgraph_la-MixTab.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MixTab.cc' object='libgraph_la-MixTab.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-MixtureNode.lo `test -f 'MixtureNode.cc' || echo '$(srcdir)/'`MixtureNode.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-MixTab.lo `test -f 'MixTab.cc' || echo '$(srcdir)/'`MixTab.cc libgraph_la-LogicalNode.lo: LogicalNode.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-LogicalNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-LogicalNode.Tpo -c -o libgraph_la-LogicalNode.lo `test -f 'LogicalNode.cc' || echo '$(srcdir)/'`LogicalNode.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libgraph_la-LogicalNode.Tpo $(DEPDIR)/libgraph_la-LogicalNode.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='LogicalNode.cc' object='libgraph_la-LogicalNode.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-LogicalNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-LogicalNode.Tpo -c -o libgraph_la-LogicalNode.lo `test -f 'LogicalNode.cc' || echo '$(srcdir)/'`LogicalNode.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-LogicalNode.Tpo $(DEPDIR)/libgraph_la-LogicalNode.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='LogicalNode.cc' object='libgraph_la-LogicalNode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-LogicalNode.lo `test -f 'LogicalNode.cc' || echo '$(srcdir)/'`LogicalNode.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-LogicalNode.lo `test -f 'LogicalNode.cc' || echo '$(srcdir)/'`LogicalNode.cc libgraph_la-ConstantNode.lo: ConstantNode.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-ConstantNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-ConstantNode.Tpo -c -o libgraph_la-ConstantNode.lo `test -f 'ConstantNode.cc' || echo '$(srcdir)/'`ConstantNode.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libgraph_la-ConstantNode.Tpo $(DEPDIR)/libgraph_la-ConstantNode.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ConstantNode.cc' object='libgraph_la-ConstantNode.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-ConstantNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-ConstantNode.Tpo -c -o libgraph_la-ConstantNode.lo `test -f 'ConstantNode.cc' || echo '$(srcdir)/'`ConstantNode.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-ConstantNode.Tpo $(DEPDIR)/libgraph_la-ConstantNode.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ConstantNode.cc' object='libgraph_la-ConstantNode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-ConstantNode.lo `test -f 'ConstantNode.cc' || echo '$(srcdir)/'`ConstantNode.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-ConstantNode.lo `test -f 'ConstantNode.cc' || echo '$(srcdir)/'`ConstantNode.cc libgraph_la-StochasticNode.lo: StochasticNode.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-StochasticNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-StochasticNode.Tpo -c -o libgraph_la-StochasticNode.lo `test -f 'StochasticNode.cc' || echo '$(srcdir)/'`StochasticNode.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libgraph_la-StochasticNode.Tpo $(DEPDIR)/libgraph_la-StochasticNode.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='StochasticNode.cc' object='libgraph_la-StochasticNode.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-StochasticNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-StochasticNode.Tpo -c -o libgraph_la-StochasticNode.lo `test -f 'StochasticNode.cc' || echo '$(srcdir)/'`StochasticNode.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-StochasticNode.Tpo $(DEPDIR)/libgraph_la-StochasticNode.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='StochasticNode.cc' object='libgraph_la-StochasticNode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-StochasticNode.lo `test -f 'StochasticNode.cc' || echo '$(srcdir)/'`StochasticNode.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-StochasticNode.lo `test -f 'StochasticNode.cc' || echo '$(srcdir)/'`StochasticNode.cc libgraph_la-Graph.lo: Graph.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-Graph.lo -MD -MP -MF $(DEPDIR)/libgraph_la-Graph.Tpo -c -o libgraph_la-Graph.lo `test -f 'Graph.cc' || echo '$(srcdir)/'`Graph.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libgraph_la-Graph.Tpo $(DEPDIR)/libgraph_la-Graph.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Graph.cc' object='libgraph_la-Graph.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-Graph.lo -MD -MP -MF $(DEPDIR)/libgraph_la-Graph.Tpo -c -o libgraph_la-Graph.lo `test -f 'Graph.cc' || echo '$(srcdir)/'`Graph.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-Graph.Tpo $(DEPDIR)/libgraph_la-Graph.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Graph.cc' object='libgraph_la-Graph.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-Graph.lo `test -f 'Graph.cc' || echo '$(srcdir)/'`Graph.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-Graph.lo `test -f 'Graph.cc' || echo '$(srcdir)/'`Graph.cc libgraph_la-GraphMarks.lo: GraphMarks.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-GraphMarks.lo -MD -MP -MF $(DEPDIR)/libgraph_la-GraphMarks.Tpo -c -o libgraph_la-GraphMarks.lo `test -f 'GraphMarks.cc' || echo '$(srcdir)/'`GraphMarks.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libgraph_la-GraphMarks.Tpo $(DEPDIR)/libgraph_la-GraphMarks.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GraphMarks.cc' object='libgraph_la-GraphMarks.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-GraphMarks.lo -MD -MP -MF $(DEPDIR)/libgraph_la-GraphMarks.Tpo -c -o libgraph_la-GraphMarks.lo `test -f 'GraphMarks.cc' || echo '$(srcdir)/'`GraphMarks.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-GraphMarks.Tpo $(DEPDIR)/libgraph_la-GraphMarks.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GraphMarks.cc' object='libgraph_la-GraphMarks.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-GraphMarks.lo `test -f 'GraphMarks.cc' || echo '$(srcdir)/'`GraphMarks.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-GraphMarks.lo `test -f 'GraphMarks.cc' || echo '$(srcdir)/'`GraphMarks.cc libgraph_la-NodeError.lo: NodeError.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-NodeError.lo -MD -MP -MF $(DEPDIR)/libgraph_la-NodeError.Tpo -c -o libgraph_la-NodeError.lo `test -f 'NodeError.cc' || echo '$(srcdir)/'`NodeError.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libgraph_la-NodeError.Tpo $(DEPDIR)/libgraph_la-NodeError.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='NodeError.cc' object='libgraph_la-NodeError.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-NodeError.lo -MD -MP -MF $(DEPDIR)/libgraph_la-NodeError.Tpo -c -o libgraph_la-NodeError.lo `test -f 'NodeError.cc' || echo '$(srcdir)/'`NodeError.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-NodeError.Tpo $(DEPDIR)/libgraph_la-NodeError.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='NodeError.cc' object='libgraph_la-NodeError.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-NodeError.lo `test -f 'NodeError.cc' || echo '$(srcdir)/'`NodeError.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-NodeError.lo `test -f 'NodeError.cc' || echo '$(srcdir)/'`NodeError.cc libgraph_la-ScalarLogicalNode.lo: ScalarLogicalNode.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-ScalarLogicalNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-ScalarLogicalNode.Tpo -c -o libgraph_la-ScalarLogicalNode.lo `test -f 'ScalarLogicalNode.cc' || echo '$(srcdir)/'`ScalarLogicalNode.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libgraph_la-ScalarLogicalNode.Tpo $(DEPDIR)/libgraph_la-ScalarLogicalNode.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ScalarLogicalNode.cc' object='libgraph_la-ScalarLogicalNode.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-ScalarLogicalNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-ScalarLogicalNode.Tpo -c -o libgraph_la-ScalarLogicalNode.lo `test -f 'ScalarLogicalNode.cc' || echo '$(srcdir)/'`ScalarLogicalNode.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-ScalarLogicalNode.Tpo $(DEPDIR)/libgraph_la-ScalarLogicalNode.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ScalarLogicalNode.cc' object='libgraph_la-ScalarLogicalNode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-ScalarLogicalNode.lo `test -f 'ScalarLogicalNode.cc' || echo '$(srcdir)/'`ScalarLogicalNode.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-ScalarLogicalNode.lo `test -f 'ScalarLogicalNode.cc' || echo '$(srcdir)/'`ScalarLogicalNode.cc libgraph_la-LinkNode.lo: LinkNode.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-LinkNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-LinkNode.Tpo -c -o libgraph_la-LinkNode.lo `test -f 'LinkNode.cc' || echo '$(srcdir)/'`LinkNode.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libgraph_la-LinkNode.Tpo $(DEPDIR)/libgraph_la-LinkNode.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='LinkNode.cc' object='libgraph_la-LinkNode.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-LinkNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-LinkNode.Tpo -c -o libgraph_la-LinkNode.lo `test -f 'LinkNode.cc' || echo '$(srcdir)/'`LinkNode.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-LinkNode.Tpo $(DEPDIR)/libgraph_la-LinkNode.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='LinkNode.cc' object='libgraph_la-LinkNode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-LinkNode.lo `test -f 'LinkNode.cc' || echo '$(srcdir)/'`LinkNode.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-LinkNode.lo `test -f 'LinkNode.cc' || echo '$(srcdir)/'`LinkNode.cc libgraph_la-VectorLogicalNode.lo: VectorLogicalNode.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-VectorLogicalNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-VectorLogicalNode.Tpo -c -o libgraph_la-VectorLogicalNode.lo `test -f 'VectorLogicalNode.cc' || echo '$(srcdir)/'`VectorLogicalNode.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libgraph_la-VectorLogicalNode.Tpo $(DEPDIR)/libgraph_la-VectorLogicalNode.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='VectorLogicalNode.cc' object='libgraph_la-VectorLogicalNode.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-VectorLogicalNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-VectorLogicalNode.Tpo -c -o libgraph_la-VectorLogicalNode.lo `test -f 'VectorLogicalNode.cc' || echo '$(srcdir)/'`VectorLogicalNode.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-VectorLogicalNode.Tpo $(DEPDIR)/libgraph_la-VectorLogicalNode.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='VectorLogicalNode.cc' object='libgraph_la-VectorLogicalNode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-VectorLogicalNode.lo `test -f 'VectorLogicalNode.cc' || echo '$(srcdir)/'`VectorLogicalNode.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-VectorLogicalNode.lo `test -f 'VectorLogicalNode.cc' || echo '$(srcdir)/'`VectorLogicalNode.cc libgraph_la-ArrayLogicalNode.lo: ArrayLogicalNode.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-ArrayLogicalNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-ArrayLogicalNode.Tpo -c -o libgraph_la-ArrayLogicalNode.lo `test -f 'ArrayLogicalNode.cc' || echo '$(srcdir)/'`ArrayLogicalNode.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libgraph_la-ArrayLogicalNode.Tpo $(DEPDIR)/libgraph_la-ArrayLogicalNode.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ArrayLogicalNode.cc' object='libgraph_la-ArrayLogicalNode.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-ArrayLogicalNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-ArrayLogicalNode.Tpo -c -o libgraph_la-ArrayLogicalNode.lo `test -f 'ArrayLogicalNode.cc' || echo '$(srcdir)/'`ArrayLogicalNode.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-ArrayLogicalNode.Tpo $(DEPDIR)/libgraph_la-ArrayLogicalNode.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ArrayLogicalNode.cc' object='libgraph_la-ArrayLogicalNode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-ArrayLogicalNode.lo `test -f 'ArrayLogicalNode.cc' || echo '$(srcdir)/'`ArrayLogicalNode.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-ArrayLogicalNode.lo `test -f 'ArrayLogicalNode.cc' || echo '$(srcdir)/'`ArrayLogicalNode.cc libgraph_la-VSLogicalNode.lo: VSLogicalNode.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-VSLogicalNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-VSLogicalNode.Tpo -c -o libgraph_la-VSLogicalNode.lo `test -f 'VSLogicalNode.cc' || echo '$(srcdir)/'`VSLogicalNode.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libgraph_la-VSLogicalNode.Tpo $(DEPDIR)/libgraph_la-VSLogicalNode.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='VSLogicalNode.cc' object='libgraph_la-VSLogicalNode.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-VSLogicalNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-VSLogicalNode.Tpo -c -o libgraph_la-VSLogicalNode.lo `test -f 'VSLogicalNode.cc' || echo '$(srcdir)/'`VSLogicalNode.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-VSLogicalNode.Tpo $(DEPDIR)/libgraph_la-VSLogicalNode.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='VSLogicalNode.cc' object='libgraph_la-VSLogicalNode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-VSLogicalNode.lo `test -f 'VSLogicalNode.cc' || echo '$(srcdir)/'`VSLogicalNode.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-VSLogicalNode.lo `test -f 'VSLogicalNode.cc' || echo '$(srcdir)/'`VSLogicalNode.cc libgraph_la-ScalarStochasticNode.lo: ScalarStochasticNode.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-ScalarStochasticNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-ScalarStochasticNode.Tpo -c -o libgraph_la-ScalarStochasticNode.lo `test -f 'ScalarStochasticNode.cc' || echo '$(srcdir)/'`ScalarStochasticNode.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libgraph_la-ScalarStochasticNode.Tpo $(DEPDIR)/libgraph_la-ScalarStochasticNode.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ScalarStochasticNode.cc' object='libgraph_la-ScalarStochasticNode.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-ScalarStochasticNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-ScalarStochasticNode.Tpo -c -o libgraph_la-ScalarStochasticNode.lo `test -f 'ScalarStochasticNode.cc' || echo '$(srcdir)/'`ScalarStochasticNode.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-ScalarStochasticNode.Tpo $(DEPDIR)/libgraph_la-ScalarStochasticNode.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ScalarStochasticNode.cc' object='libgraph_la-ScalarStochasticNode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-ScalarStochasticNode.lo `test -f 'ScalarStochasticNode.cc' || echo '$(srcdir)/'`ScalarStochasticNode.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-ScalarStochasticNode.lo `test -f 'ScalarStochasticNode.cc' || echo '$(srcdir)/'`ScalarStochasticNode.cc libgraph_la-VectorStochasticNode.lo: VectorStochasticNode.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-VectorStochasticNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-VectorStochasticNode.Tpo -c -o libgraph_la-VectorStochasticNode.lo `test -f 'VectorStochasticNode.cc' || echo '$(srcdir)/'`VectorStochasticNode.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libgraph_la-VectorStochasticNode.Tpo $(DEPDIR)/libgraph_la-VectorStochasticNode.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='VectorStochasticNode.cc' object='libgraph_la-VectorStochasticNode.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-VectorStochasticNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-VectorStochasticNode.Tpo -c -o libgraph_la-VectorStochasticNode.lo `test -f 'VectorStochasticNode.cc' || echo '$(srcdir)/'`VectorStochasticNode.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-VectorStochasticNode.Tpo $(DEPDIR)/libgraph_la-VectorStochasticNode.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='VectorStochasticNode.cc' object='libgraph_la-VectorStochasticNode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-VectorStochasticNode.lo `test -f 'VectorStochasticNode.cc' || echo '$(srcdir)/'`VectorStochasticNode.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-VectorStochasticNode.lo `test -f 'VectorStochasticNode.cc' || echo '$(srcdir)/'`VectorStochasticNode.cc libgraph_la-ArrayStochasticNode.lo: ArrayStochasticNode.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-ArrayStochasticNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-ArrayStochasticNode.Tpo -c -o libgraph_la-ArrayStochasticNode.lo `test -f 'ArrayStochasticNode.cc' || echo '$(srcdir)/'`ArrayStochasticNode.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libgraph_la-ArrayStochasticNode.Tpo $(DEPDIR)/libgraph_la-ArrayStochasticNode.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ArrayStochasticNode.cc' object='libgraph_la-ArrayStochasticNode.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-ArrayStochasticNode.lo -MD -MP -MF $(DEPDIR)/libgraph_la-ArrayStochasticNode.Tpo -c -o libgraph_la-ArrayStochasticNode.lo `test -f 'ArrayStochasticNode.cc' || echo '$(srcdir)/'`ArrayStochasticNode.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-ArrayStochasticNode.Tpo $(DEPDIR)/libgraph_la-ArrayStochasticNode.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ArrayStochasticNode.cc' object='libgraph_la-ArrayStochasticNode.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-ArrayStochasticNode.lo `test -f 'ArrayStochasticNode.cc' || echo '$(srcdir)/'`ArrayStochasticNode.cc + +libgraph_la-ParentError.lo: ParentError.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgraph_la-ParentError.lo -MD -MP -MF $(DEPDIR)/libgraph_la-ParentError.Tpo -c -o libgraph_la-ParentError.lo `test -f 'ParentError.cc' || echo '$(srcdir)/'`ParentError.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgraph_la-ParentError.Tpo $(DEPDIR)/libgraph_la-ParentError.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ParentError.cc' object='libgraph_la-ParentError.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-ArrayStochasticNode.lo `test -f 'ArrayStochasticNode.cc' || echo '$(srcdir)/'`ArrayStochasticNode.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgraph_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgraph_la-ParentError.lo `test -f 'ParentError.cc' || echo '$(srcdir)/'`ParentError.cc mostlyclean-libtool: -rm -f *.lo @@ -488,26 +591,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -519,15 +611,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -536,6 +624,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -677,18 +780,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/lib/graph/MixTab.cc jags-4.0.0/src/lib/graph/MixTab.cc --- jags-3.4.0/src/lib/graph/MixTab.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/graph/MixTab.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,86 @@ +#include +#include + +#include + +using std::vector; +using std::map; +using std::logic_error; + +namespace jags { + + static SimpleRange mkRange(map, Node const *> const &mixmap) + { + /* + Calculates the smallest SimpleRange enclosing the index + values in the MixMap. Also checks for consistency in the + lengths of the index values. + */ + map, Node const *>::const_iterator p = mixmap.begin(); + + unsigned int N = p->first.size(); + vector lower(p->first), upper(p->first); + + for (++p ; p != mixmap.end(); ++p) { + if (p->first.size() != N) { + throw logic_error("index size mismatch in MixTab"); + } + for (unsigned int j = 0; j < N; ++j) { + int i = p->first[j]; + if (i < lower[j]) lower[j] = i; + if (i > upper[j]) upper[j] = i; + } + } + + return SimpleRange(lower, upper); + } + + MixTab::MixTab(map, Node const *> const &mixmap) + : _range(mkRange(mixmap)), _nodes(_range.length(), 0) + { + for (map, Node const *>::const_iterator p = mixmap.begin(); + p != mixmap.end(); ++p) + { + _nodes[_range.leftOffset(p->first)] = p->second; + } + } + + Node const * MixTab::getNode(vector const &index) const + { + unsigned int offset = _range.leftOffset(index); + return _nodes[offset]; + } + + + Range const &MixTab::range() const + { + return _range; + } + + +/* + double MixTab::density() + { + MixTab::const_iterator p = _map.begin(); + vector lower(p->first), upper(p->first); + unsigned int N = p->first.size(); + + // Find a range containing the indices + for (++p ; p != _map.end(); ++p) { + for (unsigned int j = 0; j < N; ++j) { + int i = p->first[j]; + if (i < lower[j]) lower[j] = i; + if (i > upper[j]) upper[j] = i; + } + } + + // Density is the number of indices actually used divided by + // the number of possible indices in the enclosing range. + double numerator = _map.size(); + double denominator = Range(lower, upper).length(); + return numerator / denominator; + } +*/ + +} + diff -Nru jags-3.4.0/src/lib/graph/MixtureNode.cc jags-4.0.0/src/lib/graph/MixtureNode.cc --- jags-3.4.0/src/lib/graph/MixtureNode.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/graph/MixtureNode.cc 2015-09-12 10:10:38.000000000 +0000 @@ -2,6 +2,7 @@ #include #include #include +#include #include #include @@ -17,113 +18,123 @@ using std::string; using std::pair; -static map &mixMapMap() -{ - /* - Repository of MixMaps that are shared between MixtureNode - objects. We use reference counting to keep track of whether a - MixMap is in use. - */ - static map _mixmapmap; - return _mixmapmap; -} -static MixMap const &insertMixMap(MixMap const &m) -{ - /* - Inserts a MixMap into the shared repository if it is unique, or - increments its reference count if it is already contained in the - repository. - - The return value is a reference to a copy of the mixmap in the - repository, which will persist as long as we need it. +namespace jags { - N.B. This must be called only by the MixtureNode constructor! - */ + typedef map > MixTabMap; - map &mmap = mixMapMap(); - map::iterator p = mmap.find(m); - if (p == mmap.end()) { - mmap.insert(pair(m, 1)); - p = mmap.find(m); - } - else { - p->second++; + static MixTabMap &mixTabMap() + { + // Repository of MixTab objects that are shared between + // MixtureNodes. We use reference counting to keep track of + // whether a MixTab is in use. + static MixTabMap _map; + return _map; } - return p->first; -} -static void removeMixMap(MixMap const &m) -{ - /* - Decrements the reference count of a MixMap in the shared - repository. When the reference count reaches zero, the MixMap - is removed. + static MixTab const *getTable(MixMap const &mixmap) + { + // Returns a MixTab object from the repository corresponding + // to the given MixMap. - N.B. This must be called only by the MixtureNode destructor! - */ - - map &mmap = mixMapMap(); - map::iterator p = mmap.find(m); - if (p == mmap.end()) { - throw logic_error("Failed to find MixMap in MixtureNode"); - } - else { - p->second--; + // N.B. This must be called only by the MixtureNode + // constructor! + + MixTabMap &tabmap = mixTabMap(); + MixTabMap::iterator p = tabmap.find(mixmap); + if (p == tabmap.end()) { + //MixTab does not exist in repository; create and + //insert a new one. + MixTab *newtab = new MixTab(mixmap); + MixTabMap::mapped_type newentry(newtab, 1); + p = tabmap.insert(MixTabMap::value_type(mixmap, newentry)).first; + } + else { + //MixTab already exists in the repository; increment + //reference count + p->second.second++; + } + return p->second.first; } - if (p->second == 0) { - mmap.erase(p); + static MixTabMap::iterator findTable(MixTab const *table) + { + // Inverse lookup of the MixTab repository using the MixTab + + MixTabMap &tabmap = mixTabMap(); + MixTabMap::iterator p = tabmap.begin(); + + for( ; p != tabmap.end(); ++p) { + if (p->second.first == table) { + return p; + } + } + throw logic_error("Failed to find MixTab in MixtureNode"); + return p; //Wall } -} -/* - Calculates the dimensions of a mixture node given its possible parent - values. If the parents have inconsistent dimensions, then a logic - error is thrown. -*/ -static vector const & -mkDim(map, Node const *> const &mixmap) -{ - map, Node const *>::const_iterator p = mixmap.begin(); - vector const &dim = p->second->dim(); - for (++p ; p != mixmap.end(); ++p) { - if (p->second->dim() != dim) { - throw logic_error("Dimension mismatch in MixtureNode parents"); - } - } - return dim; -} - -/* - Creates a vector of parent nodes from the arguments passed to the - constructor. - - The index nodes come first, in the order supplied, then the parents - supplied in the mixmap parameter, in the order determined by the - corresponding indices. -*/ -static vector -mkParents(vector const &index, - map, Node const *> const &mixmap) -{ - vector parents; - parents.reserve(index.size() + mixmap.size()); - for (unsigned int i = 0; i < index.size(); ++i) { - parents.push_back(index[i]); + static void removeTable(MixTab const *table) + { + // Decrements the reference count of a MixTab in the shared + // repository. When the reference count reaches zero, the MixTab + // is removed. + + // N.B. This must be called only by the MixtureNode destructor! + + MixTabMap::iterator p = findTable(table); + p->second.second--; + if (p->second.second == 0) { + mixTabMap().erase(p); + } } - for (map, Node const *>::const_iterator p = mixmap.begin(); - p != mixmap.end(); ++p) + + /* + Calculates the dimensions of a mixture node given its possible + parent values. If the parents have inconsistent dimensions, then + a logic error is thrown. + */ + static vector const &mkDim(MixMap const &mixmap) { - parents.push_back(p->second); + MixMap::const_iterator p = mixmap.begin(); + vector const &dim = p->second->dim(); + for (++p ; p != mixmap.end(); ++p) { + if (p->second->dim() != dim) { + throw logic_error("Dimension mismatch in MixtureNode parents"); + } + } + return dim; + } + + /* + Creates a vector of parent nodes from the arguments passed to the + constructor. + + The index nodes come first, in the order supplied, then the parents + supplied in the mixmap parameter, in the order determined by the + corresponding indices. + */ + static vector + mkParents(vector const &index, MixMap const &mixmap) + { + vector parents; + parents.reserve(index.size() + mixmap.size()); + for (unsigned int i = 0; i < index.size(); ++i) { + parents.push_back(index[i]); + } + for (map, Node const *>::const_iterator p = mixmap.begin(); + p != mixmap.end(); ++p) + { + parents.push_back(p->second); + } + return parents; } - return parents; -} MixtureNode::MixtureNode (vector const &index, - map, Node const *> const &mixmap) - : DeterministicNode(mkDim(mixmap), mkParents(index, mixmap)), - _map(insertMixMap(mixmap)), _Nindex(index.size()), _discrete(true) + unsigned int nchain, + MixMap const &mixmap) + : DeterministicNode(mkDim(mixmap), nchain, mkParents(index, mixmap)), + _table(getTable(mixmap)), _Nindex(index.size()), _discrete(true), + _active_parents(nchain) { // Check validity of index argument @@ -135,36 +146,35 @@ { Node const *node = *i; if (node->length() != 1 || !node->isDiscreteValued() || - node->isObserved()) + node->isFixed()) { throw invalid_argument("Invalid index in MixtureNode constructor"); } } - // Check validity of mixmap argument - + // Check validity of MixMap argument if (mixmap.size() < 2) - throw invalid_argument("Trivial mixmap in MixtureNode constructor"); + throw invalid_argument("Trivial MixMap in MixtureNode constructor"); + + // Check consistency of arguments + if (index.size() != mixmap.begin()->first.size()) { + throw invalid_argument("Dimension mismatch in MixtureNode constructor"); + } - for (map, Node const *>::const_iterator p = mixmap.begin(); - p != mixmap.end(); ++p) + //Check discreteness + vector const &par = parents(); + for (unsigned int i = _Nindex; i < par.size(); ++i) { - if (p->first.size() != _Nindex) { - throw invalid_argument("Invalid index in MixtureNode"); - } - //Check discreteness of outcome - if (!p->second->isDiscreteValued()) { - _discrete = false; + if (!par[i]->isDiscreteValued()) { + _discrete = false; + break; } } - - } - MixtureNode::~MixtureNode() { - removeMixMap(_map); + removeTable(_table); } /* Do not delete commented sections: they are useful for debugging @@ -173,15 +183,16 @@ #include #include */ -void MixtureNode::deterministicSample(unsigned int chain) +void MixtureNode::updateActive(unsigned int chain) { vector i(_Nindex); vector const &par = parents(); for (unsigned int j = 0; j < _Nindex; ++j) { i[j] = static_cast(*par[j]->value(chain)); } - map, Node const *>::const_iterator p = _map.find(i); - if (p == _map.end()) { + + _active_parents[chain] = _table->getNode(i); + if (_active_parents[chain] == 0) { /* std::cout << "Got " << print(Range(i)) << "\nOriginally\n"; for (unsigned int j = 0; j < _Nindex; ++j) { @@ -189,17 +200,21 @@ if (par[j]->value(chain)[0] == JAGS_NA) std::cout << "(which is missing)\n"; } - std::cout << "Expected one of \n"; - for (p = _map.begin(); p != _map.end(); ++p) { - std::cout << print(Range(p->first)) << "\n"; - } */ throw NodeError(this, "Invalid index in MixtureNode"); } - else { - setValue(p->second->value(chain), length(), chain); - } - } +} + +void MixtureNode::deterministicSample(unsigned int chain) +{ + updateActive(chain); + setValue(_active_parents[chain]->value(chain), length(), chain); +} + +Node const *MixtureNode::activeParent(unsigned int chain) const +{ + return _active_parents[chain]; +} unsigned int MixtureNode::index_size() const { @@ -262,8 +277,9 @@ switch(fc) { case DNODE_LINEAR: case DNODE_SCALE_MIX: case DNODE_POWER: break; - case DNODE_SCALE: - //Only a scale function if all possible parents are scale functions + case DNODE_SCALE: case DNODE_ADDITIVE: + //Only a scale or additive function if all possible parents are scale + //or additive functions, respectively. for (unsigned int i = _Nindex; i < par.size(); ++i) { if (ancestors.count(par[i])==0) return false; @@ -279,6 +295,7 @@ return true; } + /* DeterministicNode *MixtureNode::clone(vector const &parents) const { vector index(_Nindex); @@ -288,9 +305,11 @@ ++p; } - map, Node const *> mixmap; - map, Node const *>::const_iterator q = _map.begin(); - while (p != parents.end() && q != _map.end()) { + // Find the MixMap corresponding to this node, and copy it + MixMap mixmap = findTable(_table)->first; + // Replace entries in the copy + MixMap::const_iterator q = mixmap.begin(); + while (p != parents.end() && q != mixmap.end()) { mixmap[q->first] = *p; ++q; ++p; @@ -298,8 +317,16 @@ return new MixtureNode(index, mixmap); } - + */ + bool MixtureNode::isDiscreteValued() const { return _discrete; } + + MixTab const *MixtureNode::mixTab() const + { + return _table; + } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/graph/Node.cc jags-4.0.0/src/lib/graph/Node.cc --- jags-3.4.0/src/lib/graph/Node.cc 2013-01-22 17:55:46.000000000 +0000 +++ jags-4.0.0/src/lib/graph/Node.cc 2015-06-13 12:58:50.000000000 +0000 @@ -7,12 +7,14 @@ #include #include -using std::set; using std::string; using std::vector; using std::logic_error; using std::copy; using std::find; +using std::list; + +namespace jags { class DeterminsticNode; class StochasticNode; @@ -20,7 +22,6 @@ Node::Node(vector const &dim, unsigned int nchain) : _parents(0), _stoch_children(0), _dtrm_children(0), _dim(getUnique(dim)), _length(product(dim)), _nchain(nchain), _data(0) - { if (nchain==0) throw logic_error("Node must have at least one chain"); @@ -31,19 +32,18 @@ _data[i] = JAGS_NA; } - _dtrm_children = new set; - _stoch_children = new set; + _dtrm_children = new list; + _stoch_children = new list; } -Node::Node(vector const &dim, +Node::Node(vector const &dim, unsigned int nchain, vector const &parents) : _parents(parents), _stoch_children(0), _dtrm_children(0), _dim(getUnique(dim)), _length(product(dim)), - _nchain(countChains(parents)), _data(0) + _nchain(nchain), _data(0) { - if (nchain() == 0) { - throw logic_error("Cannot calculate number of chains in Node constructor"); - } + if (nchain==0) + throw logic_error("Node must have at least one chain"); unsigned int N = _length * _nchain; _data = new double[N]; @@ -51,8 +51,8 @@ _data[i] = JAGS_NA; } - _stoch_children = new set; - _dtrm_children = new set; + _stoch_children = new list; + _dtrm_children = new list; } Node::~Node() @@ -67,12 +67,12 @@ return _parents; } -set const *Node::stochasticChildren() +list const *Node::stochasticChildren() { return _stoch_children; } -set const *Node::deterministicChildren() +list const *Node::deterministicChildren() { return _dtrm_children; } @@ -145,18 +145,6 @@ } } -/* -bool Node::isDiscreteValued() const -{ - return _isdiscrete; -} - -void Node::setDiscreteValued() -{ - _isdiscrete = true; -} -*/ - double const *Node::value(unsigned int chain) const { return _data + chain * _length; @@ -174,23 +162,46 @@ void Node::addChild(DeterministicNode *node) const { - _dtrm_children->insert(node); + _dtrm_children->push_back(node); } void Node::addChild(StochasticNode *node) const { - _stoch_children->insert(node); + _stoch_children->push_back(node); } void Node::removeChild(DeterministicNode *node) const { - _dtrm_children->erase(node); + /* + Removes the given node from the list of deterministic children. + + When Model::~Model is called, all nodes are deleted in reverse + order of construction. In this case, the element of _dtrm_node + to remove is the last one. For efficiency, we therefore search + for the element of _dtrm_node to remove starting at the + end. (NB Searching from the beginning results in quadratic + complexity in the size of _dtrm_node, which can cause real + efficiency problems when deleting a model) + */ + + list::reverse_iterator p = + find(_dtrm_children->rbegin(), _dtrm_children->rend(), node); + if (p != _dtrm_children->rend()) { + //The erase function only accepts iterators. Some shennanigans + //are required to convert the reverse iterator correctly. + _dtrm_children->erase((++p).base()); + } } void Node::removeChild(StochasticNode *node) const { - _stoch_children->erase(node); -} + /* See comments in removeChild for DeterministicNodes */ + list::reverse_iterator p = + find(_stoch_children->rbegin(), _stoch_children->rend(), node); + if (p != _stoch_children->rend()) { + _stoch_children->erase((++p).base()); + } +} - +} //namespace jags diff -Nru jags-3.4.0/src/lib/graph/NodeError.cc jags-4.0.0/src/lib/graph/NodeError.cc --- jags-3.4.0/src/lib/graph/NodeError.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/graph/NodeError.cc 2015-09-12 10:12:19.000000000 +0000 @@ -1,9 +1,22 @@ #include #include +#include using std::string; +using std::ostream; +using std::endl; -NodeError::NodeError(Node const *enode, string const &emsg) - : runtime_error(emsg), node(enode) -{ -} +namespace jags { + + NodeError::NodeError(Node const *node, string const &msg) + : runtime_error(msg), _node(node) + { + } + + void NodeError::printMessage(ostream &out, SymTab const &symtab) const + { + out << "Error in node " << symtab.getName(_node) << "\n" + << what() << endl; + } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/graph/ParentError.cc jags-4.0.0/src/lib/graph/ParentError.cc --- jags-3.4.0/src/lib/graph/ParentError.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/graph/ParentError.cc 2015-09-12 10:12:08.000000000 +0000 @@ -0,0 +1,101 @@ +#include +#include + +#include +#include +#include +#include +#include + +using std::vector; +using std::string; +using std::ostream; +using std::endl; + + +/* Print a vector as a sequence of space-separated values */ +static void printVector(ostream &out, double const *values, unsigned int length) +{ + for (unsigned int i = 0; i < length; ++i) { + out << " " << values[i]; + } + out << "\n"; +} + +/* Print a matrix by row, bearing in mind that the values are stored + in column-major order */ +static void printMatrix(ostream &out, double const *values, + unsigned int nrow, unsigned int ncol) +{ + out << "\n"; + for (unsigned int r = 0; r < nrow; ++r) { + for (unsigned int c = 0; c < ncol; ++c) { + out << " " << values[c * nrow + r]; + } + out << "\n"; + } +} + +/* Print a multi-dimensional array as a sequence of matrices, + each representing a 2-D slice through the array +*/ +static void printArray(ostream &out, double const *value, + vector const &dim) +{ + if (dim.size() <= 2) return; + + jags::SimpleRange range(dim); + jags::RangeIterator r(range); + while(!r.atEnd()) { + //Header for each slice + out << " , "; + for (unsigned int i = 2; i < dim.size(); ++i) { + out << ", " << r[i]; + } + //Print this slice + printMatrix(out, value + range.leftOffset(r), dim[0], dim[1]); + //Go to the next slice + do { + r.nextLeft(); + } + while(r[0] != 1 || r[1] != 1); + } +} + +namespace jags { + + ParentError::ParentError(Node const *node, unsigned int chain) + : runtime_error("Invalid parent values"), _node(node), _chain(chain) + { + } + + void ParentError::printMessage(ostream &out, SymTab const &symtab) const + { + out << "Error in node " << symtab.getName(_node) << "\n" + << "Invalid parent values" << "\n"; + + for (vector::const_iterator p = _node->parents().begin(); + p != _node->parents().end(); ++p) + { + out << symtab.getName(*p) << " = "; + double const *v = (*p)->value(_chain); + vector dim = drop((*p)->dim()); + switch(dim.size()) { + case 0: + out << endl; + break; + case 1: + printVector(out, v, (*p)->length()); + break; + case 2: + printMatrix(out, v, dim[0], dim[1]); + break; + default: + printArray(out, v, dim); + break; + } + } + out << endl; + } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/graph/ScalarLogicalNode.cc jags-4.0.0/src/lib/graph/ScalarLogicalNode.cc --- jags-3.4.0/src/lib/graph/ScalarLogicalNode.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/graph/ScalarLogicalNode.cc 2015-04-19 13:55:15.000000000 +0000 @@ -1,6 +1,6 @@ #include #include -#include +#include #include #include #include @@ -16,22 +16,32 @@ using std::set; using std::logic_error; -ScalarLogicalNode::ScalarLogicalNode(ScalarFunction const *function, +namespace jags { + +ScalarLogicalNode::ScalarLogicalNode(ScalarFunction const *function, + unsigned int nchain, vector const ¶meters) - : LogicalNode(vector(1,1), parameters, function), + : LogicalNode(vector(1,1), nchain, parameters, function), _func(function) { if (!function) { throw logic_error("NULL function in ScalarLogicalNode constructor"); } for (unsigned int j = 0; j < parameters.size(); ++j) { - if (!isScalar(parameters[j]->dim())) { - throw FuncError(function, "Invalid parameter dims"); + if (isFlat(parameters[j]->dim())) { + string msg("Invalid zero-length parameter to function "); + msg.append(function->name()); + throw NodeError(parameters[j], msg); + } + else if (!isScalar(parameters[j]->dim())) { + string msg("Invalid non-scalar parameter to function "); + msg.append(function->name()); + throw NodeError(parameters[j], msg); } } - if (isObserved()) { - for (unsigned int ch = 0; ch < _nchain; ++ch) { + if (isFixed()) { + for (unsigned int ch = 0; ch < nchain; ++ch) { deterministicSample(ch); } } @@ -47,10 +57,12 @@ return _func->checkParameterValue(_parameters[chain]); } + /* DeterministicNode * ScalarLogicalNode::clone(vector const &parents) const { return new ScalarLogicalNode(_func, parents); } - - + */ + +} //namespace jags diff -Nru jags-3.4.0/src/lib/graph/ScalarStochasticNode.cc jags-4.0.0/src/lib/graph/ScalarStochasticNode.cc --- jags-3.4.0/src/lib/graph/ScalarStochasticNode.cc 2012-02-20 08:52:19.000000000 +0000 +++ jags-4.0.0/src/lib/graph/ScalarStochasticNode.cc 2015-04-26 21:47:49.000000000 +0000 @@ -1,6 +1,6 @@ #include #include -#include +#include #include #include @@ -10,15 +10,27 @@ using std::vector; using std::string; -ScalarStochasticNode::ScalarStochasticNode(ScalarDist const *dist, +namespace jags { + +ScalarStochasticNode::ScalarStochasticNode(ScalarDist const *dist, + unsigned int nchain, vector const ¶ms, Node const *lower, Node const *upper) - : StochasticNode(vector(1,1), dist, params, lower, upper), + : StochasticNode(vector(1,1), nchain, dist, params, lower, upper), _dist(dist) { - for (unsigned int i = 0; i < params.size(); ++i) { - if (params[i]->length() != 1) { - throw DistError(dist, "Invalid non-scalar parameter"); + for(vector::const_iterator p = params.begin(); + p != params.end(); ++p) + { + if ((*p)->length()==0) { + string msg("Invalid zero-length parameter in distribution "); + msg.append(dist->name()); + throw NodeError(*p, msg); + } + else if ((*p)->length() > 1) { + string msg("Invalid vector parameter in distribution "); + msg.append(dist->name()); + throw NodeError(*p, msg); } } } @@ -70,13 +82,15 @@ return node->lowerBound() || node->upperBound(); } + /* StochasticNode * ScalarStochasticNode::clone(vector const ¶meters, Node const *lower, Node const *upper) const { return new ScalarStochasticNode(_dist, parameters, lower, upper); } - + */ + unsigned int ScalarStochasticNode::df() const { return _dist->df(); @@ -88,3 +102,34 @@ *lower = _dist->l(_parameters[chain]); *upper = _dist->u(_parameters[chain]); } + + double ScalarStochasticNode::KL(unsigned int ch1, unsigned int ch2, + RNG *rng, unsigned int nrep) const + { + if (lowerBound() || upperBound()) { + Node const *ll = lowerBound(); + Node const *uu = upperBound(); + if (ll && !ll->isFixed()) { + return JAGS_POSINF; + } + if (uu && !uu->isFixed()) { + return JAGS_POSINF; + } + return _dist->KL(_parameters[ch1], _parameters[ch2], + lowerLimit(ch1), upperLimit(ch1), + rng, nrep); + } + else { + double kl = _dist->KL(_parameters[ch1], _parameters[ch2]); + if (kl == JAGS_NA) { + return _dist->KL(_parameters[ch1], _parameters[ch2], + 0, 0, rng, nrep); + } + else { + return kl; + } + } + } + + +} //namespace jags diff -Nru jags-3.4.0/src/lib/graph/StochasticNode.cc jags-4.0.0/src/lib/graph/StochasticNode.cc --- jags-3.4.0/src/lib/graph/StochasticNode.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/graph/StochasticNode.cc 2015-06-17 21:20:42.000000000 +0000 @@ -12,11 +12,15 @@ #include #include #include +#include using std::vector; using std::string; using std::runtime_error; using std::logic_error; +using std::set; + +namespace jags { static vector mkParents(vector const ¶meters, Node const *lower, Node const *upper) @@ -32,15 +36,32 @@ return parents; } + static bool mkDiscrete(Distribution const *dist, + vector const ¶meters) + { + //Determine whether node is discrete-valued + vector mask(parameters.size()); + for (unsigned int i = 0; i < parameters.size(); ++i) { + mask[i] = parameters[i]->isDiscreteValued(); + } + if (!dist->checkParameterDiscrete(mask)) { + throw DistError(dist, + "Failed check for discrete-valued parameters"); + } + return(dist->isDiscreteValued(mask)); + } + StochasticNode::StochasticNode(vector const &dim, + unsigned int nchain, Distribution const *dist, vector const ¶meters, - Node const *lower=0, Node const *upper=0) - : Node(dim, mkParents(parameters, lower, upper)), - _dist(dist), _lower(lower), _upper(upper), _observed(false), - _discrete(false), _parameters(nchain()) + Node const *lower, Node const *upper) + : Node(dim, nchain, mkParents(parameters, lower, upper)), + _dist(dist), _lower(lower), _upper(upper), + _observed(false), + _discrete(mkDiscrete(dist, parameters)), _parameters(nchain) { - if (!_dist->checkNPar(parameters.size())) { + if (!checkNPar(dist, parameters.size())) { throw DistError(_dist, "Incorrect number of parameters"); } @@ -54,35 +75,28 @@ throw DistError(_dist, "Distribution cannot be bounded"); } - //check discreteness of parents - vector mask(parameters.size()); - for (unsigned int i = 0; i < parameters.size(); ++i) { - mask[i] = parameters[i]->isDiscreteValued(); - } - if (!_dist->checkParameterDiscrete(mask)) { - throw DistError(_dist, "Failed check for discrete-valued parameters"); - } - _discrete = _dist->isDiscreteValued(mask); - //Set up parameter vectors - for (unsigned int n = 0; n < nchain(); ++n) { + for (unsigned int n = 0; n < nchain; ++n) { _parameters[n].reserve(parameters.size()); for (unsigned int i = 0; i < parameters.size(); ++i) { _parameters[n].push_back(parameters[i]->value(n)); } } + //Insert the current node as a child in all its parents + //taking care to avoid repeats + set pset; for (unsigned int i = 0; i < parents().size(); ++i) { - parents()[i]->addChild(this); + Node const *p = parents()[i]; + if (pset.insert(p).second) { + p->addChild(this); + } } } StochasticNode::~StochasticNode() { - for (unsigned int i = 0; i < parents().size(); ++i) { - parents()[i]->removeChild(this); - } } Distribution const *StochasticNode::distribution() const @@ -90,32 +104,27 @@ return _dist; } -bool StochasticNode::isRandomVariable() const -{ - return true; -} - bool StochasticNode::isDiscreteValued() const { return _discrete; } -bool StochasticNode::isObserved() const +bool StochasticNode::isFixed() const { return _observed; } -void StochasticNode::setObserved() +RVStatus StochasticNode::randomVariableStatus() const { - _observed = true; -} + return _observed ? RV_TRUE_OBSERVED : RV_TRUE_UNOBSERVED; +} string StochasticNode::deparse(vector const &parnames) const { unsigned int npar = parnames.size(); if (_upper) --npar; if (_lower) --npar; - if (!_dist->checkNPar(npar)) { + if (!checkNPar(_dist, npar)) { //We might be deparsing after throwing a NodeError, so we //don't want to throw another exception. return _dist->name() + "(deparse error)"; @@ -156,7 +165,7 @@ return _upper; } - +/* StochasticNode * StochasticNode::clone(vector const &parents) const { @@ -174,7 +183,8 @@ return clone(param, lower, upper); } - +*/ + double const *StochasticNode::lowerLimit(unsigned int chain) const { return _lower ? _lower->value(chain) : 0; @@ -188,9 +198,9 @@ bool isSupportFixed(StochasticNode const *node) { - if (node->lowerBound() && !node->lowerBound()->isObserved()) + if (node->lowerBound() && !node->lowerBound()->isFixed()) return false; - if (node->upperBound() && !node->upperBound()->isObserved()) + if (node->upperBound() && !node->upperBound()->isFixed()) return false; vector parents = node->parents(); @@ -200,17 +210,11 @@ parents.pop_back(); vector fixmask(parents.size()); for (unsigned int i = 0; i < parents.size(); ++i) { - fixmask[i] = parents[i]->isObserved(); + fixmask[i] = parents[i]->isFixed(); } return node->distribution()->isSupportFixed(fixmask); } -vector const &StochasticNode::parameters(unsigned int chain) const -{ - //FIXME: only required in DIC module - return _parameters[chain]; -} - void StochasticNode::support(double *lower, double *upper, unsigned int length, unsigned int chain) const { @@ -246,3 +250,20 @@ { return node->lowerBound() || node->upperBound(); } + + void StochasticNode::setData(double const *value, unsigned int length) + { + for (unsigned int n = 0; n < _nchain; ++n) { + setValue(value, length, n); + } + _observed = true; + } + + void StochasticNode::unlinkParents() + { + for (unsigned int i = 0; i < parents().size(); ++i) { + parents()[i]->removeChild(this); + } + } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/graph/VectorLogicalNode.cc jags-4.0.0/src/lib/graph/VectorLogicalNode.cc --- jags-3.4.0/src/lib/graph/VectorLogicalNode.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/graph/VectorLogicalNode.cc 2015-04-19 13:48:19.000000000 +0000 @@ -16,29 +16,43 @@ using std::set; using std::logic_error; +namespace jags { + static unsigned int valueLength(VectorFunction const *func, vector const &parents) { /* Calculates length of vector logical node as a function of its - parameters. + parents. */ - vector parameter_lengths(parents.size()); - for (unsigned int j = 0; j < parents.size(); ++j) { - parameter_lengths[j] = parents[j]->length(); + unsigned long N = parents.size(); + vector lengths(N); + vector fixed(N), discrete(N); + vector values(N); + for (unsigned int j = 0; j < N; ++j) { + lengths[j] = parents[j]->length(); + fixed[j] = parents[j]->isFixed(); + values[j] = parents[j]->value(0); + discrete[j] = parents[j]->isDiscreteValued(); } if (!func) { throw logic_error("NULL function in VectorLogicalNode constructor"); } - if (!func->checkNPar(parents.size())) { + if (!checkNPar(func, N)) { throw FuncError(func, "Incorrect number of parameters"); } - if (!func->checkParameterLength(parameter_lengths)) { + if (!func->checkParameterLength(lengths)) { throw FuncError(func, "Non-conforming parameters"); } - return func->length(parameter_lengths); + if (!func->checkParameterFixed(fixed)) { + throw FuncError(func, "Expected parameters with fixed values"); + } + if (!func->checkParameterDiscrete(discrete)) { + throw FuncError(func, "Failed check for discrete-valued parameters"); + } + return func->length(lengths, values); } static vector const & @@ -51,13 +65,14 @@ return getUnique(lengths); } -VectorLogicalNode::VectorLogicalNode(VectorFunction const *function, +VectorLogicalNode::VectorLogicalNode(VectorFunction const *function, + unsigned int nchain, vector const ¶meters) - : LogicalNode(vector(1,valueLength(function, parameters)), - parameters, function), + : LogicalNode(vector(1,valueLength(function, parameters)), + nchain, parameters, function), _func(function), _lengths(parameterLengths(parameters)) { - if (isObserved()) { + if (isFixed()) { for (unsigned int ch = 0; ch < _nchain; ++ch) { deterministicSample(ch); } @@ -74,8 +89,12 @@ return _func->checkParameterValue(_parameters[chain], _lengths); } + /* DeterministicNode * VectorLogicalNode::clone(vector const &parents) const { return new VectorLogicalNode(_func, parents); } + */ + +} //namespace jags diff -Nru jags-3.4.0/src/lib/graph/VectorStochasticNode.cc jags-4.0.0/src/lib/graph/VectorStochasticNode.cc --- jags-3.4.0/src/lib/graph/VectorStochasticNode.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/graph/VectorStochasticNode.cc 2015-04-26 21:57:36.000000000 +0000 @@ -16,6 +16,8 @@ using std::min; using std::copy; +namespace jags { + static unsigned int mkLength(VectorDist const *dist, vector const &parents) { @@ -24,7 +26,7 @@ parents */ - if (!dist->checkNPar(parents.size())) { + if (!checkNPar(dist, parents.size())) { throw DistError(dist, "Incorrect number of parameters"); } vector parameter_lengths(parents.size()); @@ -32,7 +34,7 @@ parameter_lengths[j] = parents[j]->length(); } if (!dist->checkParameterLength(parameter_lengths)) { - throw DistError(dist, "Non-conforming parameters"); + throw DistError(dist, "Invalid parameter lengths"); } return dist->length(parameter_lengths); } @@ -46,11 +48,12 @@ return getUnique(lengths); } -VectorStochasticNode::VectorStochasticNode(VectorDist const *dist, +VectorStochasticNode::VectorStochasticNode(VectorDist const *dist, + unsigned int nchain, vector const ¶ms, Node const *lower, Node const *upper) : StochasticNode(vector(1,mkLength(dist, params)), - dist, params, lower, upper), + nchain, dist, params, lower, upper), _dist(dist), _lengths(mkParameterLengths(params)) { if (!dist->checkParameterLength(_lengths)) { @@ -132,13 +135,15 @@ return _dist->checkParameterValue(_parameters[chain], _lengths); } + /* StochasticNode * VectorStochasticNode::clone(vector const ¶meters, Node const *lower, Node const *upper) const { return new VectorStochasticNode(_dist, parameters, lower, upper); } - + */ + unsigned int VectorStochasticNode::df() const { return _dist->df(_lengths); @@ -149,3 +154,34 @@ { _dist->support(lower, upper, length, _parameters[chain], _lengths); } + + + double VectorStochasticNode::KL(unsigned int ch1, unsigned int ch2, + RNG *rng, unsigned int nrep) const + { + if (lowerBound() || upperBound()) { + Node const *ll = lowerBound(); + Node const *uu = upperBound(); + if (ll && !ll->isFixed()) { + return JAGS_POSINF; + } + if (uu && !uu->isFixed()) { + return JAGS_POSINF; + } + return _dist->KL(_parameters[ch1], _parameters[ch2], _lengths, + lowerLimit(0), upperLimit(0), rng, nrep); + } + else { + double kl = _dist->KL(_parameters[ch1], _parameters[ch2], + _lengths); + if (kl == JAGS_NA) { + return _dist->KL(_parameters[ch1], _parameters[ch2], _lengths, + 0, 0, rng, nrep); + } + else { + return kl; + } + } + } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/graph/VSLogicalNode.cc jags-4.0.0/src/lib/graph/VSLogicalNode.cc --- jags-3.4.0/src/lib/graph/VSLogicalNode.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/graph/VSLogicalNode.cc 2015-04-19 14:21:41.000000000 +0000 @@ -9,6 +9,8 @@ using std::vector; using std::logic_error; +namespace jags { + static vector mkDim(vector const ¶meters) { vector dim(1,1); @@ -36,13 +38,14 @@ return ans; } -VSLogicalNode::VSLogicalNode(ScalarFunction const *function, +VSLogicalNode::VSLogicalNode(ScalarFunction const *function, + unsigned int nchain, vector const ¶meters) - : LogicalNode(mkDim(parameters), parameters, function), + : LogicalNode(mkDim(parameters), nchain, parameters, function), _func(function), _isvector(mkIsVector(parameters)) { - if (isObserved()) { - for (unsigned int ch = 0; ch < _nchain; ++ch) { + if (isFixed()) { + for (unsigned int ch = 0; ch < nchain; ++ch) { deterministicSample(ch); } } @@ -77,10 +80,12 @@ return true; } + /* DeterministicNode * VSLogicalNode::clone(vector const &parents) const { return new VSLogicalNode(_func, parents); } + */ - +} //namespace jags diff -Nru jags-3.4.0/src/lib/Makefile.am jags-4.0.0/src/lib/Makefile.am --- jags-3.4.0/src/lib/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/Makefile.am 2015-09-28 21:36:05.000000000 +0000 @@ -1,8 +1,11 @@ +SUBDIRS = util sarray distribution function sampler graph model \ + compiler rng module + extra_dist = version.cc.in lib_LTLIBRARIES = libjags.la -libjags_la_SOURCES = version.cc Console.cc Module.cc +libjags_la_SOURCES = version.cc Console.cc libjags_la_CPPFLAGS = -I$(top_srcdir)/src/include @@ -22,5 +25,14 @@ libjags_la_LDFLAGS += -no-undefined endif -SUBDIRS = util sarray distribution function sampler graph model \ - compiler rng module +### Test library + +check_LTLIBRARIES = libtest.la +libtest_la_SOURCES = testlib.cc +libtest_la_CPPFLAGS = -I$(top_srcdir)/src/include +libtest_la_LIBADD = function/libfuntest.la + +if WINDOWS +libtest_la_LDFLAGS = -no-undefined +endif + diff -Nru jags-3.4.0/src/lib/Makefile.in jags-4.0.0/src/lib/Makefile.in --- jags-3.4.0/src/lib/Makefile.in 2013-08-30 13:23:26.000000000 +0000 +++ jags-4.0.0/src/lib/Makefile.in 2015-09-28 21:41:11.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ host_triplet = @host@ @WINDOWS_TRUE@am__append_1 = -no-undefined subdir = src/lib -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(srcdir)/version.cc.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,6 +99,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = version.cc @@ -101,34 +137,65 @@ sarray/libsarray.la function/libfunc.la sampler/libsampler.la \ distribution/libdist.la graph/libgraph.la \ compiler/libcompiler.la rng/librng.la module/libmodule.la -am_libjags_la_OBJECTS = libjags_la-version.lo libjags_la-Console.lo \ - libjags_la-Module.lo +am_libjags_la_OBJECTS = libjags_la-version.lo libjags_la-Console.lo libjags_la_OBJECTS = $(am_libjags_la_OBJECTS) -libjags_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libjags_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libjags_la_LDFLAGS) $(LDFLAGS) -o $@ +libtest_la_DEPENDENCIES = function/libfuntest.la +am_libtest_la_OBJECTS = libtest_la-testlib.lo +libtest_la_OBJECTS = $(am_libtest_la_OBJECTS) +libtest_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(libtest_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(libjags_la_SOURCES) -DIST_SOURCES = $(libjags_la_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +SOURCES = $(libjags_la_SOURCES) $(libtest_la_SOURCES) +DIST_SOURCES = $(libjags_la_SOURCES) $(libtest_la_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -136,12 +203,34 @@ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/version.cc.in \ + $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ @@ -170,6 +259,7 @@ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -183,6 +273,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -252,10 +345,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -321,9 +410,12 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +SUBDIRS = util sarray distribution function sampler graph model \ + compiler rng module + extra_dist = version.cc.in lib_LTLIBRARIES = libjags.la -libjags_la_SOURCES = version.cc Console.cc Module.cc +libjags_la_SOURCES = version.cc Console.cc libjags_la_CPPFLAGS = -I$(top_srcdir)/src/include libjags_la_LIBADD = model/libmodel.la \ util/libutil.la \ @@ -338,9 +430,13 @@ libjags_la_LDFLAGS = -version-info $(JAGS_MAJOR):$(JAGS_MINOR):0 \ $(am__append_1) -SUBDIRS = util sarray distribution function sampler graph model \ - compiler rng module +### Test library +check_LTLIBRARIES = libtest.la +libtest_la_SOURCES = testlib.cc +libtest_la_CPPFLAGS = -I$(top_srcdir)/src/include +libtest_la_LIBADD = function/libfuntest.la +@WINDOWS_TRUE@libtest_la_LDFLAGS = -no-undefined all: all-recursive .SUFFIXES: @@ -357,7 +453,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/lib/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -377,6 +472,18 @@ $(am__aclocal_m4_deps): version.cc: $(top_builddir)/config.status $(srcdir)/version.cc.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +clean-checkLTLIBRARIES: + -test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES) + @list='$(check_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ @@ -403,14 +510,20 @@ clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libjags.la: $(libjags_la_OBJECTS) $(libjags_la_DEPENDENCIES) $(EXTRA_libjags_la_DEPENDENCIES) - $(libjags_la_LINK) -rpath $(libdir) $(libjags_la_OBJECTS) $(libjags_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(libjags_la_LINK) -rpath $(libdir) $(libjags_la_OBJECTS) $(libjags_la_LIBADD) $(LIBS) + +libtest.la: $(libtest_la_OBJECTS) $(libtest_la_DEPENDENCIES) $(EXTRA_libtest_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libtest_la_LINK) $(libtest_la_OBJECTS) $(libtest_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -419,50 +532,53 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjags_la-Console.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjags_la-Module.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjags_la-version.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtest_la-testlib.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< libjags_la-version.lo: version.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjags_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libjags_la-version.lo -MD -MP -MF $(DEPDIR)/libjags_la-version.Tpo -c -o libjags_la-version.lo `test -f 'version.cc' || echo '$(srcdir)/'`version.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libjags_la-version.Tpo $(DEPDIR)/libjags_la-version.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='version.cc' object='libjags_la-version.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjags_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libjags_la-version.lo -MD -MP -MF $(DEPDIR)/libjags_la-version.Tpo -c -o libjags_la-version.lo `test -f 'version.cc' || echo '$(srcdir)/'`version.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjags_la-version.Tpo $(DEPDIR)/libjags_la-version.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='version.cc' object='libjags_la-version.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjags_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libjags_la-version.lo `test -f 'version.cc' || echo '$(srcdir)/'`version.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjags_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libjags_la-version.lo `test -f 'version.cc' || echo '$(srcdir)/'`version.cc libjags_la-Console.lo: Console.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjags_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libjags_la-Console.lo -MD -MP -MF $(DEPDIR)/libjags_la-Console.Tpo -c -o libjags_la-Console.lo `test -f 'Console.cc' || echo '$(srcdir)/'`Console.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libjags_la-Console.Tpo $(DEPDIR)/libjags_la-Console.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Console.cc' object='libjags_la-Console.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjags_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libjags_la-Console.lo -MD -MP -MF $(DEPDIR)/libjags_la-Console.Tpo -c -o libjags_la-Console.lo `test -f 'Console.cc' || echo '$(srcdir)/'`Console.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjags_la-Console.Tpo $(DEPDIR)/libjags_la-Console.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Console.cc' object='libjags_la-Console.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjags_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libjags_la-Console.lo `test -f 'Console.cc' || echo '$(srcdir)/'`Console.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjags_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libjags_la-Console.lo `test -f 'Console.cc' || echo '$(srcdir)/'`Console.cc -libjags_la-Module.lo: Module.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjags_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libjags_la-Module.lo -MD -MP -MF $(DEPDIR)/libjags_la-Module.Tpo -c -o libjags_la-Module.lo `test -f 'Module.cc' || echo '$(srcdir)/'`Module.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libjags_la-Module.Tpo $(DEPDIR)/libjags_la-Module.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Module.cc' object='libjags_la-Module.lo' libtool=yes @AMDEPBACKSLASH@ +libtest_la-testlib.lo: testlib.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtest_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libtest_la-testlib.lo -MD -MP -MF $(DEPDIR)/libtest_la-testlib.Tpo -c -o libtest_la-testlib.lo `test -f 'testlib.cc' || echo '$(srcdir)/'`testlib.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtest_la-testlib.Tpo $(DEPDIR)/libtest_la-testlib.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='testlib.cc' object='libtest_la-testlib.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjags_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libjags_la-Module.lo `test -f 'Module.cc' || echo '$(srcdir)/'`Module.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtest_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libtest_la-testlib.lo `test -f 'testlib.cc' || echo '$(srcdir)/'`testlib.cc mostlyclean-libtool: -rm -f *.lo @@ -471,22 +587,25 @@ -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -501,57 +620,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -567,12 +641,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -584,15 +653,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -601,6 +666,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -661,6 +741,7 @@ fi; \ done check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_LTLIBRARIES) check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive @@ -700,8 +781,8 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ - mostlyclean-am +clean-am: clean-checkLTLIBRARIES clean-generic clean-libLTLIBRARIES \ + clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) @@ -769,13 +850,12 @@ uninstall-am: uninstall-libLTLIBRARIES -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) check-am install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic \ - clean-libLTLIBRARIES clean-libtool ctags ctags-recursive \ - distclean distclean-compile distclean-generic \ +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-checkLTLIBRARIES clean-generic \ + clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -785,9 +865,11 @@ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-libLTLIBRARIES +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru jags-3.4.0/src/lib/model/BUGSModel.cc jags-4.0.0/src/lib/model/BUGSModel.cc --- jags-3.4.0/src/lib/model/BUGSModel.cc 2011-07-20 10:08:44.000000000 +0000 +++ jags-4.0.0/src/lib/model/BUGSModel.cc 2015-04-12 19:47:47.000000000 +0000 @@ -27,6 +27,8 @@ using std::runtime_error; using std::map; +namespace jags { + /* Nodes accessible to the user in a BUGSModel are identified by a variable name and range of indices @@ -54,30 +56,6 @@ return _symtab; } -Node *BUGSModel::getNode(string const &name, Range const &target_range) -{ - NodeArray *array = _symtab.getVariable(name); - if (!array) { - return 0; - } - Range range = target_range; - if (isNULL(range)) { - range = array->range(); - } - else if (array->range().ndim(false) != target_range.ndim(false)) { - return 0; //Dimension mismatch - } - else if (!array->range().contains(target_range)) { - return 0; //Indices out of range - } - unsigned int NNode = graph().size(); - Node *node = array->getSubset(range, *this); - if (graph().size() != NNode) { - addExtraNode(node); // Node was newly allocated - } - return node; -} - void BUGSModel::coda(vector const &node_ids, string const &stem, string &warn) { @@ -253,3 +231,5 @@ sampler_names.push_back(names); } } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/model/CODA.cc jags-4.0.0/src/lib/model/CODA.cc --- jags-3.4.0/src/lib/model/CODA.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/model/CODA.cc 2015-04-12 18:23:09.000000000 +0000 @@ -16,6 +16,8 @@ using std::ofstream; using std::ostream; +namespace jags { + static void writeDouble(double x, ostream &out) { if (x == JAGS_NA) { @@ -35,7 +37,44 @@ } } + static vector missingValues(MonitorControl const &control, + unsigned int nchain) + { + /* + Returns a boolean vector that indicates which variables + have at least one missing value in at least one chain. + Such variables are omitted when writing the index and + output files. + */ + + Monitor const *monitor = control.monitor(); + unsigned int nvar = product(monitor->dim()); + + vector ans(nvar, false); + for (unsigned int ch = 0; ch < nchain; ++ch) { + vector const &y = monitor->value(ch); + for (unsigned int v = 0; v < nvar; ++v) { + if (ans[v]) continue; + if (monitor->poolIterations()) { + if (y[v] == JAGS_NA) { + ans[v] = true; + } + } + else { + for (unsigned int k = 0; k < control.niter(); ++k) { + if (y[k * nvar + v] == JAGS_NA) { + ans[v] = true; + break; + } + } + } + } + } + return ans; + } + static void WriteIndex(MonitorControl const &control, + vector const &missing, ofstream &index, unsigned int &lineno) { /* @@ -49,8 +88,9 @@ unsigned int nvar = product(monitor->dim()); vector const &enames = monitor->elementNames(); - for (unsigned int i = 0; i < nvar; ++i) { - index << enames[i] << " " << lineno + 1 << " " + for (unsigned int v = 0; v < nvar; ++v) { + if (missing[v]) continue; + index << enames[v] << " " << lineno + 1 << " " << lineno + control.niter() << '\n'; lineno += control.niter(); } @@ -58,6 +98,7 @@ //Write output file static void WriteOutput(MonitorControl const &control, int chain, + vector const &missing, ofstream &output) { Monitor const *monitor = control.monitor(); @@ -67,11 +108,12 @@ vector const &y = monitor->value(chain); unsigned int nvar = product(monitor->dim()); - for (unsigned int offset = 0; offset < nvar; ++offset) { + for (unsigned int v = 0; v < nvar; ++v) { + if (missing[v]) continue; unsigned int iter = control.start(); for (unsigned int k = 0; k < control.niter(); ++k) { output << iter << " "; - writeDouble(y[k * nvar + offset], output); + writeDouble(y[k * nvar + v], output); output << '\n'; iter += control.thin(); } @@ -79,6 +121,7 @@ } static void WriteTable(MonitorControl const &control, int chain, + vector const &missing, ofstream &index) { Monitor const *monitor = control.monitor(); @@ -90,8 +133,11 @@ vector const &enames = monitor->elementNames(); unsigned int nvar = product(monitor->dim()); - for (unsigned int i = 0; i < nvar; ++i) { - index << enames[i] << " " << y[i] << '\n'; + for (unsigned int v = 0; v < nvar; ++v) { + if (missing[v]) continue; + index << enames[v] << " "; + writeDouble(y[v], index); + index << '\n'; } } @@ -158,9 +204,10 @@ for (p = mvec.begin(); p != mvec.end(); ++p) { Monitor const *monitor = p->monitor(); if (!monitor->poolChains() && !monitor->poolIterations()) { - WriteIndex(*p, index, lineno); + vector missing = missingValues(*p, nchain); + WriteIndex(*p, missing, index, lineno); for (unsigned int ch = 0; ch < nchain; ++ch) { - WriteOutput(*p, ch, *output[ch]); + WriteOutput(*p, ch, missing, *output[ch]); } } } @@ -203,8 +250,9 @@ for (p = mvec.begin(); p != mvec.end(); ++p) { Monitor const *monitor = p->monitor(); if (monitor->poolChains() && !monitor->poolIterations()) { - WriteIndex(*p, index, lineno); - WriteOutput(*p, 0, output); + vector missing = missingValues(*p, 1); + WriteIndex(*p, missing, index, lineno); + WriteOutput(*p, 0, missing, output); } } @@ -248,8 +296,9 @@ for (p = mvec.begin(); p != mvec.end(); ++p) { Monitor const *monitor = p->monitor(); if (!monitor->poolChains() && monitor->poolIterations()) { + vector missing = missingValues(*p, nchain); for (unsigned int ch = 0; ch < nchain; ++ch) { - WriteTable(*p, ch, *output[ch]); + WriteTable(*p, ch, missing, *output[ch]); } } } @@ -280,9 +329,12 @@ for (p = mvec.begin(); p != mvec.end(); ++p) { Monitor const *monitor = p->monitor(); if (monitor->poolChains() && monitor->poolIterations()) { - WriteTable(*p, 0, output); + vector missing = missingValues(*p, 1); + WriteTable(*p, 0, missing, output); } } output.close(); } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/model/CODA.h jags-4.0.0/src/lib/model/CODA.h --- jags-3.4.0/src/lib/model/CODA.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/model/CODA.h 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,8 @@ #include #include +namespace jags { + /** * CODA output for monitors that have a separate value for each chain * This function opens up an index file "index.txt" and one @@ -64,4 +66,6 @@ void TABLE0(std::list const &mvec, std::string const &prefix, std::string &warn); +} //namespace jags + #endif /* CODA_H_ */ diff -Nru jags-3.4.0/src/lib/model/Makefile.am jags-4.0.0/src/lib/model/Makefile.am --- jags-3.4.0/src/lib/model/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/model/Makefile.am 2015-04-11 15:18:54.000000000 +0000 @@ -4,6 +4,6 @@ libmodel_la_SOURCES = SymTab.cc NodeArray.cc Model.cc Monitor.cc \ BUGSModel.cc MonitorFactory.cc MonitorControl.cc MonitorInfo.cc \ -CODA.cc +CODA.cc NodeArraySubset.cc noinst_HEADERS = CODA.h diff -Nru jags-3.4.0/src/lib/model/Makefile.in jags-4.0.0/src/lib/model/Makefile.in --- jags-3.4.0/src/lib/model/Makefile.in 2013-08-30 13:23:27.000000000 +0000 +++ jags-4.0.0/src/lib/model/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/lib/model -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,6 +99,8 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -74,21 +111,47 @@ libmodel_la-NodeArray.lo libmodel_la-Model.lo \ libmodel_la-Monitor.lo libmodel_la-BUGSModel.lo \ libmodel_la-MonitorFactory.lo libmodel_la-MonitorControl.lo \ - libmodel_la-MonitorInfo.lo libmodel_la-CODA.lo + libmodel_la-MonitorInfo.lo libmodel_la-CODA.lo \ + libmodel_la-NodeArraySubset.lo libmodel_la_OBJECTS = $(am_libmodel_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(libmodel_la_SOURCES) DIST_SOURCES = $(libmodel_la_SOURCES) am__can_run_installinfo = \ @@ -97,11 +160,30 @@ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -115,6 +197,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -184,10 +269,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -257,7 +338,7 @@ libmodel_la_CPPFLAGS = -I$(top_srcdir)/src/include libmodel_la_SOURCES = SymTab.cc NodeArray.cc Model.cc Monitor.cc \ BUGSModel.cc MonitorFactory.cc MonitorControl.cc MonitorInfo.cc \ -CODA.cc +CODA.cc NodeArraySubset.cc noinst_HEADERS = CODA.h all: all-am @@ -276,7 +357,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/model/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/lib/model/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -297,14 +377,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libmodel.la: $(libmodel_la_OBJECTS) $(libmodel_la_DEPENDENCIES) $(EXTRA_libmodel_la_DEPENDENCIES) - $(CXXLINK) $(libmodel_la_OBJECTS) $(libmodel_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(CXXLINK) $(libmodel_la_OBJECTS) $(libmodel_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -320,91 +403,102 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmodel_la-MonitorFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmodel_la-MonitorInfo.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmodel_la-NodeArray.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmodel_la-NodeArraySubset.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmodel_la-SymTab.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< libmodel_la-SymTab.lo: SymTab.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodel_la-SymTab.lo -MD -MP -MF $(DEPDIR)/libmodel_la-SymTab.Tpo -c -o libmodel_la-SymTab.lo `test -f 'SymTab.cc' || echo '$(srcdir)/'`SymTab.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libmodel_la-SymTab.Tpo $(DEPDIR)/libmodel_la-SymTab.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab.cc' object='libmodel_la-SymTab.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodel_la-SymTab.lo -MD -MP -MF $(DEPDIR)/libmodel_la-SymTab.Tpo -c -o libmodel_la-SymTab.lo `test -f 'SymTab.cc' || echo '$(srcdir)/'`SymTab.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmodel_la-SymTab.Tpo $(DEPDIR)/libmodel_la-SymTab.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab.cc' object='libmodel_la-SymTab.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodel_la-SymTab.lo `test -f 'SymTab.cc' || echo '$(srcdir)/'`SymTab.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodel_la-SymTab.lo `test -f 'SymTab.cc' || echo '$(srcdir)/'`SymTab.cc libmodel_la-NodeArray.lo: NodeArray.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodel_la-NodeArray.lo -MD -MP -MF $(DEPDIR)/libmodel_la-NodeArray.Tpo -c -o libmodel_la-NodeArray.lo `test -f 'NodeArray.cc' || echo '$(srcdir)/'`NodeArray.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libmodel_la-NodeArray.Tpo $(DEPDIR)/libmodel_la-NodeArray.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='NodeArray.cc' object='libmodel_la-NodeArray.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodel_la-NodeArray.lo -MD -MP -MF $(DEPDIR)/libmodel_la-NodeArray.Tpo -c -o libmodel_la-NodeArray.lo `test -f 'NodeArray.cc' || echo '$(srcdir)/'`NodeArray.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmodel_la-NodeArray.Tpo $(DEPDIR)/libmodel_la-NodeArray.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='NodeArray.cc' object='libmodel_la-NodeArray.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodel_la-NodeArray.lo `test -f 'NodeArray.cc' || echo '$(srcdir)/'`NodeArray.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodel_la-NodeArray.lo `test -f 'NodeArray.cc' || echo '$(srcdir)/'`NodeArray.cc libmodel_la-Model.lo: Model.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodel_la-Model.lo -MD -MP -MF $(DEPDIR)/libmodel_la-Model.Tpo -c -o libmodel_la-Model.lo `test -f 'Model.cc' || echo '$(srcdir)/'`Model.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libmodel_la-Model.Tpo $(DEPDIR)/libmodel_la-Model.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Model.cc' object='libmodel_la-Model.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodel_la-Model.lo -MD -MP -MF $(DEPDIR)/libmodel_la-Model.Tpo -c -o libmodel_la-Model.lo `test -f 'Model.cc' || echo '$(srcdir)/'`Model.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmodel_la-Model.Tpo $(DEPDIR)/libmodel_la-Model.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Model.cc' object='libmodel_la-Model.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodel_la-Model.lo `test -f 'Model.cc' || echo '$(srcdir)/'`Model.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodel_la-Model.lo `test -f 'Model.cc' || echo '$(srcdir)/'`Model.cc libmodel_la-Monitor.lo: Monitor.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodel_la-Monitor.lo -MD -MP -MF $(DEPDIR)/libmodel_la-Monitor.Tpo -c -o libmodel_la-Monitor.lo `test -f 'Monitor.cc' || echo '$(srcdir)/'`Monitor.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libmodel_la-Monitor.Tpo $(DEPDIR)/libmodel_la-Monitor.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Monitor.cc' object='libmodel_la-Monitor.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodel_la-Monitor.lo -MD -MP -MF $(DEPDIR)/libmodel_la-Monitor.Tpo -c -o libmodel_la-Monitor.lo `test -f 'Monitor.cc' || echo '$(srcdir)/'`Monitor.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmodel_la-Monitor.Tpo $(DEPDIR)/libmodel_la-Monitor.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Monitor.cc' object='libmodel_la-Monitor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodel_la-Monitor.lo `test -f 'Monitor.cc' || echo '$(srcdir)/'`Monitor.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodel_la-Monitor.lo `test -f 'Monitor.cc' || echo '$(srcdir)/'`Monitor.cc libmodel_la-BUGSModel.lo: BUGSModel.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodel_la-BUGSModel.lo -MD -MP -MF $(DEPDIR)/libmodel_la-BUGSModel.Tpo -c -o libmodel_la-BUGSModel.lo `test -f 'BUGSModel.cc' || echo '$(srcdir)/'`BUGSModel.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libmodel_la-BUGSModel.Tpo $(DEPDIR)/libmodel_la-BUGSModel.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='BUGSModel.cc' object='libmodel_la-BUGSModel.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodel_la-BUGSModel.lo -MD -MP -MF $(DEPDIR)/libmodel_la-BUGSModel.Tpo -c -o libmodel_la-BUGSModel.lo `test -f 'BUGSModel.cc' || echo '$(srcdir)/'`BUGSModel.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmodel_la-BUGSModel.Tpo $(DEPDIR)/libmodel_la-BUGSModel.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='BUGSModel.cc' object='libmodel_la-BUGSModel.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodel_la-BUGSModel.lo `test -f 'BUGSModel.cc' || echo '$(srcdir)/'`BUGSModel.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodel_la-BUGSModel.lo `test -f 'BUGSModel.cc' || echo '$(srcdir)/'`BUGSModel.cc libmodel_la-MonitorFactory.lo: MonitorFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodel_la-MonitorFactory.lo -MD -MP -MF $(DEPDIR)/libmodel_la-MonitorFactory.Tpo -c -o libmodel_la-MonitorFactory.lo `test -f 'MonitorFactory.cc' || echo '$(srcdir)/'`MonitorFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libmodel_la-MonitorFactory.Tpo $(DEPDIR)/libmodel_la-MonitorFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MonitorFactory.cc' object='libmodel_la-MonitorFactory.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodel_la-MonitorFactory.lo -MD -MP -MF $(DEPDIR)/libmodel_la-MonitorFactory.Tpo -c -o libmodel_la-MonitorFactory.lo `test -f 'MonitorFactory.cc' || echo '$(srcdir)/'`MonitorFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmodel_la-MonitorFactory.Tpo $(DEPDIR)/libmodel_la-MonitorFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MonitorFactory.cc' object='libmodel_la-MonitorFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodel_la-MonitorFactory.lo `test -f 'MonitorFactory.cc' || echo '$(srcdir)/'`MonitorFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodel_la-MonitorFactory.lo `test -f 'MonitorFactory.cc' || echo '$(srcdir)/'`MonitorFactory.cc libmodel_la-MonitorControl.lo: MonitorControl.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodel_la-MonitorControl.lo -MD -MP -MF $(DEPDIR)/libmodel_la-MonitorControl.Tpo -c -o libmodel_la-MonitorControl.lo `test -f 'MonitorControl.cc' || echo '$(srcdir)/'`MonitorControl.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libmodel_la-MonitorControl.Tpo $(DEPDIR)/libmodel_la-MonitorControl.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MonitorControl.cc' object='libmodel_la-MonitorControl.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodel_la-MonitorControl.lo -MD -MP -MF $(DEPDIR)/libmodel_la-MonitorControl.Tpo -c -o libmodel_la-MonitorControl.lo `test -f 'MonitorControl.cc' || echo '$(srcdir)/'`MonitorControl.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmodel_la-MonitorControl.Tpo $(DEPDIR)/libmodel_la-MonitorControl.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MonitorControl.cc' object='libmodel_la-MonitorControl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodel_la-MonitorControl.lo `test -f 'MonitorControl.cc' || echo '$(srcdir)/'`MonitorControl.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodel_la-MonitorControl.lo `test -f 'MonitorControl.cc' || echo '$(srcdir)/'`MonitorControl.cc libmodel_la-MonitorInfo.lo: MonitorInfo.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodel_la-MonitorInfo.lo -MD -MP -MF $(DEPDIR)/libmodel_la-MonitorInfo.Tpo -c -o libmodel_la-MonitorInfo.lo `test -f 'MonitorInfo.cc' || echo '$(srcdir)/'`MonitorInfo.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libmodel_la-MonitorInfo.Tpo $(DEPDIR)/libmodel_la-MonitorInfo.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MonitorInfo.cc' object='libmodel_la-MonitorInfo.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodel_la-MonitorInfo.lo -MD -MP -MF $(DEPDIR)/libmodel_la-MonitorInfo.Tpo -c -o libmodel_la-MonitorInfo.lo `test -f 'MonitorInfo.cc' || echo '$(srcdir)/'`MonitorInfo.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmodel_la-MonitorInfo.Tpo $(DEPDIR)/libmodel_la-MonitorInfo.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MonitorInfo.cc' object='libmodel_la-MonitorInfo.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodel_la-MonitorInfo.lo `test -f 'MonitorInfo.cc' || echo '$(srcdir)/'`MonitorInfo.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodel_la-MonitorInfo.lo `test -f 'MonitorInfo.cc' || echo '$(srcdir)/'`MonitorInfo.cc libmodel_la-CODA.lo: CODA.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodel_la-CODA.lo -MD -MP -MF $(DEPDIR)/libmodel_la-CODA.Tpo -c -o libmodel_la-CODA.lo `test -f 'CODA.cc' || echo '$(srcdir)/'`CODA.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libmodel_la-CODA.Tpo $(DEPDIR)/libmodel_la-CODA.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CODA.cc' object='libmodel_la-CODA.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodel_la-CODA.lo -MD -MP -MF $(DEPDIR)/libmodel_la-CODA.Tpo -c -o libmodel_la-CODA.lo `test -f 'CODA.cc' || echo '$(srcdir)/'`CODA.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmodel_la-CODA.Tpo $(DEPDIR)/libmodel_la-CODA.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CODA.cc' object='libmodel_la-CODA.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodel_la-CODA.lo `test -f 'CODA.cc' || echo '$(srcdir)/'`CODA.cc + +libmodel_la-NodeArraySubset.lo: NodeArraySubset.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodel_la-NodeArraySubset.lo -MD -MP -MF $(DEPDIR)/libmodel_la-NodeArraySubset.Tpo -c -o libmodel_la-NodeArraySubset.lo `test -f 'NodeArraySubset.cc' || echo '$(srcdir)/'`NodeArraySubset.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmodel_la-NodeArraySubset.Tpo $(DEPDIR)/libmodel_la-NodeArraySubset.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='NodeArraySubset.cc' object='libmodel_la-NodeArraySubset.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodel_la-CODA.lo `test -f 'CODA.cc' || echo '$(srcdir)/'`CODA.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodel_la-NodeArraySubset.lo `test -f 'NodeArraySubset.cc' || echo '$(srcdir)/'`NodeArraySubset.cc mostlyclean-libtool: -rm -f *.lo @@ -412,26 +506,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -443,15 +526,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -460,6 +539,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -601,18 +695,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/lib/model/Model.cc jags-4.0.0/src/lib/model/Model.cc --- jags-3.4.0/src/lib/model/Model.cc 2013-05-30 12:58:54.000000000 +0000 +++ jags-4.0.0/src/lib/model/Model.cc 2015-07-15 20:43:58.000000000 +0000 @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -40,6 +41,48 @@ using std::min; using std::max; using std::reverse; +using std::find; + +namespace jags { + +static bool checkClosure(vector const &nodes) +{ + // Determine whether a model is closed, i.e. that the nodes in + // the model do not have any parents or children outside the model. + + set graph; + for (unsigned int i = 0; i < nodes.size(); ++i) { + graph.insert(nodes[i]); + } + + for (vector::const_iterator i = nodes.begin(); i != nodes.end(); + i++) + { + // Check parents + vector const &parents = (*i)->parents(); + for (vector::const_iterator j = parents.begin(); + j != parents.end(); j++) + { + if (graph.find(*j) == graph.end()) return false; + } + + // Check children + list const *sch = (*i)->stochasticChildren(); + for (list::const_iterator k = sch->begin(); + k != sch->end(); k++) + { + if (graph.find(*k) == graph.end()) return false; + } + + list const *dch = (*i)->deterministicChildren(); + for (list::const_iterator k = dch->begin(); + k != dch->end(); k++) + { + if (graph.find(*k) == graph.end()) return false; + } + } + return true; +} Model::Model(unsigned int nchain) : _samplers(0), _nchain(nchain), _rng(nchain, 0), _iteration(0), @@ -54,27 +97,14 @@ delete sampler0; _samplers.pop_back(); } - for (list::const_iterator p = _default_monitors.begin(); - p != _default_monitors.end(); ++p) - { - delete *p; - } //Delete nodes in reverse sampling order - vector managed_nodes; - _graph.getSortedNodes(managed_nodes); - while(!managed_nodes.empty()) + while(!_nodes.empty()) { - Node *node = managed_nodes.back(); + Node *node = _nodes.back(); delete node; - managed_nodes.pop_back(); + _nodes.pop_back(); } - -} - -Graph const &Model::graph() -{ - return _graph; } bool Model::isInitialized() @@ -131,7 +161,7 @@ if (_is_initialized) throw logic_error("Model already initialized"); - if (!_graph.isClosed()) + if (!checkClosure(_nodes)) throw runtime_error("Graph not closed"); // Choose random number generators @@ -140,59 +170,12 @@ //Initialize nodes initializeNodes(); - // Check initial values of all stochastic nodes - // Note that we need to do this before choosing samplers. - if (!datagen) { - for (unsigned int ch = 0; ch < _nchain; ++ch) { - for (unsigned int i = 0; i < _stochastic_nodes.size(); ++i) { - StochasticNode const *snode = _stochastic_nodes[i]; - double ld = snode->logDensity(ch, PDF_PRIOR); - if (jags_isnan(ld)) { - string msg = "Error calculating log density at initial values"; - throw NodeError(snode, msg); - } - else if (ld == JAGS_NEGINF || (!jags_finite(ld) && ld < 0)) { - string msg; - if (snode->isObserved()) { - msg = "Observed node"; - } - else { - msg = "Unobserved node"; - } - msg.append(" inconsistent with "); - bool obs_par = true; - for (unsigned int j = 0; j < snode->parents().size(); ++j) { - if (!snode->parents()[j]->isObserved()) { - obs_par = false; - break; - } - } - if (obs_par) { - msg.append("observed parents"); - } - else { - msg.append("unobserved parents"); - } - msg.append(" at initialization.\n"); - msg.append("Try setting appropriate initial values."); - throw NodeError(snode, msg); - } - } - } - } - // Choose Samplers chooseSamplers(); if (datagen) { - Graph egraph; - for (set::const_iterator p = _extra_nodes.begin(); - p != _extra_nodes.end(); ++p) - { - egraph.add(*p); - } - _sampled_extra.clear(); - egraph.getSortedNodes(_sampled_extra); + //All extra nodes are sampled + _sampled_extra = _extra_nodes; _data_gen = true; } @@ -209,12 +192,8 @@ void Model::initializeNodes() { - //Get nodes in forward-sampling order - vector sorted_nodes; - _graph.getSortedNodes(sorted_nodes); - vector::const_iterator i; - for (i = sorted_nodes.begin(); i != sorted_nodes.end(); ++i) { + for (i = _nodes.begin(); i != _nodes.end(); ++i) { Node *node = *i; for (unsigned int n = 0; n < _nchain; ++n) { if (!node->checkParentValues(n)) { @@ -253,8 +232,13 @@ * * @see Model#samplerFactories */ + + Graph full_graph; + for (unsigned int i = 0; i < _nodes.size(); ++i) { + full_graph.insert(_nodes[i]); + } - GraphMarks marks(_graph); + GraphMarks marks(full_graph); Graph sample_graph; // Add observed stochastic nodes to the sample graph and mark @@ -263,15 +247,15 @@ vector informative; vector::const_iterator p; for (p = _stochastic_nodes.begin(); p != _stochastic_nodes.end(); ++p) { - if ((*p)->isObserved()) { - sample_graph.add(*p); + if (isObserved(*p)) { + sample_graph.insert(*p); informative.push_back(*p); } } marks.markAncestors(informative, 1); for (p = _stochastic_nodes.begin(); p != _stochastic_nodes.end(); ++p) { - if ((*p)->isObserved()) { + if (isObserved(*p)) { marks.mark(*p, 2); } } @@ -279,33 +263,23 @@ //Triage on marked nodes. We do this twice: once for stochastic //nodes and once for all nodes. - set sset; + list slist; //List of nodes to be sampled for(p = _stochastic_nodes.begin(); p != _stochastic_nodes.end(); ++p) { - switch(marks.mark(*p)) { - case 0: - _extra_nodes.insert(*p); - break; - case 1: - sset.insert(*p); - sample_graph.add(*p); - break; - case 2: - sample_graph.add(*p); - break; - default: - throw logic_error("Invalid mark"); + if (marks.mark(*p) == 1) { + //Unobserved stochastic nodes: to be sampled + slist.push_back(*p); } } - set const &nodes = _graph.nodes(); - set::const_iterator j; - for (j = nodes.begin(); j != nodes.end(); ++j) { + for (vector::const_iterator j = _nodes.begin(); + j != _nodes.end(); ++j) + { switch(marks.mark(*j)) { case 0: - _extra_nodes.insert(*j); + _extra_nodes.push_back(*j); break; case 1: case 2: - sample_graph.add(*j); + sample_graph.insert(*j); break; } } @@ -315,24 +289,32 @@ for(list >::const_iterator q = sf.begin(); q != sf.end(); ++q) { - if (q->second) { - vector svec = q->first->makeSamplers(sset, sample_graph); - while (!svec.empty()) { - for (unsigned int i = 0; i < svec.size(); ++i) { - vector const &nodes = svec[i]->nodes(); - for (unsigned int j = 0; j < nodes.size(); ++j) { - sset.erase(nodes[j]); + if (!q->second) continue; + + vector svec = q->first->makeSamplers(slist, sample_graph); + while (!svec.empty()) { + for (unsigned int i = 0; i < svec.size(); ++i) { + + vector const &nodes = svec[i]->nodes(); + for (unsigned int j = 0; j < nodes.size(); ++j) { + /* FIXME: This is a potential bottleneck if slist + is large */ + list::iterator p = + find(slist.begin(), slist.end(), nodes[j]); + if (p == slist.end()) { + throw logic_error("Unable to find sampled node"); } - _samplers.push_back(svec[i]); + slist.erase(p); } - svec = q->first->makeSamplers(sset, sample_graph); + _samplers.push_back(svec[i]); } + svec = q->first->makeSamplers(slist, sample_graph); } } // Make sure we found a sampler for all the nodes - if (!sset.empty()) { - throw NodeError(*sset.begin(), + if (!slist.empty()) { + throw NodeError(*slist.begin(), "Unable to find appropriate sampler"); } @@ -377,11 +359,6 @@ throw logic_error("Attempt to update uninitialized model"); } - list::iterator p; - for (p = _monitors.begin(); p != _monitors.end(); ++p) { - p->reserve(niter); - } - for (unsigned int iter = 0; iter < niter; ++iter) { for (vector::iterator i = _samplers.begin(); @@ -408,6 +385,7 @@ k->update(_iteration); } } + } unsigned int Model::iteration() const @@ -459,10 +437,10 @@ //Insert extra nodes into a new graph Graph egraph; - for (set::const_iterator p = _extra_nodes.begin(); + for (vector::const_iterator p = _extra_nodes.begin(); p != _extra_nodes.end(); ++p) { - egraph.add(*p); + egraph.insert(*p); } //Mark the ancestors of all monitored nodes in this graph GraphMarks emarks(egraph); @@ -478,16 +456,16 @@ } } } - //Remove unmarked nodes from graph - for (set::const_iterator p = _extra_nodes.begin(); - p != _extra_nodes.end(); ++p) + + //Add marked nodes to the vector of sampled extra nodes + _sampled_extra.clear(); + for(vector::const_iterator p = _extra_nodes.begin(); + p != _extra_nodes.end(); ++p) { - if (emarks.mark(*p) == 0) - egraph.remove(*p); + if (emarks.mark(*p)) { + _sampled_extra.push_back(*p); + } } - //Replace vector of sampled extra nodes - _sampled_extra.clear(); - egraph.getSortedNodes(_sampled_extra); } void Model::addMonitor(Monitor *monitor, unsigned int thin) @@ -513,45 +491,6 @@ setSampledExtra(); } -void Model::addExtraNode(Node *node) -{ - if (!_is_initialized) { - throw logic_error("Attempt to add extra node to uninitialized model"); - } - if (node->isObserved()) { - for (unsigned int i = 0; i < node->parents().size(); ++i) { - if (!node->parents()[i]->isObserved()) - throw logic_error("Cannot add observed node to initialized model"); - } - } - if (!node->stochasticChildren()->empty() || !node->deterministicChildren()->empty()) { - throw logic_error("Cannot add extra node with children"); - } - - if (_extra_nodes.count(node)) { - throw logic_error("Extra node already in model"); - } - - for (vector::const_iterator p = node->parents().begin(); - p != node->parents().end(); ++p) - { - if (!_graph.contains(*p)) { - throw logic_error("Extra node has parents not in model"); - } - } - - if (!_graph.contains(node)) { - _graph.add(node); - } - - _extra_nodes.insert(node); - if (_data_gen) { - //Extra nodes are automatically sampled - _sampled_extra.push_back(node); - } -} - - /* We use construct-on-first-use for the factory lists used by model objects. By dynamically allocating a list, we ensure that its @@ -631,67 +570,30 @@ return _monitors; } -/* -bool Model::setDefaultMonitors(string const &type, unsigned int thin) -{ - list const &faclist = monitorFactories(); - - for(list::const_iterator j = faclist.begin(); - j != faclist.end(); ++j) - { - vector default_nodes = (*j)->defaultNodes(this, type); - if (!default_nodes.empty()) { - unsigned int start = iteration() + 1; - for (unsigned int i = 0; i < default_nodes.size(); ++i) { - Monitor *monitor = (*j)->getMonitor(default_nodes[i], this, - type); - if (!monitor) { - throw logic_error("Invalid default monitor"); - } - addMonitor(monitor, thin); - // Model takes ownership of default monitors - _default_monitors.push_back(monitor); - } - return true; - } - } - return false; -} - -void Model::clearDefaultMonitors(string const &type) -{ - list dmonitors = _default_monitors; - for (list::const_iterator p = dmonitors.begin(); - p != dmonitors.end(); ++p) - { - Monitor *monitor = *p; - if (monitor->type() == type) { - _default_monitors.remove(monitor); - removeMonitor(monitor); - delete monitor; - } - } - setSampledExtra(); -} -*/ - void Model::addNode(StochasticNode *node) { - _graph.add(node); + _nodes.push_back(node); _stochastic_nodes.push_back(node); } void Model::addNode(DeterministicNode *node) { - _graph.add(node); + _nodes.push_back(node); } void Model::addNode(ConstantNode *node) { - _graph.add(node); + _nodes.push_back(node); } vector const &Model::stochasticNodes() const { return _stochastic_nodes; } + + vector const &Model::nodes() const + { + return _nodes; + } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/model/Monitor.cc jags-4.0.0/src/lib/model/Monitor.cc --- jags-3.4.0/src/lib/model/Monitor.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/model/Monitor.cc 2015-02-22 08:33:05.000000000 +0000 @@ -11,6 +11,8 @@ using std::logic_error; using std::copy; +namespace jags { + Monitor::Monitor(string const &type, vector const &nodes) : _type(type), _nodes(nodes) { @@ -98,3 +100,5 @@ } return(ans); } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/model/MonitorControl.cc jags-4.0.0/src/lib/model/MonitorControl.cc --- jags-3.4.0/src/lib/model/MonitorControl.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/model/MonitorControl.cc 2015-02-22 08:33:05.000000000 +0000 @@ -7,6 +7,8 @@ using std::invalid_argument; using std::string; +namespace jags { + MonitorControl::MonitorControl (Monitor *monitor, unsigned int start, unsigned int thin) : _monitor(monitor), _start(start), _thin(thin), _niter(0) @@ -60,9 +62,4 @@ _niter == rhs._niter); } -void MonitorControl::reserve(unsigned int niter) -{ - _monitor->reserve(niter/_thin + 1); -} - - +} //namespace jags diff -Nru jags-3.4.0/src/lib/model/MonitorFactory.cc jags-4.0.0/src/lib/model/MonitorFactory.cc --- jags-3.4.0/src/lib/model/MonitorFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/model/MonitorFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -2,7 +2,10 @@ using std::string; +namespace jags { + MonitorFactory::~MonitorFactory() { } +} diff -Nru jags-3.4.0/src/lib/model/MonitorInfo.cc jags-4.0.0/src/lib/model/MonitorInfo.cc --- jags-3.4.0/src/lib/model/MonitorInfo.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/model/MonitorInfo.cc 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,8 @@ using std::string; +namespace jags { + MonitorInfo::MonitorInfo(Monitor *monitor, string const &name, Range const &range, string const &type) : _monitor(monitor), _name(name), _range(range), _type(type) @@ -35,3 +37,4 @@ && _monitor == rhs._monitor); } +} //namespace jags diff -Nru jags-3.4.0/src/lib/model/NodeArray.cc jags-4.0.0/src/lib/model/NodeArray.cc --- jags-3.4.0/src/lib/model/NodeArray.cc 2012-02-20 08:36:38.000000000 +0000 +++ jags-4.0.0/src/lib/model/NodeArray.cc 2015-04-19 14:27:19.000000000 +0000 @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -22,200 +23,203 @@ using std::set; using std::numeric_limits; -NodeArray::NodeArray(string const &name, vector const &dim, - unsigned int nchain) - : _name(name), _range(dim), _nchain(nchain) -{ - unsigned int length = _range.length(); - _node_pointers = new Node *[length]; - _offsets = new unsigned int[length]; - for (unsigned int i = 0; i < length; i++) { - _node_pointers[i] = 0; - _offsets[i] = numeric_limits::max(); - } -} -NodeArray::~NodeArray() +static bool hasRepeats(jags::Range const &target_range) { - delete [] _node_pointers; - delete [] _offsets; -} + /* Returns true if the target range has any repeated indices -bool NodeArray::isEmpty(Range const &target_range) const -{ - if (!_range.contains(target_range)) - throw logic_error("Range error in NodeArray::isEmpty"); - - for (RangeIterator i(target_range); !i.atEnd(); i.nextLeft()) { - if (_node_pointers[_range.leftOffset(i)] != 0) - return false; - } - return true; -} - -void NodeArray::insert(Node *node, Range const &target_range) -{ - if (!node) { - throw logic_error(string("Attempt to insert NULL node at ") + name() + - print(target_range)); - } - if (node->dim() != target_range.dim(true)) { - throw runtime_error(string("Cannot insert node into ") + name() + - print(target_range) + ". Dimension mismatch"); - } - if (!_range.contains(target_range)) { - throw runtime_error(string("Cannot insert node into ") + name() + - print(target_range) + ". Range out of bounds"); - } - if (!isEmpty(target_range)) { - throw runtime_error(string("Node ") + name() + print(target_range) - + " overlaps previously defined nodes"); - } - - /* Set the _node_pointers array and the offset array */ - RangeIterator j(target_range); - for (unsigned int k = 0; !j.atEnd(); j.nextLeft(), ++k) + We choose the vectorized version of set::insert as it is + amortized linear time in the length of the index vector + scope[i] if the indices are in increasing order, which should + be true most of the time. + */ + + vector > const &scope = target_range.scope(); + for (unsigned int i = 0; i < scope.size(); ++i) { + set seen; + seen.insert(scope[i].begin(), scope[i].end()); + if (seen.size() != scope[i].size()) return true; + } + return false; +} + +namespace jags { + + NodeArray::NodeArray(string const &name, vector const &dim, + unsigned int nchain) + : _name(name), _range(dim), _nchain(nchain), + _node_pointers(product(dim), 0), + _offsets(product(dim), numeric_limits::max()) + { - unsigned int offset = _range.leftOffset(j); - _node_pointers[offset] = node; - _offsets[offset] = k; - } - - /* Add to the graph */ - _member_graph.add(node); -} - -Node *NodeArray::find(Range const &target_range) const -{ - // Find previously inserted node. - - if (!_range.contains(target_range)) { - return 0; } - //We only need to check the first and last elements. If these - //are correct then everything else must lie in between. - - unsigned int start = _range.leftOffset(target_range.lower()); - Node *node = _node_pointers[start]; - if (!node || _offsets[start] != 0) - return 0; - - if (node->dim() != target_range.dim(true)) - return 0; - - if (node->length() > 1) { - unsigned int end = _range.leftOffset(target_range.upper()); - if (_node_pointers[end] != node || _offsets[end] + 1 != node->length()) { - return 0; + void NodeArray::insert(Node *node, Range const &target_range) + { + if (!node) { + throw logic_error(string("Attempt to insert NULL node at ") + + name() + print(target_range)); + } + if (node->dim() != target_range.dim(true)) { + throw runtime_error(string("Cannot insert node into ") + name() + + print(target_range) + ". Dimension mismatch"); + } + if (!_range.contains(target_range)) { + throw runtime_error(string("Cannot insert node into ") + name() + + print(target_range) + ". Range out of bounds"); + } + if (hasRepeats(target_range)) { + throw runtime_error(string("Cannot insert node into ") + name() + + print(target_range) + + ". Range has repeat indices"); + } + + /* Check that the range is not already occupied, even partially */ + for (RangeIterator p(target_range); !p.atEnd(); p.nextLeft()) { + if (_node_pointers[_range.leftOffset(p)] != 0) { + throw runtime_error(string("Node ") + name() + + print(target_range) + + " overlaps previously defined nodes"); + } } - } - - return node; -} - -Node *NodeArray::getSubset(Range const &target_range, Model &model) -{ - //Check validity of target range - if (!_range.contains(target_range)) { - throw runtime_error(string("Cannot get subset ") + name() + - print(target_range) + ". Range out of bounds"); + + /* Set the _node_pointers array and the offset array */ + unsigned int k = 0; + for (RangeIterator p(target_range); !p.atEnd(); p.nextLeft()) + { + unsigned int i = _range.leftOffset(p); + _node_pointers[i] = node; + _offsets[i] = k++; + } + + /* Add multivariate nodes to range map */ + if (node->length() > 1) { + _mv_nodes[target_range] = node; + } + + /* Add node to the graph */ + _member_graph.insert(node); } - /* If range corresponds to a set node, then return this */ - Node *node = find(target_range); - if (node) - return node; - - /* If range corresponds to a previously created subset, then return this */ - map::iterator p = _generated_nodes.find(target_range); - if (p != _generated_nodes.end()) { - return p->second; - } - - /* Otherwise create an aggregate node */ - - vector nodes; - vector offsets; - for (RangeIterator i(target_range); !i.atEnd(); i.nextLeft()) { - unsigned int offset = _range.leftOffset(i); - if (_node_pointers[offset] == 0) { - return 0; - } - nodes.push_back(_node_pointers[offset]); - offsets.push_back(_offsets[offset]); - } - AggNode *anode = new AggNode(target_range.dim(true), nodes, offsets); - _generated_nodes.insert(pair(target_range, anode)); - model.addNode(anode); - _member_graph.add(anode); - return anode; -} - -void NodeArray::setValue(SArray const &value, unsigned int chain) -{ - if (!(_range == value.range())) { - throw runtime_error(string("Dimension mismatch when setting value of node array ") + name()); - } - - vector const &x = value.value(); - unsigned int N = value.length(); - - //Gather all the nodes for which a data value is supplied - set setnodes; - for (unsigned int i = 0; i < _range.length(); ++i) { - if (x[i] != JAGS_NA) { - Node *node = _node_pointers[i]; - if (node == 0) { - string msg = "Attempt to set value of undefined node "; - throw runtime_error(msg + name() + - print(value.range().leftIndex(i))); - } - if (node->isObserved()) { - throw NodeError(node, - "Attempt to overwrite value of observed node"); + Node *NodeArray::getSubset(Range const &target_range, Model &model) + { + //Check validity of target range + if (!_range.contains(target_range)) { + throw runtime_error(string("Cannot get subset ") + name() + + print(target_range) + ". Range out of bounds"); + } + + if (target_range.length() == 1) { + unsigned int start = _range.leftOffset(target_range.first()); + Node *node = _node_pointers[start]; + if (node && node->length() == 1) { + if (_offsets[start] != 0) { + throw logic_error("Invalid scalar node in NodeArray"); + } + return node; } - if (node->isRandomVariable()) { - setnodes.insert(node); + } + else { + map::const_iterator p = _mv_nodes.find(target_range); + if (p != _mv_nodes.end()) { + return p->second; } - else { - throw NodeError(node, - "Attempt to set value of non-variable node"); + } + + /* If range corresponds to a previously created subset, then + * return this */ + map::iterator p = _generated_nodes.find(target_range); + if (p != _generated_nodes.end()) { + return p->second; + } + + /* Otherwise create an aggregate node */ + + vector nodes; + vector offsets; + for (RangeIterator p(target_range); !p.atEnd(); p.nextLeft()) { + unsigned int i = _range.leftOffset(p); + if (_node_pointers[i] == 0) { + return 0; } + nodes.push_back(_node_pointers[i]); + offsets.push_back(_offsets[i]); } + AggNode *anode = new AggNode(target_range.dim(true), _nchain, + nodes, offsets); + _generated_nodes[target_range] = anode; + model.addNode(anode); + _member_graph.insert(anode); + return anode; } - - set::const_iterator p; - double *node_value = new double[N]; - for (p = setnodes.begin(); p != setnodes.end(); ++p) { - //Step through each node - Node *node = *p; - - //Get vector of values for this node - for (unsigned int i = 0; i < N; ++i) { - if (_node_pointers[i] == node) { - if (_offsets[i] > node->length()) { - throw logic_error("Invalid offset in NodeArray::setValue"); + + void NodeArray::setValue(SArray const &value, unsigned int chain) + { + if (!(_range == value.range())) { + throw runtime_error(string("Dimension mismatch in ") + name()); + } + + vector const &x = value.value(); + unsigned int N = value.length(); + + //Gather all the nodes for which a data value is supplied + set setnodes; + for (unsigned int i = 0; i < _range.length(); ++i) { + if (x[i] != JAGS_NA) { + Node *node = _node_pointers[i]; + if (node == 0) { + string msg = "Attempt to set value of undefined node "; + throw runtime_error(msg + name() + + print(value.range().leftIndex(i))); } - else { - node_value[_offsets[i]] = x[i]; + switch(node->randomVariableStatus()) { + case RV_FALSE: + throw NodeError(node, + "Cannot set value of non-variable node"); + break; + case RV_TRUE_OBSERVED: + throw NodeError(node, + "Cannot overwrite value of observed node"); + break; + case RV_TRUE_UNOBSERVED: + setnodes.insert(node); + break; } } } - // If there are any missing values, they must all be missing - bool missing = node_value[0] == JAGS_NA; - for (unsigned int j = 1; j < node->length(); ++j) { - if ((node_value[j] == JAGS_NA) != missing) { - delete [] node_value; - throw NodeError(node,"Values supplied for node are partially missing"); + + + for (set::const_iterator p = setnodes.begin(); + p != setnodes.end(); ++p) + { + //Step through each node + Node *node = *p; + + vector node_value(node->length()); + + //Get vector of values for this node + for (unsigned int i = 0; i < N; ++i) { + if (_node_pointers[i] == node) { + if (_offsets[i] > node->length()) { + throw logic_error("Invalid offset in NodeArray::setValue"); + } + else { + node_value[_offsets[i]] = x[i]; + } + } + } + // If there are any missing values, they must all be missing + bool missing = node_value[0] == JAGS_NA; + for (unsigned int j = 1; j < node->length(); ++j) { + if ((node_value[j] == JAGS_NA) != missing) { + throw NodeError(node,"Values supplied for node are partially missing"); + } + } + if (!missing) { + node->setValue(&node_value[0], node->length(), chain); } - } - if (!missing) { - node->setValue(node_value, node->length(), chain); } } - delete [] node_value; -} void NodeArray::getValue(SArray &value, unsigned int chain, bool (*condition)(Node const *)) const @@ -253,10 +257,11 @@ for (unsigned int i = 0; i < _range.length(); ++i) { if (x[i] != JAGS_NA) { if (_node_pointers[i] == 0) { - //Insert a new constant node - ConstantNode *cnode = new ConstantNode(x[i], _nchain); + //Insert a new constant data node + ConstantNode *cnode = new ConstantNode(x[i], _nchain, true); model->addNode(cnode); - insert(cnode, _range.leftIndex(i)); + SimpleRange target_range(_range.leftIndex(i)); + insert(cnode, target_range); } else { throw logic_error("Error in NodeArray::setData"); @@ -266,116 +271,56 @@ } -string const &NodeArray::name() const -{ - return _name; -} - -Range const &NodeArray::range() const -{ - return _range; -} - -bool NodeArray::findActiveIndices(vector &ind, unsigned int k, - vector const &lower, vector const &dim) const -{ - /* - We pay a heavy computational price for the flexibility of - allowing users to insert multivariate nodes in arbritary - ways into the NodeArray. - - Suppose we have an array of dimension [3,4,2,5], the lower index - is [1,2,1,2] and the dimension of the node is [3,2]. Then the - node could be inserted in 5 different ways. - - [1:3, 2:3, 1, 2] Active indices (0,1) - [1:3, 2, 1:2, 2] (0,2) - [1:3, 2, 1, 2:3] (0,3) - [1, 2:4, 1:2, 2] (1,2) - [1, 2:4, 1, 2:3] (1,3) - - We can't have active indices (2,3) because the node won't fit - */ - - if (k == 0) - ind[k] = 0; - else - ind[k] = ind[k-1] + 1; - unsigned int m = ind.size(); - unsigned int M = _range.ndim(false); - for (;ind[k] + m <= M + k; ind[k] = ind[k] + 1) { - if (k == m - 1) { - vector upper(lower); - for (unsigned int l = 0; l < m; ++l) { - upper[ind[l]] = upper[ind[l]] + dim[l] - 1; - } - Range test_range(lower, upper); - if (_range.contains(test_range)) { - Node *node = _node_pointers[_range.leftOffset(lower)]; - unsigned int j = 0; - bool ok = true; - for (RangeIterator i(test_range); !i.atEnd(); i.nextLeft(), ++j) { - unsigned int offset = _range.leftOffset(i); - if (_node_pointers[offset] != node || _offsets[offset] != j) { - ok = false; - break; - } - } - if (ok) - return true; - } - } - else { - if (findActiveIndices(ind, k+1, lower, dim)) - return true; + string const &NodeArray::name() const + { + return _name; } - } - return false; -} -Range NodeArray::getRange(Node const *node) const -{ - if (!_member_graph.contains(node)) { - return Range(); + SimpleRange const &NodeArray::range() const + { + return _range; } - //Look in the generated nodes first - for (map::const_iterator p = _generated_nodes.begin(); - p != _generated_nodes.end(); ++p) - { - if (node == p->second) - return p->first; - } - - /* Find the lower limit of the range. This is easy */ - unsigned int ndim = _range.ndim(false); - vector lower(ndim); - unsigned int j = 0; - for (; j < _range.length(); ++j) { - if (_node_pointers[j] == node) { - lower = _range.leftIndex(j); - break; - } - } - if (j == _range.length()) { - return Range(); - } - - unsigned int m = node->dim().size(); - vector ind(m, 1); - if (findActiveIndices(ind, 0, lower, node->dim())) { - vector upper = lower; - for (unsigned int l = 0; l < m; ++l) { - upper[ind[l]] = upper[ind[l]] + node->dim()[l] - 1; + Range NodeArray::getRange(Node const *node) const + { + if (!_member_graph.contains(node)) { + return Range(); } - return Range(lower, upper); - } - else { - throw logic_error("Unable to find node range"); + + //Look among inserted nodes first + if (node->length() == 1) { + for (unsigned int i = 0; i < _range.length(); ++i) { + if (_node_pointers[i] == node) { + return SimpleRange(_range.leftIndex(i)); + } + } + } + else { + for (map::const_iterator p = _mv_nodes.begin(); + p != _mv_nodes.end(); ++p) + { + if (node == p->second) { + return p->first; + } + } + } + + //Then among generated nodes + for (map::const_iterator p = _generated_nodes.begin(); + p != _generated_nodes.end(); ++p) + { + if (node == p->second) { + return p->first; + } + } + + throw logic_error("Failed to find Node range"); + return Range(); //Wall } -} -unsigned int NodeArray::nchain() const -{ - return _nchain; -} + unsigned int NodeArray::nchain() const + { + return _nchain; + } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/model/NodeArraySubset.cc jags-4.0.0/src/lib/model/NodeArraySubset.cc --- jags-3.4.0/src/lib/model/NodeArraySubset.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/model/NodeArraySubset.cc 2015-04-12 14:29:53.000000000 +0000 @@ -0,0 +1,95 @@ +#include +#include +#include +#include +#include +#include + +#include +#include + + +using std::set; +using std::vector; +using std::runtime_error; +using std::string; + +namespace jags { + + NodeArraySubset::NodeArraySubset(NodeArray const *array, Range const &range) + : _dim(range.dim(true)), _nchain(array->nchain()) + { + if (isNULL(range)) { + // Special syntax rule: a NULL range means the whole array + _dim = array->range().dim(false); + for (unsigned int i = 0; i < array->_node_pointers.size(); ++i) { + _node_pointers.push_back(array->_node_pointers[i]); + _offsets.push_back(array->_offsets[i]); + } + } + else { + //Check validity of target range + if (!array->_range.contains(range)) { + throw runtime_error(string("Cannot get subset ") + + array->_name + print(range) + + ". Range out of bounds"); + } + + for (RangeIterator p(range); !p.atEnd(); p.nextLeft()) { + unsigned int i = array->_range.leftOffset(p); + _node_pointers.push_back(array->_node_pointers[i]); + _offsets.push_back(array->_offsets[i]); + } + } + } + + vector NodeArraySubset::value(unsigned int chain) const + { + vector ans; + Node const *node = 0; + double const *values = 0; + for (unsigned int i = 0; i < _node_pointers.size(); ++i) { + if (_node_pointers[i]) { + if (node != _node_pointers[i]) { + node = _node_pointers[i]; + values = node->value(chain); + } + ans.push_back(values[_offsets[i]]); + } + else { + ans.push_back(JAGS_NA); + } + } + return ans; + } + + vector const &NodeArraySubset::dim() const + { + return _dim; + } + + vector NodeArraySubset::nodes() const + { + vector ans; + set nodeset; + for (unsigned int i = 0; i < _node_pointers.size(); ++i) { + if (nodeset.insert(_node_pointers[i]).second) { + ans.push_back(_node_pointers[i]); + } + } + return ans; + } + + unsigned int NodeArraySubset::nchain() const + { + return _nchain; + } + + unsigned int NodeArraySubset::length() const + { + return _node_pointers.size(); + } + + +} /* namespace jags */ + diff -Nru jags-3.4.0/src/lib/model/SymTab.cc jags-4.0.0/src/lib/model/SymTab.cc --- jags-3.4.0/src/lib/model/SymTab.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/model/SymTab.cc 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -17,6 +18,8 @@ using std::logic_error; using std::set; +namespace jags { + SymTab::SymTab(Model *model) : _model(model) { @@ -32,15 +35,20 @@ void SymTab::addVariable(string const &name, vector const &dim) { - if (_varTable.find(name) != _varTable.end()) { - string msg("Name "); - msg.append(name); - msg.append(" already in use in symbol table"); - throw runtime_error(msg); - } + if (_varTable.find(name) != _varTable.end()) { + string msg("Name "); + msg.append(name); + msg.append(" already in use in symbol table"); + throw runtime_error(msg); + } - NodeArray *array = new NodeArray(name, dim, _model->nchain()); - _varTable[name] = array; + if (isFlat(dim)) { + string msg = string("Cannot create variable ") + name + + " with zero dimension"; + throw runtime_error(msg); + } + NodeArray *array = new NodeArray(name, dim, _model->nchain()); + _varTable[name] = array; } NodeArray* SymTab::getVariable(string const &name) const @@ -140,133 +148,8 @@ _varTable.clear(); } -/* -static vector cutBUGSSubsetName(string const &name) -{ - //Takes the BUGS language name of an array subset, e.g. "foo[a,b,c]", - //and cuts it up into substrings ("foo" "[" "a" "," "b" "," "c" "]") - - vector cut; - char const *c = name.c_str(); - unsigned int i = 0; - for (unsigned int j = 1; j < name.size(); ++j) { - if (c[j] == '[' || c[j] == ']' || c[j] == ',') { - cut.push_back(name.substr(i,j-i)); - cut.push_back(name.substr(j,1)); - i = j+1; - } - } - return cut; -} -*/ - -/* -This was a noble effort, but I don't think it worth it. The -MixtureNode class now has its own implementation of the Node::name -member function - -include - -static string makeMixtureName(MixtureNode const *mnode, - SymTab const &symtab) -{ - - //Making a name for a mixture node is a complex business. We rely - // on the fact that, currently, mixture nodes can only be created by - // nested indexing. For example "foo[1,X,4]" where X can take values - // 1,2,3, will create a mixture node with X as an index and - // parameters "foo[1,1,4]", "foo[1,2,4]", "foo[1,3,4]". - - // The BUGS language name of a mixture node can be reconstructed - // by finding the parts of the parameter names that match, e.g. - // "foo[1," ... ",4]" - // and filling in the gaps with the names of the indices, e.g. - // "foo[1," "X" ",4]" - - - //The indices are the first elements of the vector of parents - vector index = mnode->parents(); - index.resize(mnode->index_size()); - - //Create a set of parents, excluding index nodes - set parents; - for (unsigned int i = mnode->index_size(); i < mnode->parents().size(); ++i) - { - parents.insert(mnode->parents()[i]); - } - - if (parents.empty()) - return(""); - - //Create a vector of parameter names - vector param_names; - for (set::const_iterator i = parents.begin(); - i != parents.end(); ++i) - { - param_names.push_back((*i)->name(symtab)); - } - - //Cut up the name of the first parameter - string const &name0 = param_names[0]; - vector cut_name0 = cutBUGSSubsetName(name0); - - //Now compare the parameter names with the first one, and mark the - //parts that don't match - unsigned int nparts = cut_name0.size(); - vector variable_part(nparts, false); - - for (unsigned int j = 1; j < param_names.size(); ++j) { - vector cut_name = cutBUGSSubsetName(param_names[j]); - if (cut_name.size() != nparts) { - //Something went wrong here, but it's too late to throw an exception - //because we normally only want to know a node name after catching - //one. - return ""; - } - for (unsigned int k = 0; k < nparts; ++k) { - if (cut_name[k] != cut_name0[k]) { - variable_part[k] = true; - } - } - } - - //Check that number of variables parts is the same as the number - //of indices of the mixture node - unsigned int nvar = 0; - for (unsigned int k = 0; k < nparts; ++k) { - if (variable_part[k]) - ++nvar; - } - if (nvar != index.size()) { - // Something went wrong - see above - return ""; - } - - //Now we are ready - string mnode_name; - unsigned int l = 0; - for (unsigned int k = 0; k < nparts; ++k) { - if (variable_part[k]) { - mnode_name.append(index[l++]->name(symtab)); - } - else { - mnode_name.append(cut_name0[k]); - } - } - - return mnode_name; -} -*/ - string SymTab::getName(Node const *node) const { - //Special rules for mixture nodes - /* - if (isMixture(node)) { - return makeMixtureName(asMixture(node), *this); - } - */ - map::const_iterator p; for (p = _varTable.begin(); p != _varTable.end(); ++p) { NodeArray *array = p->second; @@ -290,9 +173,4 @@ return node->deparse(parnames); } -//FIXME: Necessary? -unsigned int SymTab::nchain() const -{ - return _model->nchain(); -} - +} //namespace jags diff -Nru jags-3.4.0/src/lib/module/Makefile.am jags-4.0.0/src/lib/module/Makefile.am --- jags-3.4.0/src/lib/module/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/module/Makefile.am 2015-02-22 08:33:05.000000000 +0000 @@ -2,4 +2,4 @@ libmodule_la_CPPFLAGS = -I$(top_srcdir)/src/include -libmodule_la_SOURCES = ModuleError.cc +libmodule_la_SOURCES = Module.cc ModuleError.cc diff -Nru jags-3.4.0/src/lib/module/Makefile.in jags-4.0.0/src/lib/module/Makefile.in --- jags-3.4.0/src/lib/module/Makefile.in 2013-08-30 13:23:27.000000000 +0000 +++ jags-4.0.0/src/lib/module/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/lib/module -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -62,27 +98,54 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libmodule_la_LIBADD = -am_libmodule_la_OBJECTS = libmodule_la-ModuleError.lo +am_libmodule_la_OBJECTS = libmodule_la-Module.lo \ + libmodule_la-ModuleError.lo libmodule_la_OBJECTS = $(am_libmodule_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(libmodule_la_SOURCES) DIST_SOURCES = $(libmodule_la_SOURCES) am__can_run_installinfo = \ @@ -90,11 +153,30 @@ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -108,6 +190,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -177,10 +262,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -248,7 +329,7 @@ top_srcdir = @top_srcdir@ noinst_LTLIBRARIES = libmodule.la libmodule_la_CPPFLAGS = -I$(top_srcdir)/src/include -libmodule_la_SOURCES = ModuleError.cc +libmodule_la_SOURCES = Module.cc ModuleError.cc all: all-am .SUFFIXES: @@ -265,7 +346,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/module/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/lib/module/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -286,14 +366,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libmodule.la: $(libmodule_la_OBJECTS) $(libmodule_la_DEPENDENCIES) $(EXTRA_libmodule_la_DEPENDENCIES) - $(CXXLINK) $(libmodule_la_OBJECTS) $(libmodule_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(CXXLINK) $(libmodule_la_OBJECTS) $(libmodule_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -301,35 +384,46 @@ distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmodule_la-Module.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmodule_la-ModuleError.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< + +libmodule_la-Module.lo: Module.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodule_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodule_la-Module.lo -MD -MP -MF $(DEPDIR)/libmodule_la-Module.Tpo -c -o libmodule_la-Module.lo `test -f 'Module.cc' || echo '$(srcdir)/'`Module.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmodule_la-Module.Tpo $(DEPDIR)/libmodule_la-Module.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Module.cc' object='libmodule_la-Module.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodule_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodule_la-Module.lo `test -f 'Module.cc' || echo '$(srcdir)/'`Module.cc libmodule_la-ModuleError.lo: ModuleError.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodule_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodule_la-ModuleError.lo -MD -MP -MF $(DEPDIR)/libmodule_la-ModuleError.Tpo -c -o libmodule_la-ModuleError.lo `test -f 'ModuleError.cc' || echo '$(srcdir)/'`ModuleError.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libmodule_la-ModuleError.Tpo $(DEPDIR)/libmodule_la-ModuleError.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ModuleError.cc' object='libmodule_la-ModuleError.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodule_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmodule_la-ModuleError.lo -MD -MP -MF $(DEPDIR)/libmodule_la-ModuleError.Tpo -c -o libmodule_la-ModuleError.lo `test -f 'ModuleError.cc' || echo '$(srcdir)/'`ModuleError.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmodule_la-ModuleError.Tpo $(DEPDIR)/libmodule_la-ModuleError.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ModuleError.cc' object='libmodule_la-ModuleError.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodule_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodule_la-ModuleError.lo `test -f 'ModuleError.cc' || echo '$(srcdir)/'`ModuleError.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodule_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmodule_la-ModuleError.lo `test -f 'ModuleError.cc' || echo '$(srcdir)/'`ModuleError.cc mostlyclean-libtool: -rm -f *.lo @@ -337,26 +431,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -368,15 +451,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -385,6 +464,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -526,18 +620,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/lib/module/Module.cc jags-4.0.0/src/lib/module/Module.cc --- jags-3.4.0/src/lib/module/Module.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/module/Module.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,322 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +using std::vector; +using std::list; +using std::string; +using std::find; +using std::pair; + +namespace jags { + +Module::Module(string const &name) + : _name(name), _loaded(false) +{ + modules().push_back(this); +} + +Module::~Module() +{ + //FIXME: Could be causing windows segfault?? + unload(); + list::iterator p = find(modules().begin(), modules().end(), this); + if (p != modules().end()) { + modules().erase(p); + } +} + + +void Module::insert(ScalarFunction *func) +{ + _functions.push_back(func); + _fp_list.push_back(FunctionPtr(func)); +} + +void Module::insert(LinkFunction *func) +{ + _functions.push_back(func); + _fp_list.push_back(FunctionPtr(func)); + +} + +void Module::insert(VectorFunction *func) +{ + _functions.push_back(func); + _fp_list.push_back(FunctionPtr(func)); + +} + +void Module::insert(ArrayFunction *func) +{ + _functions.push_back(func); + _fp_list.push_back(FunctionPtr(func)); + +} + +void Module::insert(RScalarDist *dist) +{ + _distributions.push_back(dist); + _dp_list.push_back(DistPtr(dist)); + + insert(new ScalarLogDensity(dist)); + + insert(new DFunction(dist)); + insert(new PFunction(dist)); + insert(new QFunction(dist)); +} + +void Module::insert(ScalarDist *dist) +{ + _distributions.push_back(dist); + _dp_list.push_back(DistPtr(dist)); + + insert(new ScalarLogDensity(dist)); +} + +void Module::insert(VectorDist *dist) +{ + _distributions.push_back(dist); + _dp_list.push_back(DistPtr(dist)); + + insert(new VectorLogDensity(dist)); +} + +void Module::insert(ArrayDist *dist) +{ + _distributions.push_back(dist); + _dp_list.push_back(DistPtr(dist)); + + insert(new ArrayLogDensity(dist)); +} + +void Module::insert(ScalarDist *dist, ScalarFunction *func) +{ + _obs_functions.push_back(pair(dist,func)); + insert(dist); + insert(func); +} + +void Module::insert(ScalarDist *dist, LinkFunction *func) +{ + _obs_functions.push_back(pair(dist,func)); + insert(dist); + insert(func); +} + +void Module::insert(ScalarDist *dist, VectorFunction *func) +{ + _obs_functions.push_back(pair(dist,func)); + insert(dist); + insert(func); +} + +void Module::insert(ScalarDist *dist, ArrayFunction *func) +{ + _obs_functions.push_back(pair(dist,func)); + insert(dist); + insert(func); +} + +// + +void Module::insert(VectorDist *dist, ScalarFunction *func) +{ + _obs_functions.push_back(pair(dist,func)); + insert(dist); + insert(func); +} + +void Module::insert(VectorDist *dist, LinkFunction *func) +{ + _obs_functions.push_back(pair(dist,func)); + insert(dist); + insert(func); +} + +void Module::insert(VectorDist *dist, VectorFunction *func) +{ + _obs_functions.push_back(pair(dist,func)); + insert(dist); + insert(func); +} + +void Module::insert(VectorDist *dist, ArrayFunction *func) +{ + _obs_functions.push_back(pair(dist,func)); + insert(dist); + insert(func); +} + +// + +void Module::insert(ArrayDist *dist, ScalarFunction *func) +{ + _obs_functions.push_back(pair(dist,func)); + insert(dist); + insert(func); +} + +void Module::insert(ArrayDist *dist, LinkFunction *func) +{ + _obs_functions.push_back(pair(dist,func)); + insert(dist); + insert(func); +} + +void Module::insert(ArrayDist *dist, VectorFunction *func) +{ + _obs_functions.push_back(pair(dist,func)); + insert(dist); + insert(func); +} + +void Module::insert(ArrayDist *dist, ArrayFunction *func) +{ + _obs_functions.push_back(pair(dist,func)); + insert(dist); + insert(func); +} + +void Module::insert(SamplerFactory *fac) +{ + _sampler_factories.push_back(fac); +} + +void Module::insert(RNGFactory *fac) +{ + _rng_factories.push_back(fac); +} + +void Module::insert(MonitorFactory *fac) +{ + _monitor_factories.push_back(fac); +} + +void Module::load() +{ + if (_loaded) + return; + + for (unsigned int i = 0; i < _monitor_factories.size(); ++i) { + pair p(_monitor_factories[i], true); + Model::monitorFactories().push_front(p); + } + for (unsigned int i = 0; i < _rng_factories.size(); ++i) { + pair p(_rng_factories[i], true); + Model::rngFactories().push_front(p); + } + for (unsigned int i = 0; i < _sampler_factories.size(); ++i) { + pair p(_sampler_factories[i], true); + Model::samplerFactories().push_front(p); + } + for (unsigned int i = 0; i < _dp_list.size(); ++i) { + Compiler::distTab().insert(_dp_list[i]); + } + for (unsigned int i = 0; i < _fp_list.size(); ++i) { + Compiler::funcTab().insert(_fp_list[i]); + } + for (unsigned int i = 0; i < _obs_functions.size(); ++i) { + Compiler::obsFuncTab().insert(_obs_functions[i].first, + _obs_functions[i].second); + } + + _loaded = true; + loadedModules().push_back(this); +} + +void Module::unload() +{ + if (!_loaded) + return; + + loadedModules().remove(this); + _loaded = false; + + for (unsigned int i = 0; i < _fp_list.size(); ++i) { + Compiler::funcTab().erase(_fp_list[i]); + } + for (unsigned int i = 0; i < _obs_functions.size(); ++i) { + Compiler::obsFuncTab().erase(_obs_functions[i].first, + _obs_functions[i].second); + } + for (unsigned int i = 0; i < _distributions.size(); ++i) { + Compiler::distTab().erase(_dp_list[i]); + } + + list > &rngf = Model::rngFactories(); + for (unsigned int i = 0; i < _rng_factories.size(); ++i) { + RNGFactory *f = _rng_factories[i]; + rngf.remove(pair(f, true)); + rngf.remove(pair(f, false)); + } + + list > &sf = Model::samplerFactories(); + for (unsigned int i = 0; i < _sampler_factories.size(); ++i) { + SamplerFactory *f = _sampler_factories[i]; + sf.remove(pair(f, true)); + sf.remove(pair(f, false)); + } + + list > &mf = Model::monitorFactories(); + for (unsigned int i = 0; i < _monitor_factories.size(); ++i) { + MonitorFactory *f = _monitor_factories[i]; + mf.remove(pair(f, true)); + mf.remove(pair(f, false)); + } + +} + +vector const &Module::functions() const +{ + return _functions; +} + +vector const &Module::distributions() const +{ + return _distributions; +} + +vector const &Module::samplerFactories() const +{ + return _sampler_factories; +} + +vector const &Module::rngFactories() const +{ + return _rng_factories; +} + +vector const &Module::monitorFactories() const +{ + return _monitor_factories; +} + +string const &Module::name() const +{ + return _name; +} + +list &Module::modules() +{ + static list *_modules = new list; + return *_modules; +} + +list &Module::loadedModules() +{ + static list *_modules = new list; + return *_modules; +} + +} //namespace jags diff -Nru jags-3.4.0/src/lib/module/ModuleError.cc jags-4.0.0/src/lib/module/ModuleError.cc --- jags-3.4.0/src/lib/module/ModuleError.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/module/ModuleError.cc 2015-02-22 08:33:05.000000000 +0000 @@ -9,6 +9,8 @@ using std::runtime_error; using std::logic_error; +namespace jags { + void throwLogicError(string const &message) { throw logic_error(message); @@ -33,3 +35,5 @@ { throw FuncError(func, message); } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/Module.cc jags-4.0.0/src/lib/Module.cc --- jags-3.4.0/src/lib/Module.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/Module.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,294 +0,0 @@ -#include -#include -#include -#include -#include - -using std::vector; -using std::list; -using std::string; -using std::find; -using std::pair; - -Module::Module(string const &name) - : _name(name), _loaded(false) -{ - modules().push_back(this); -} - -Module::~Module() -{ - //FIXME: Could be causing windows segfault?? - unload(); - list::iterator p = find(modules().begin(), modules().end(), this); - if (p != modules().end()) { - modules().erase(p); - } -} - -void Module::insert(ScalarFunction *func) -{ - _functions.push_back(func); - _fp_list.push_back(FunctionPtr(func)); -} - -void Module::insert(LinkFunction *func) -{ - _functions.push_back(func); - _fp_list.push_back(FunctionPtr(func)); - -} - -void Module::insert(VectorFunction *func) -{ - _functions.push_back(func); - _fp_list.push_back(FunctionPtr(func)); - -} - -void Module::insert(ArrayFunction *func) -{ - _functions.push_back(func); - _fp_list.push_back(FunctionPtr(func)); - -} - -void Module::insert(ScalarDist *dist) -{ - _distributions.push_back(dist); - _dp_list.push_back(DistPtr(dist)); -} - -void Module::insert(VectorDist *dist) -{ - _distributions.push_back(dist); - _dp_list.push_back(DistPtr(dist)); - -} - -void Module::insert(ArrayDist *dist) -{ - _distributions.push_back(dist); - _dp_list.push_back(DistPtr(dist)); - -} - -void Module::insert(ScalarDist *dist, ScalarFunction *func) -{ - _obs_functions.push_back(pair(dist,func)); - insert(dist); - insert(func); -} - -void Module::insert(ScalarDist *dist, LinkFunction *func) -{ - _obs_functions.push_back(pair(dist,func)); - insert(dist); - insert(func); -} - -void Module::insert(ScalarDist *dist, VectorFunction *func) -{ - _obs_functions.push_back(pair(dist,func)); - insert(dist); - insert(func); -} - -void Module::insert(ScalarDist *dist, ArrayFunction *func) -{ - _obs_functions.push_back(pair(dist,func)); - insert(dist); - insert(func); -} - -// - -void Module::insert(VectorDist *dist, ScalarFunction *func) -{ - _obs_functions.push_back(pair(dist,func)); - insert(dist); - insert(func); -} - -void Module::insert(VectorDist *dist, LinkFunction *func) -{ - _obs_functions.push_back(pair(dist,func)); - insert(dist); - insert(func); -} - -void Module::insert(VectorDist *dist, VectorFunction *func) -{ - _obs_functions.push_back(pair(dist,func)); - insert(dist); - insert(func); -} - -void Module::insert(VectorDist *dist, ArrayFunction *func) -{ - _obs_functions.push_back(pair(dist,func)); - insert(dist); - insert(func); -} - -// - -void Module::insert(ArrayDist *dist, ScalarFunction *func) -{ - _obs_functions.push_back(pair(dist,func)); - insert(dist); - insert(func); -} - -void Module::insert(ArrayDist *dist, LinkFunction *func) -{ - _obs_functions.push_back(pair(dist,func)); - insert(dist); - insert(func); -} - -void Module::insert(ArrayDist *dist, VectorFunction *func) -{ - _obs_functions.push_back(pair(dist,func)); - insert(dist); - insert(func); -} - -void Module::insert(ArrayDist *dist, ArrayFunction *func) -{ - _obs_functions.push_back(pair(dist,func)); - insert(dist); - insert(func); -} - -void Module::insert(SamplerFactory *fac) -{ - _sampler_factories.push_back(fac); -} - -void Module::insert(RNGFactory *fac) -{ - _rng_factories.push_back(fac); -} - -void Module::insert(MonitorFactory *fac) -{ - _monitor_factories.push_back(fac); -} - -void Module::load() -{ - if (_loaded) - return; - - for (unsigned int i = 0; i < _monitor_factories.size(); ++i) { - pair p(_monitor_factories[i], true); - Model::monitorFactories().push_front(p); - } - for (unsigned int i = 0; i < _rng_factories.size(); ++i) { - pair p(_rng_factories[i], true); - Model::rngFactories().push_front(p); - } - for (unsigned int i = 0; i < _sampler_factories.size(); ++i) { - pair p(_sampler_factories[i], true); - Model::samplerFactories().push_front(p); - } - for (unsigned int i = 0; i < _dp_list.size(); ++i) { - Compiler::distTab().insert(_dp_list[i]); - } - for (unsigned int i = 0; i < _fp_list.size(); ++i) { - Compiler::funcTab().insert(_fp_list[i]); - } - for (unsigned int i = 0; i < _obs_functions.size(); ++i) { - Compiler::obsFuncTab().insert(_obs_functions[i].first, - _obs_functions[i].second); - } - - _loaded = true; - loadedModules().push_back(this); -} - -void Module::unload() -{ - if (!_loaded) - return; - - loadedModules().remove(this); - _loaded = false; - - for (unsigned int i = 0; i < _fp_list.size(); ++i) { - Compiler::funcTab().erase(_fp_list[i]); - } - for (unsigned int i = 0; i < _obs_functions.size(); ++i) { - Compiler::obsFuncTab().erase(_obs_functions[i].first, - _obs_functions[i].second); - } - for (unsigned int i = 0; i < _distributions.size(); ++i) { - Compiler::distTab().erase(_dp_list[i]); - } - - list > &rngf = Model::rngFactories(); - for (unsigned int i = 0; i < _rng_factories.size(); ++i) { - RNGFactory *f = _rng_factories[i]; - rngf.remove(pair(f, true)); - rngf.remove(pair(f, false)); - } - - list > &sf = Model::samplerFactories(); - for (unsigned int i = 0; i < _sampler_factories.size(); ++i) { - SamplerFactory *f = _sampler_factories[i]; - sf.remove(pair(f, true)); - sf.remove(pair(f, false)); - } - - list > &mf = Model::monitorFactories(); - for (unsigned int i = 0; i < _monitor_factories.size(); ++i) { - MonitorFactory *f = _monitor_factories[i]; - mf.remove(pair(f, true)); - mf.remove(pair(f, false)); - } - -} - -vector const &Module::functions() const -{ - return _functions; -} - -vector const &Module::distributions() const -{ - return _distributions; -} - -vector const &Module::samplerFactories() const -{ - return _sampler_factories; -} - -vector const &Module::rngFactories() const -{ - return _rng_factories; -} - -vector const &Module::monitorFactories() const -{ - return _monitor_factories; -} - -string const &Module::name() const -{ - return _name; -} - -list &Module::modules() -{ - static list *_modules = new list; - return *_modules; -} - -list &Module::loadedModules() -{ - static list *_modules = new list; - return *_modules; -} - diff -Nru jags-3.4.0/src/lib/rng/Makefile.in jags-4.0.0/src/lib/rng/Makefile.in --- jags-3.4.0/src/lib/rng/Makefile.in 2013-08-30 13:23:27.000000000 +0000 +++ jags-4.0.0/src/lib/rng/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/lib/rng -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -62,6 +98,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -71,19 +108,44 @@ am_librng_la_OBJECTS = librng_la-RNG.lo librng_la-RmathRNG.lo \ librng_la-TruncatedNormal.lo librng_la_OBJECTS = $(am_librng_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(librng_la_SOURCES) DIST_SOURCES = $(librng_la_SOURCES) am__can_run_installinfo = \ @@ -91,11 +153,30 @@ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -109,6 +190,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -178,10 +262,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -266,7 +346,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/rng/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/lib/rng/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -287,14 +366,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + librng.la: $(librng_la_OBJECTS) $(librng_la_DEPENDENCIES) $(EXTRA_librng_la_DEPENDENCIES) - $(CXXLINK) $(librng_la_OBJECTS) $(librng_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(CXXLINK) $(librng_la_OBJECTS) $(librng_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -307,46 +389,49 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librng_la-TruncatedNormal.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< librng_la-RNG.lo: RNG.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(librng_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT librng_la-RNG.lo -MD -MP -MF $(DEPDIR)/librng_la-RNG.Tpo -c -o librng_la-RNG.lo `test -f 'RNG.cc' || echo '$(srcdir)/'`RNG.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/librng_la-RNG.Tpo $(DEPDIR)/librng_la-RNG.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RNG.cc' object='librng_la-RNG.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(librng_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT librng_la-RNG.lo -MD -MP -MF $(DEPDIR)/librng_la-RNG.Tpo -c -o librng_la-RNG.lo `test -f 'RNG.cc' || echo '$(srcdir)/'`RNG.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/librng_la-RNG.Tpo $(DEPDIR)/librng_la-RNG.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='RNG.cc' object='librng_la-RNG.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(librng_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o librng_la-RNG.lo `test -f 'RNG.cc' || echo '$(srcdir)/'`RNG.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(librng_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o librng_la-RNG.lo `test -f 'RNG.cc' || echo '$(srcdir)/'`RNG.cc librng_la-RmathRNG.lo: RmathRNG.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(librng_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT librng_la-RmathRNG.lo -MD -MP -MF $(DEPDIR)/librng_la-RmathRNG.Tpo -c -o librng_la-RmathRNG.lo `test -f 'RmathRNG.cc' || echo '$(srcdir)/'`RmathRNG.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/librng_la-RmathRNG.Tpo $(DEPDIR)/librng_la-RmathRNG.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RmathRNG.cc' object='librng_la-RmathRNG.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(librng_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT librng_la-RmathRNG.lo -MD -MP -MF $(DEPDIR)/librng_la-RmathRNG.Tpo -c -o librng_la-RmathRNG.lo `test -f 'RmathRNG.cc' || echo '$(srcdir)/'`RmathRNG.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/librng_la-RmathRNG.Tpo $(DEPDIR)/librng_la-RmathRNG.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='RmathRNG.cc' object='librng_la-RmathRNG.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(librng_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o librng_la-RmathRNG.lo `test -f 'RmathRNG.cc' || echo '$(srcdir)/'`RmathRNG.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(librng_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o librng_la-RmathRNG.lo `test -f 'RmathRNG.cc' || echo '$(srcdir)/'`RmathRNG.cc librng_la-TruncatedNormal.lo: TruncatedNormal.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(librng_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT librng_la-TruncatedNormal.lo -MD -MP -MF $(DEPDIR)/librng_la-TruncatedNormal.Tpo -c -o librng_la-TruncatedNormal.lo `test -f 'TruncatedNormal.cc' || echo '$(srcdir)/'`TruncatedNormal.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/librng_la-TruncatedNormal.Tpo $(DEPDIR)/librng_la-TruncatedNormal.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TruncatedNormal.cc' object='librng_la-TruncatedNormal.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(librng_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT librng_la-TruncatedNormal.lo -MD -MP -MF $(DEPDIR)/librng_la-TruncatedNormal.Tpo -c -o librng_la-TruncatedNormal.lo `test -f 'TruncatedNormal.cc' || echo '$(srcdir)/'`TruncatedNormal.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/librng_la-TruncatedNormal.Tpo $(DEPDIR)/librng_la-TruncatedNormal.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TruncatedNormal.cc' object='librng_la-TruncatedNormal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(librng_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o librng_la-TruncatedNormal.lo `test -f 'TruncatedNormal.cc' || echo '$(srcdir)/'`TruncatedNormal.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(librng_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o librng_la-TruncatedNormal.lo `test -f 'TruncatedNormal.cc' || echo '$(srcdir)/'`TruncatedNormal.cc mostlyclean-libtool: -rm -f *.lo @@ -354,26 +439,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -385,15 +459,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -402,6 +472,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -543,18 +628,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/lib/rng/RmathRNG.cc jags-4.0.0/src/lib/rng/RmathRNG.cc --- jags-3.4.0/src/lib/rng/RmathRNG.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/rng/RmathRNG.cc 2015-02-22 08:33:05.000000000 +0000 @@ -18,6 +18,8 @@ #define PI 3.141592653589793238462643383280 +namespace jags { + static inline double fmin2(double x, double y) { return (x < y) ? x : y; } @@ -303,3 +305,5 @@ throw logic_error("Bad exit from RmathRNG::normal"); return 0; } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/rng/RNG.cc jags-4.0.0/src/lib/rng/RNG.cc --- jags-3.4.0/src/lib/rng/RNG.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/rng/RNG.cc 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,8 @@ using std::string; +namespace jags { + RNG::RNG(string const &name) : _name(name) {} @@ -24,3 +26,5 @@ { return _name; } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/rng/TruncatedNormal.cc jags-4.0.0/src/lib/rng/TruncatedNormal.cc --- jags-3.4.0/src/lib/rng/TruncatedNormal.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/rng/TruncatedNormal.cc 2015-02-22 08:33:05.000000000 +0000 @@ -18,6 +18,8 @@ //sqrt(2*pi) #define STP 2.506628274631 +namespace jags { + //Calculates optimal scale parameter for exponential envelope static double Alpha(double mu) { @@ -164,3 +166,5 @@ double inormal(double left, double right, RNG *rng, double mu, double sigma) { return mu + sigma * inorm((left - mu)/sigma, (right - mu)/sigma, rng); } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/sampler/GraphView.cc jags-4.0.0/src/lib/sampler/GraphView.cc --- jags-3.4.0/src/lib/sampler/GraphView.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/sampler/GraphView.cc 2015-09-10 05:42:23.000000000 +0000 @@ -8,19 +8,20 @@ #include #include +#include #include #include #include using std::vector; using std::set; +using std::list; using std::runtime_error; using std::logic_error; using std::string; -using std::reverse; using std::copy; -static unsigned int sumLength(vector const &nodes) +static unsigned int sumLength(vector const &nodes) { //Adds up the length of a vector of stochastic nodes unsigned int n = 0; @@ -30,29 +31,32 @@ return n; } +namespace jags { + GraphView::GraphView(vector const &nodes, Graph const &graph, bool multilevel) : _length(sumLength(nodes)), _nodes(nodes), _stoch_children(0), _determ_children(0), _multilevel(false) { + //Sanity check on node + //FIXME: Could use a templated version of countChains here + for (unsigned int i = 1; i < nodes.size(); ++i) { + if (nodes[i]->nchain() != nodes[0]->nchain()) { + throw logic_error("Chain mismatch in GraphView"); + } + } classifyChildren(nodes, graph, _stoch_children, _determ_children, multilevel); } -GraphView::GraphView(StochasticNode * node, Graph const &graph) - : _length(node->length()), _nodes(vector(1,node)), - _stoch_children(0), _determ_children(0), _multilevel(false) -{ - classifyChildren(_nodes, graph, _stoch_children, _determ_children, false); -} - vector const &GraphView::nodes() const { return _nodes; } static bool classifyNode(StochasticNode *snode, Graph const &sample_graph, - set &sset) + set &sset, + list &slist) { // classification function for stochastic nodes @@ -61,6 +65,7 @@ if (sample_graph.contains(snode)) { sset.insert(snode); + slist.push_back(snode); return true; } else { @@ -68,10 +73,12 @@ } } -static bool classifyNode(DeterministicNode *dnode, Graph const &sample_graph, +static bool classifyNode(DeterministicNode *dnode, + Graph const &sample_graph, set &sset, + list &slist, set &dset, - vector &dvec) + list &dlist) { // Recursive classification function for deterministic nodes @@ -82,23 +89,23 @@ return true; bool informative = false; - set::const_iterator p; + list::const_iterator p; for (p = dnode->stochasticChildren()->begin(); p != dnode->stochasticChildren()->end(); ++p) { - if (classifyNode(*p, sample_graph, sset)) + if (classifyNode(*p, sample_graph, sset, slist)) informative = true; } - set::const_iterator q; + list::const_iterator q; for (q = dnode->deterministicChildren()->begin(); q != dnode->deterministicChildren()->end(); ++q) { - if (classifyNode(*q, sample_graph, sset, dset, dvec)) + if (classifyNode(*q, sample_graph, sset, slist, dset, dlist)) informative = true; } if (informative) { dset.insert(dnode); - dvec.push_back(dnode); + dlist.push_back(dnode); } return informative; } @@ -106,14 +113,14 @@ void GraphView::classifyChildren(vector const &nodes, Graph const &graph, - vector &stoch_nodes, + vector &stoch_nodes, vector &dtrm_nodes, bool multilevel) { - set dset; set sset; - - dtrm_nodes.clear(); + set dset; + list slist; + list dlist; /* Classify children of each node */ vector::const_iterator p; @@ -121,17 +128,17 @@ if (!graph.contains(*p)) { throw logic_error("Sampled node outside of sampling graph"); } - set const *sch = (*p)->stochasticChildren(); - for (set::const_iterator q = sch->begin(); + list const *sch = (*p)->stochasticChildren(); + for (list::const_iterator q = sch->begin(); q != sch->end(); ++q) { - classifyNode(*q, graph, sset); + classifyNode(*q, graph, sset, slist); } - set const *dch = (*p)->deterministicChildren(); - for (set::const_iterator q = dch->begin(); + list const *dch = (*p)->deterministicChildren(); + for (list::const_iterator q = dch->begin(); q != dch->end(); ++q) { - classifyNode(*q, graph, sset, dset, dtrm_nodes); + classifyNode(*q, graph, sset, slist, dset, dlist); } } @@ -141,7 +148,16 @@ AND the likelihood, causing incorrect calculation of the log full conditional */ for (p = nodes.begin(); p != nodes.end(); ++p) { - sset.erase(*p); + if (sset.count(*p)) { + list::iterator i = + find(slist.begin(), slist.end(), *p); + if (i == slist.end()) { + throw logic_error("error in ClassifyChildren"); + } + else { + slist.erase(i); + } + } } /* We also need ensure that we calculate the full log density @@ -155,17 +171,24 @@ throw logic_error("Invalid multilevel GraphView"); } } + } stoch_nodes.clear(); - for (set::const_iterator i = sset.begin(); - i != sset.end(); ++i) + for (list::const_iterator i = slist.begin(); + i != slist.end(); ++i) { - stoch_nodes.push_back(*i); + stoch_nodes.push_back(*i); } + dtrm_nodes.clear(); // Deterministic nodes are pushed onto dtrm_nodes in reverse order - reverse(dtrm_nodes.begin(), dtrm_nodes.end()); + for (list::reverse_iterator i = dlist.rbegin(); + i != dlist.rend(); ++i) + { + dtrm_nodes.push_back(*i); + } + } double GraphView::logFullConditional(unsigned int chain) const @@ -179,7 +202,7 @@ } double llike = 0.0; - vector::const_iterator q = _stoch_children.begin(); + vector::const_iterator q = _stoch_children.begin(); for (; q != _stoch_children.end(); ++q) { llike += (*q)->logDensity(chain, PDF_LIKELIHOOD); } @@ -264,7 +287,7 @@ { double llik = 0.0; - vector::const_iterator q = _stoch_children.begin(); + vector::const_iterator q = _stoch_children.begin(); for (; q != _stoch_children.end(); ++q) { llik += (*q)->logDensity(chain, PDF_LIKELIHOOD); } @@ -284,7 +307,7 @@ return llik; } -vector const &GraphView::stochasticChildren() const +vector const &GraphView::stochasticChildren() const { return _stoch_children; } @@ -295,7 +318,7 @@ } void GraphView::setValue(double const * value, unsigned int length, - unsigned int chain) const + unsigned int chain) const { if (length != _length) { throw logic_error("Argument length mismatch in GraphView::setValue"); @@ -315,25 +338,8 @@ void GraphView::setValue(vector const &value, unsigned int chain) const { - if (value.size() != _length) { - throw logic_error("Argument length mismatch in GraphView::setValue"); - } - - double *x = new double[value.size()]; - vector::const_iterator p = value.begin(); - for (unsigned int i = 0; i < _nodes.size(); ++i) { - Node *node = _nodes[i]; - unsigned int N = node->length(); - copy(p, p + N, x); - node->setValue(x, N, chain); - p += N; - } - delete [] x; - - for (vector::const_iterator p(_determ_children.begin()); - p != _determ_children.end(); ++p) { - (*p)->deterministicSample(chain); - } + //FIXME We could inline this + setValue(&value[0], value.size(), chain); } void GraphView::getValue(vector &value, unsigned int chain) const @@ -353,6 +359,7 @@ unsigned int GraphView::length() const { return _length; + } bool GraphView::isDependent(Node const *node) const @@ -368,27 +375,39 @@ return false; } -static void stochChildren(Node *node, Graph const &graph, - set &children) -{ - set const *sch = node->stochasticChildren(); - for (set::const_iterator p = sch->begin(); - p != sch->end(); ++p) - { - if (graph.contains(*p)) - children.insert(*p); - } - set const *dch = node->deterministicChildren(); - for (set::const_iterator p = dch->begin(); - p != dch->end(); ++p) - { - if (graph.contains(*p)) - stochChildren(*p, graph, children); - } -} - unsigned int nchain(GraphView const *gv) { return gv->nodes()[0]->nchain(); } + + void GraphView::checkFinite(unsigned int chain) const + { + + vector::const_iterator p = _nodes.begin(); + for ( ; p != _nodes.end(); ++p) + { + double ld = (*p)->logDensity(chain, PDF_PRIOR); + if (jags_isnan(ld)) { + throw NodeError(*p, "Error calculating log density"); + } + else if (ld == JAGS_NEGINF || (!jags_finite(ld) && ld < 0)) { + throw NodeError(*p, "Node inconsistent with parents"); + } + } + + + for (p =_stoch_children.begin(); p != _stoch_children.end(); ++p) + { + double ld = (*p)->logDensity(chain, PDF_PRIOR); + if (jags_isnan(ld)) { + throw NodeError(*p, "Error calculting log density"); + } + else if (ld == JAGS_NEGINF || (!jags_finite(ld) && ld < 0)) { + throw NodeError(*p, "Node inconsistent with parents"); + } + } + + } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/sampler/ImmutableSampleMethod.cc jags-4.0.0/src/lib/sampler/ImmutableSampleMethod.cc --- jags-3.4.0/src/lib/sampler/ImmutableSampleMethod.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/sampler/ImmutableSampleMethod.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,10 @@ +#include +#include + +namespace jags { + + ImmutableSampleMethod::~ImmutableSampleMethod() + { + } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/sampler/ImmutableSampler.cc jags-4.0.0/src/lib/sampler/ImmutableSampler.cc --- jags-3.4.0/src/lib/sampler/ImmutableSampler.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/sampler/ImmutableSampler.cc 2015-04-13 06:27:40.000000000 +0000 @@ -0,0 +1,51 @@ +#include +#include +//Needed for name +#include +//Needed for nchain +#include + +using std::vector; +using std::string; + +namespace jags { + + ImmutableSampler::ImmutableSampler(GraphView *gv, + ImmutableSampleMethod *method, + std::string const &name) + : Sampler(gv), _method(method), _nchain(nchain(gv)), _name(name) + { + } + + ImmutableSampler::~ImmutableSampler() + { + delete _method; + } + + void ImmutableSampler::update(vector const &rngs) + { + for (unsigned int ch = 0; ch < _nchain; ++ch) { + _method->update(ch, rngs[ch]); + } + } + + bool ImmutableSampler::isAdaptive() const + { + return false; + } + + void ImmutableSampler::adaptOff() + { + } + + bool ImmutableSampler::checkAdaptation() const + { + return true; + } + + string ImmutableSampler::name() const + { + return _name; + } + +} diff -Nru jags-3.4.0/src/lib/sampler/Linear.cc jags-4.0.0/src/lib/sampler/Linear.cc --- jags-3.4.0/src/lib/sampler/Linear.cc 2012-11-20 16:07:37.000000000 +0000 +++ jags-4.0.0/src/lib/sampler/Linear.cc 2015-09-10 05:42:23.000000000 +0000 @@ -1,6 +1,7 @@ #include #include #include +#include #include #include #include @@ -10,6 +11,9 @@ using std::vector; using std::set; +using std::list; + +namespace jags { typedef bool (DeterministicNode::*NodeCheckFn) (GraphMarks const&, bool) const; @@ -18,22 +22,81 @@ return dynamic_cast(dnode) != 0; } + bool checkAdditive(SingletonGraphView const *sgv, bool fixed) + { + vector const &dn = sgv->deterministicChildren(); + set ancestors; + ancestors.insert(sgv->node()); + for (unsigned int i = 0; i < dn.size(); ++i) { + if(dn[i]->isClosed(ancestors, DNODE_ADDITIVE, fixed)) { + ancestors.insert(dn[i]); + } + else { + return false; + } + } + return true; + } + + bool checkAdditive(vector const &snodes, + Graph const &graph, bool fixed) + { + //A GraphView is additive if every SingletonGraphview for each + //sampled node in the same graph is additive. + for (unsigned int i = 0; i < snodes.size(); ++i) { + SingletonGraphView sgv(snodes[i], graph); + if (!checkAdditive(&sgv, false)) return false; + } + + if (!fixed) return true; + + //If we want to ensure that the additive function has a fixed + //intercept, we need to ensure that all parent nodes of + //deterministic children are either additive nodes themselves + //or are fixed. + + set ancestors; + //Sampled nodes are trivial (fixed) additive functions of themselves +#ifndef _RWSTD_NO_MEMBER_TEMPLATES + ancestors.insert(snodes.begin(), snodes.end()); +#else + //Workaround for Solaris libCstd + for (vector::const_iterator p = + snodes.begin(); p != snodes.end(); ++p) + { + ancestors.insert(*p); + } +#endif + + GraphView gv(snodes, graph); + vector const &dn = gv.deterministicChildren(); + for (unsigned int j = 0; j < dn.size(); ++j) { + vector parj = dn[j]->parents(); + for (unsigned int k = 0; k < parj.size(); ++k) { + if (ancestors.count(parj[k]) == 0 && !parj[k]->isFixed()) { + return false; + } + } + ancestors.insert(dn[j]); + } + return true; + } + bool checkLinear(GraphView const *gv, bool fixed, bool link) { - vector const &sn = gv->stochasticChildren(); vector const &dn = gv->deterministicChildren(); set ancestors; //Sampled nodes are trivial (fixed) linear functions of themselves -#ifdef _RWSTD_NO_MEMBER_TEMPLATES +#ifndef _RWSTD_NO_MEMBER_TEMPLATES + ancestors.insert(gv->nodes().begin(), gv->nodes().end()); +#else //Workaround for Solaris libCstd for (vector::const_iterator p = gv->nodes().begin(); p != gv->nodes().end(); ++p) { ancestors.insert(*p); } -#else - ancestors.insert(gv->nodes().begin(), gv->nodes().end()); #endif for (unsigned int j = 0; j < dn.size(); ++j) { @@ -43,8 +106,19 @@ else if (link && isLink(dn[j])) { // A link function is allowed if no other deterministic // nodes in the GraphView depend on it. + set dset; + list const *dc = dn[j]->deterministicChildren(); +#ifndef _RWSTD_NO_MEMBER_TEMPLATES + dset.insert(dc->begin(), dc->end()); +#else + for (list::const_iterator p = dc->begin(); + p != dc->end(); ++p) + { + dset.insert(*p); + } +#endif for (unsigned int k = j + 1; k < dn.size(); ++k) { - if (dn[j]->deterministicChildren()->count(dn[k])) { + if (dset.count(dn[k])) { return false; } } @@ -109,15 +183,15 @@ { set ancestors; -#ifdef _RWSTD_NO_MEMBER_TEMPLATES +#ifndef _RWSTD_NO_MEMBER_TEMPLATES + ancestors.insert(gv->nodes().begin(), gv->nodes().end()); +#else //Workaround for Solaris libCstd for (vector::const_iterator p = gv->nodes().begin(); p != gv->nodes().end(); ++p) { ancestors.insert(*p); } -#else - ancestors.insert(gv->nodes().begin(), gv->nodes().end()); #endif vector const &dnodes = gv->deterministicChildren(); @@ -132,3 +206,5 @@ return true; } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/sampler/Makefile.am jags-4.0.0/src/lib/sampler/Makefile.am --- jags-3.4.0/src/lib/sampler/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/sampler/Makefile.am 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,6 @@ libsampler_la_CPPFLAGS = -I$(top_srcdir)/src/include libsampler_la_SOURCES = Sampler.cc GraphView.cc Slicer.cc \ -Metropolis.cc RWMetropolis.cc ParallelSampler.cc SampleMethod.cc \ +Metropolis.cc RWMetropolis.cc MutableSampleMethod.cc ImmutableSampleMethod.cc \ Linear.cc SamplerFactory.cc SingletonFactory.cc StepAdapter.cc \ -TemperedMetropolis.cc +TemperedMetropolis.cc MutableSampler.cc ImmutableSampler.cc diff -Nru jags-3.4.0/src/lib/sampler/Makefile.in jags-4.0.0/src/lib/sampler/Makefile.in --- jags-3.4.0/src/lib/sampler/Makefile.in 2013-08-30 13:23:27.000000000 +0000 +++ jags-4.0.0/src/lib/sampler/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/lib/sampler -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -62,6 +98,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -71,24 +108,52 @@ am_libsampler_la_OBJECTS = libsampler_la-Sampler.lo \ libsampler_la-GraphView.lo libsampler_la-Slicer.lo \ libsampler_la-Metropolis.lo libsampler_la-RWMetropolis.lo \ - libsampler_la-ParallelSampler.lo libsampler_la-SampleMethod.lo \ - libsampler_la-Linear.lo libsampler_la-SamplerFactory.lo \ + libsampler_la-MutableSampleMethod.lo \ + libsampler_la-ImmutableSampleMethod.lo libsampler_la-Linear.lo \ + libsampler_la-SamplerFactory.lo \ libsampler_la-SingletonFactory.lo libsampler_la-StepAdapter.lo \ - libsampler_la-TemperedMetropolis.lo + libsampler_la-TemperedMetropolis.lo \ + libsampler_la-MutableSampler.lo \ + libsampler_la-ImmutableSampler.lo libsampler_la_OBJECTS = $(am_libsampler_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(libsampler_la_SOURCES) DIST_SOURCES = $(libsampler_la_SOURCES) am__can_run_installinfo = \ @@ -96,11 +161,30 @@ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -114,6 +198,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -183,10 +270,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -255,9 +338,9 @@ noinst_LTLIBRARIES = libsampler.la libsampler_la_CPPFLAGS = -I$(top_srcdir)/src/include libsampler_la_SOURCES = Sampler.cc GraphView.cc Slicer.cc \ -Metropolis.cc RWMetropolis.cc ParallelSampler.cc SampleMethod.cc \ +Metropolis.cc RWMetropolis.cc MutableSampleMethod.cc ImmutableSampleMethod.cc \ Linear.cc SamplerFactory.cc SingletonFactory.cc StepAdapter.cc \ -TemperedMetropolis.cc +TemperedMetropolis.cc MutableSampler.cc ImmutableSampler.cc all: all-am @@ -275,7 +358,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/sampler/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/lib/sampler/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -296,14 +378,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libsampler.la: $(libsampler_la_OBJECTS) $(libsampler_la_DEPENDENCIES) $(EXTRA_libsampler_la_DEPENDENCIES) - $(CXXLINK) $(libsampler_la_OBJECTS) $(libsampler_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(CXXLINK) $(libsampler_la_OBJECTS) $(libsampler_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -312,11 +397,13 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsampler_la-GraphView.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsampler_la-ImmutableSampleMethod.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsampler_la-ImmutableSampler.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsampler_la-Linear.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsampler_la-Metropolis.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsampler_la-ParallelSampler.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsampler_la-MutableSampleMethod.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsampler_la-MutableSampler.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsampler_la-RWMetropolis.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsampler_la-SampleMethod.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsampler_la-Sampler.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsampler_la-SamplerFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsampler_la-SingletonFactory.Plo@am__quote@ @@ -325,109 +412,126 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsampler_la-TemperedMetropolis.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< libsampler_la-Sampler.lo: Sampler.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-Sampler.lo -MD -MP -MF $(DEPDIR)/libsampler_la-Sampler.Tpo -c -o libsampler_la-Sampler.lo `test -f 'Sampler.cc' || echo '$(srcdir)/'`Sampler.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsampler_la-Sampler.Tpo $(DEPDIR)/libsampler_la-Sampler.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Sampler.cc' object='libsampler_la-Sampler.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-Sampler.lo -MD -MP -MF $(DEPDIR)/libsampler_la-Sampler.Tpo -c -o libsampler_la-Sampler.lo `test -f 'Sampler.cc' || echo '$(srcdir)/'`Sampler.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsampler_la-Sampler.Tpo $(DEPDIR)/libsampler_la-Sampler.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Sampler.cc' object='libsampler_la-Sampler.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-Sampler.lo `test -f 'Sampler.cc' || echo '$(srcdir)/'`Sampler.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-Sampler.lo `test -f 'Sampler.cc' || echo '$(srcdir)/'`Sampler.cc libsampler_la-GraphView.lo: GraphView.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-GraphView.lo -MD -MP -MF $(DEPDIR)/libsampler_la-GraphView.Tpo -c -o libsampler_la-GraphView.lo `test -f 'GraphView.cc' || echo '$(srcdir)/'`GraphView.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsampler_la-GraphView.Tpo $(DEPDIR)/libsampler_la-GraphView.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GraphView.cc' object='libsampler_la-GraphView.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-GraphView.lo -MD -MP -MF $(DEPDIR)/libsampler_la-GraphView.Tpo -c -o libsampler_la-GraphView.lo `test -f 'GraphView.cc' || echo '$(srcdir)/'`GraphView.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsampler_la-GraphView.Tpo $(DEPDIR)/libsampler_la-GraphView.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GraphView.cc' object='libsampler_la-GraphView.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-GraphView.lo `test -f 'GraphView.cc' || echo '$(srcdir)/'`GraphView.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-GraphView.lo `test -f 'GraphView.cc' || echo '$(srcdir)/'`GraphView.cc libsampler_la-Slicer.lo: Slicer.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-Slicer.lo -MD -MP -MF $(DEPDIR)/libsampler_la-Slicer.Tpo -c -o libsampler_la-Slicer.lo `test -f 'Slicer.cc' || echo '$(srcdir)/'`Slicer.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsampler_la-Slicer.Tpo $(DEPDIR)/libsampler_la-Slicer.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Slicer.cc' object='libsampler_la-Slicer.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-Slicer.lo -MD -MP -MF $(DEPDIR)/libsampler_la-Slicer.Tpo -c -o libsampler_la-Slicer.lo `test -f 'Slicer.cc' || echo '$(srcdir)/'`Slicer.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsampler_la-Slicer.Tpo $(DEPDIR)/libsampler_la-Slicer.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Slicer.cc' object='libsampler_la-Slicer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-Slicer.lo `test -f 'Slicer.cc' || echo '$(srcdir)/'`Slicer.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-Slicer.lo `test -f 'Slicer.cc' || echo '$(srcdir)/'`Slicer.cc libsampler_la-Metropolis.lo: Metropolis.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-Metropolis.lo -MD -MP -MF $(DEPDIR)/libsampler_la-Metropolis.Tpo -c -o libsampler_la-Metropolis.lo `test -f 'Metropolis.cc' || echo '$(srcdir)/'`Metropolis.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsampler_la-Metropolis.Tpo $(DEPDIR)/libsampler_la-Metropolis.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Metropolis.cc' object='libsampler_la-Metropolis.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-Metropolis.lo -MD -MP -MF $(DEPDIR)/libsampler_la-Metropolis.Tpo -c -o libsampler_la-Metropolis.lo `test -f 'Metropolis.cc' || echo '$(srcdir)/'`Metropolis.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsampler_la-Metropolis.Tpo $(DEPDIR)/libsampler_la-Metropolis.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Metropolis.cc' object='libsampler_la-Metropolis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-Metropolis.lo `test -f 'Metropolis.cc' || echo '$(srcdir)/'`Metropolis.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-Metropolis.lo `test -f 'Metropolis.cc' || echo '$(srcdir)/'`Metropolis.cc libsampler_la-RWMetropolis.lo: RWMetropolis.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-RWMetropolis.lo -MD -MP -MF $(DEPDIR)/libsampler_la-RWMetropolis.Tpo -c -o libsampler_la-RWMetropolis.lo `test -f 'RWMetropolis.cc' || echo '$(srcdir)/'`RWMetropolis.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsampler_la-RWMetropolis.Tpo $(DEPDIR)/libsampler_la-RWMetropolis.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RWMetropolis.cc' object='libsampler_la-RWMetropolis.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-RWMetropolis.lo -MD -MP -MF $(DEPDIR)/libsampler_la-RWMetropolis.Tpo -c -o libsampler_la-RWMetropolis.lo `test -f 'RWMetropolis.cc' || echo '$(srcdir)/'`RWMetropolis.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsampler_la-RWMetropolis.Tpo $(DEPDIR)/libsampler_la-RWMetropolis.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='RWMetropolis.cc' object='libsampler_la-RWMetropolis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-RWMetropolis.lo `test -f 'RWMetropolis.cc' || echo '$(srcdir)/'`RWMetropolis.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-RWMetropolis.lo `test -f 'RWMetropolis.cc' || echo '$(srcdir)/'`RWMetropolis.cc -libsampler_la-ParallelSampler.lo: ParallelSampler.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-ParallelSampler.lo -MD -MP -MF $(DEPDIR)/libsampler_la-ParallelSampler.Tpo -c -o libsampler_la-ParallelSampler.lo `test -f 'ParallelSampler.cc' || echo '$(srcdir)/'`ParallelSampler.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsampler_la-ParallelSampler.Tpo $(DEPDIR)/libsampler_la-ParallelSampler.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ParallelSampler.cc' object='libsampler_la-ParallelSampler.lo' libtool=yes @AMDEPBACKSLASH@ +libsampler_la-MutableSampleMethod.lo: MutableSampleMethod.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-MutableSampleMethod.lo -MD -MP -MF $(DEPDIR)/libsampler_la-MutableSampleMethod.Tpo -c -o libsampler_la-MutableSampleMethod.lo `test -f 'MutableSampleMethod.cc' || echo '$(srcdir)/'`MutableSampleMethod.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsampler_la-MutableSampleMethod.Tpo $(DEPDIR)/libsampler_la-MutableSampleMethod.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MutableSampleMethod.cc' object='libsampler_la-MutableSampleMethod.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-ParallelSampler.lo `test -f 'ParallelSampler.cc' || echo '$(srcdir)/'`ParallelSampler.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-MutableSampleMethod.lo `test -f 'MutableSampleMethod.cc' || echo '$(srcdir)/'`MutableSampleMethod.cc -libsampler_la-SampleMethod.lo: SampleMethod.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-SampleMethod.lo -MD -MP -MF $(DEPDIR)/libsampler_la-SampleMethod.Tpo -c -o libsampler_la-SampleMethod.lo `test -f 'SampleMethod.cc' || echo '$(srcdir)/'`SampleMethod.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsampler_la-SampleMethod.Tpo $(DEPDIR)/libsampler_la-SampleMethod.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SampleMethod.cc' object='libsampler_la-SampleMethod.lo' libtool=yes @AMDEPBACKSLASH@ +libsampler_la-ImmutableSampleMethod.lo: ImmutableSampleMethod.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-ImmutableSampleMethod.lo -MD -MP -MF $(DEPDIR)/libsampler_la-ImmutableSampleMethod.Tpo -c -o libsampler_la-ImmutableSampleMethod.lo `test -f 'ImmutableSampleMethod.cc' || echo '$(srcdir)/'`ImmutableSampleMethod.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsampler_la-ImmutableSampleMethod.Tpo $(DEPDIR)/libsampler_la-ImmutableSampleMethod.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ImmutableSampleMethod.cc' object='libsampler_la-ImmutableSampleMethod.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-SampleMethod.lo `test -f 'SampleMethod.cc' || echo '$(srcdir)/'`SampleMethod.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-ImmutableSampleMethod.lo `test -f 'ImmutableSampleMethod.cc' || echo '$(srcdir)/'`ImmutableSampleMethod.cc libsampler_la-Linear.lo: Linear.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-Linear.lo -MD -MP -MF $(DEPDIR)/libsampler_la-Linear.Tpo -c -o libsampler_la-Linear.lo `test -f 'Linear.cc' || echo '$(srcdir)/'`Linear.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsampler_la-Linear.Tpo $(DEPDIR)/libsampler_la-Linear.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Linear.cc' object='libsampler_la-Linear.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-Linear.lo -MD -MP -MF $(DEPDIR)/libsampler_la-Linear.Tpo -c -o libsampler_la-Linear.lo `test -f 'Linear.cc' || echo '$(srcdir)/'`Linear.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsampler_la-Linear.Tpo $(DEPDIR)/libsampler_la-Linear.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Linear.cc' object='libsampler_la-Linear.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-Linear.lo `test -f 'Linear.cc' || echo '$(srcdir)/'`Linear.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-Linear.lo `test -f 'Linear.cc' || echo '$(srcdir)/'`Linear.cc libsampler_la-SamplerFactory.lo: SamplerFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-SamplerFactory.lo -MD -MP -MF $(DEPDIR)/libsampler_la-SamplerFactory.Tpo -c -o libsampler_la-SamplerFactory.lo `test -f 'SamplerFactory.cc' || echo '$(srcdir)/'`SamplerFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsampler_la-SamplerFactory.Tpo $(DEPDIR)/libsampler_la-SamplerFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SamplerFactory.cc' object='libsampler_la-SamplerFactory.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-SamplerFactory.lo -MD -MP -MF $(DEPDIR)/libsampler_la-SamplerFactory.Tpo -c -o libsampler_la-SamplerFactory.lo `test -f 'SamplerFactory.cc' || echo '$(srcdir)/'`SamplerFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsampler_la-SamplerFactory.Tpo $(DEPDIR)/libsampler_la-SamplerFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SamplerFactory.cc' object='libsampler_la-SamplerFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-SamplerFactory.lo `test -f 'SamplerFactory.cc' || echo '$(srcdir)/'`SamplerFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-SamplerFactory.lo `test -f 'SamplerFactory.cc' || echo '$(srcdir)/'`SamplerFactory.cc libsampler_la-SingletonFactory.lo: SingletonFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-SingletonFactory.lo -MD -MP -MF $(DEPDIR)/libsampler_la-SingletonFactory.Tpo -c -o libsampler_la-SingletonFactory.lo `test -f 'SingletonFactory.cc' || echo '$(srcdir)/'`SingletonFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsampler_la-SingletonFactory.Tpo $(DEPDIR)/libsampler_la-SingletonFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SingletonFactory.cc' object='libsampler_la-SingletonFactory.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-SingletonFactory.lo -MD -MP -MF $(DEPDIR)/libsampler_la-SingletonFactory.Tpo -c -o libsampler_la-SingletonFactory.lo `test -f 'SingletonFactory.cc' || echo '$(srcdir)/'`SingletonFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsampler_la-SingletonFactory.Tpo $(DEPDIR)/libsampler_la-SingletonFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SingletonFactory.cc' object='libsampler_la-SingletonFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-SingletonFactory.lo `test -f 'SingletonFactory.cc' || echo '$(srcdir)/'`SingletonFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-SingletonFactory.lo `test -f 'SingletonFactory.cc' || echo '$(srcdir)/'`SingletonFactory.cc libsampler_la-StepAdapter.lo: StepAdapter.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-StepAdapter.lo -MD -MP -MF $(DEPDIR)/libsampler_la-StepAdapter.Tpo -c -o libsampler_la-StepAdapter.lo `test -f 'StepAdapter.cc' || echo '$(srcdir)/'`StepAdapter.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsampler_la-StepAdapter.Tpo $(DEPDIR)/libsampler_la-StepAdapter.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='StepAdapter.cc' object='libsampler_la-StepAdapter.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-StepAdapter.lo -MD -MP -MF $(DEPDIR)/libsampler_la-StepAdapter.Tpo -c -o libsampler_la-StepAdapter.lo `test -f 'StepAdapter.cc' || echo '$(srcdir)/'`StepAdapter.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsampler_la-StepAdapter.Tpo $(DEPDIR)/libsampler_la-StepAdapter.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='StepAdapter.cc' object='libsampler_la-StepAdapter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-StepAdapter.lo `test -f 'StepAdapter.cc' || echo '$(srcdir)/'`StepAdapter.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-StepAdapter.lo `test -f 'StepAdapter.cc' || echo '$(srcdir)/'`StepAdapter.cc libsampler_la-TemperedMetropolis.lo: TemperedMetropolis.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-TemperedMetropolis.lo -MD -MP -MF $(DEPDIR)/libsampler_la-TemperedMetropolis.Tpo -c -o libsampler_la-TemperedMetropolis.lo `test -f 'TemperedMetropolis.cc' || echo '$(srcdir)/'`TemperedMetropolis.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsampler_la-TemperedMetropolis.Tpo $(DEPDIR)/libsampler_la-TemperedMetropolis.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TemperedMetropolis.cc' object='libsampler_la-TemperedMetropolis.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-TemperedMetropolis.lo -MD -MP -MF $(DEPDIR)/libsampler_la-TemperedMetropolis.Tpo -c -o libsampler_la-TemperedMetropolis.lo `test -f 'TemperedMetropolis.cc' || echo '$(srcdir)/'`TemperedMetropolis.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsampler_la-TemperedMetropolis.Tpo $(DEPDIR)/libsampler_la-TemperedMetropolis.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TemperedMetropolis.cc' object='libsampler_la-TemperedMetropolis.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-TemperedMetropolis.lo `test -f 'TemperedMetropolis.cc' || echo '$(srcdir)/'`TemperedMetropolis.cc + +libsampler_la-MutableSampler.lo: MutableSampler.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-MutableSampler.lo -MD -MP -MF $(DEPDIR)/libsampler_la-MutableSampler.Tpo -c -o libsampler_la-MutableSampler.lo `test -f 'MutableSampler.cc' || echo '$(srcdir)/'`MutableSampler.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsampler_la-MutableSampler.Tpo $(DEPDIR)/libsampler_la-MutableSampler.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MutableSampler.cc' object='libsampler_la-MutableSampler.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-MutableSampler.lo `test -f 'MutableSampler.cc' || echo '$(srcdir)/'`MutableSampler.cc + +libsampler_la-ImmutableSampler.lo: ImmutableSampler.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsampler_la-ImmutableSampler.lo -MD -MP -MF $(DEPDIR)/libsampler_la-ImmutableSampler.Tpo -c -o libsampler_la-ImmutableSampler.lo `test -f 'ImmutableSampler.cc' || echo '$(srcdir)/'`ImmutableSampler.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsampler_la-ImmutableSampler.Tpo $(DEPDIR)/libsampler_la-ImmutableSampler.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ImmutableSampler.cc' object='libsampler_la-ImmutableSampler.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-TemperedMetropolis.lo `test -f 'TemperedMetropolis.cc' || echo '$(srcdir)/'`TemperedMetropolis.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsampler_la-ImmutableSampler.lo `test -f 'ImmutableSampler.cc' || echo '$(srcdir)/'`ImmutableSampler.cc mostlyclean-libtool: -rm -f *.lo @@ -435,26 +539,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -466,15 +559,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -483,6 +572,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -624,18 +728,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/lib/sampler/Metropolis.cc jags-4.0.0/src/lib/sampler/Metropolis.cc --- jags-3.4.0/src/lib/sampler/Metropolis.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/sampler/Metropolis.cc 2015-02-22 08:33:05.000000000 +0000 @@ -10,6 +10,8 @@ using std::copy; using std::min; +namespace jags { + Metropolis::Metropolis(vector const &value) : _last_value(value), _adapt(true) { @@ -51,3 +53,4 @@ return _last_value.size(); } +} //namespace jags diff -Nru jags-3.4.0/src/lib/sampler/MutableSampleMethod.cc jags-4.0.0/src/lib/sampler/MutableSampleMethod.cc --- jags-3.4.0/src/lib/sampler/MutableSampleMethod.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/sampler/MutableSampleMethod.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,10 @@ +#include +#include + +namespace jags { + + MutableSampleMethod::~MutableSampleMethod() + { + } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/sampler/MutableSampler.cc jags-4.0.0/src/lib/sampler/MutableSampler.cc --- jags-3.4.0/src/lib/sampler/MutableSampler.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/sampler/MutableSampler.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,65 @@ +#include +#include +#include +#include + +#include + +using std::vector; +using std::logic_error; +using std::string; + +namespace jags { + + MutableSampler::MutableSampler(GraphView *gv, + vector const &methods, + std::string const &name) + : Sampler(gv), _methods(methods), _name(name) + { + } + + MutableSampler::~MutableSampler() + { + for (unsigned int ch = 0; ch < _methods.size(); ++ch) { + delete _methods[ch]; + } + } + + void MutableSampler::update(vector const &rngs) + { + for (unsigned int ch = 0; ch < rngs.size(); ++ch) { + _methods[ch]->update(rngs[ch]); + } + } + + void MutableSampler::adaptOff() + { + for (unsigned int ch = 0; ch < _methods.size(); ++ch) { + _methods[ch]->adaptOff(); + } + } + + bool MutableSampler::checkAdaptation() const + { + for (unsigned int ch = 0; ch < _methods.size(); ++ch) { + if (!_methods[ch]->checkAdaptation()) return false; + } + return true; + } + + + bool MutableSampler::isAdaptive() const + { + for (unsigned int ch = 0; ch < _methods.size(); ++ch) { + if (_methods[ch]->isAdaptive()) + return true; + } + return false; + } + + string MutableSampler::name() const + { + return _name; + } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/sampler/ParallelSampler.cc jags-4.0.0/src/lib/sampler/ParallelSampler.cc --- jags-3.4.0/src/lib/sampler/ParallelSampler.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/sampler/ParallelSampler.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ -#include -#include -#include -#include - -#include - -using std::vector; -using std::logic_error; -using std::string; - -ParallelSampler::ParallelSampler(GraphView *gv, - vector const &methods) - : Sampler(gv), _methods(methods) -{ - for (unsigned int i = 0; i < gv->nodes().size(); ++i) { - if (gv->nodes()[i]->nchain() != methods.size()) { - throw logic_error("Chain mismatch in ParallelSampler"); - } - } -} - -ParallelSampler::~ParallelSampler() -{ - for (unsigned int ch = 0; ch < _methods.size(); ++ch) { - delete _methods[ch]; - } -} - -void ParallelSampler::update(vector const &rngs) -{ - for (unsigned int ch = 0; ch < rngs.size(); ++ch) { - _methods[ch]->update(rngs[ch]); - } -} - -void ParallelSampler::adaptOff() -{ - for (unsigned int ch = 0; ch < _methods.size(); ++ch) { - _methods[ch]->adaptOff(); - } -} - -bool ParallelSampler::checkAdaptation() const -{ - for (unsigned int ch = 0; ch < _methods.size(); ++ch) { - if (!_methods[ch]->checkAdaptation()) return false; - } - return true; -} - - -bool ParallelSampler::isAdaptive() const -{ - for (unsigned int ch = 0; ch < _methods.size(); ++ch) { - if (_methods[ch]->isAdaptive()) - return true; - } - return false; -} - -string ParallelSampler::name() const -{ - return _methods[0]->name(); -} diff -Nru jags-3.4.0/src/lib/sampler/RWMetropolis.cc jags-4.0.0/src/lib/sampler/RWMetropolis.cc --- jags-3.4.0/src/lib/sampler/RWMetropolis.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/sampler/RWMetropolis.cc 2015-02-22 08:33:05.000000000 +0000 @@ -10,6 +10,8 @@ using std::exp; using std::fabs; +namespace jags { + RWMetropolis::RWMetropolis(vector const &value, double step, double prob) : Metropolis(value), _step_adapter(step, prob), _pmean(0), _niter(2) @@ -65,3 +67,5 @@ { return 0; } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/sampler/SampleMethod.cc jags-4.0.0/src/lib/sampler/SampleMethod.cc --- jags-3.4.0/src/lib/sampler/SampleMethod.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/sampler/SampleMethod.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -#include -#include - -SampleMethod::~SampleMethod() -{ -} diff -Nru jags-3.4.0/src/lib/sampler/Sampler.cc jags-4.0.0/src/lib/sampler/Sampler.cc --- jags-3.4.0/src/lib/sampler/Sampler.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/sampler/Sampler.cc 2015-02-22 08:33:05.000000000 +0000 @@ -4,6 +4,8 @@ using std::vector; +namespace jags { + Sampler::Sampler(GraphView *gv) : _gv(gv) { @@ -18,3 +20,5 @@ { return _gv->nodes(); } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/sampler/SamplerFactory.cc jags-4.0.0/src/lib/sampler/SamplerFactory.cc --- jags-3.4.0/src/lib/sampler/SamplerFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/sampler/SamplerFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -4,6 +4,10 @@ /* We must have a real destructor, even though it doesn't do anything, * otherwise the destructors for child classes never get called */ +namespace jags { + SamplerFactory::~SamplerFactory() { } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/sampler/SingletonFactory.cc jags-4.0.0/src/lib/sampler/SingletonFactory.cc --- jags-3.4.0/src/lib/sampler/SingletonFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/sampler/SingletonFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -3,14 +3,17 @@ #include using std::vector; -using std::set; +using std::list; + +namespace jags { vector -SingletonFactory::makeSamplers(set const &nodes, +SingletonFactory::makeSamplers(list const &nodes, Graph const &graph) const { vector samplers; - for (set::iterator p = nodes.begin();p != nodes.end(); ++p) + for (list::const_iterator p = nodes.begin(); + p != nodes.end(); ++p) { if (canSample(*p, graph)) { samplers.push_back(makeSampler(*p, graph)); @@ -18,3 +21,5 @@ } return samplers; } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/sampler/Slicer.cc jags-4.0.0/src/lib/sampler/Slicer.cc --- jags-3.4.0/src/lib/sampler/Slicer.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/sampler/Slicer.cc 2015-02-22 08:33:05.000000000 +0000 @@ -14,6 +14,8 @@ using std::fabs; using std::runtime_error; +namespace jags { + Slicer::Slicer(double width, unsigned int max) : _width(width), _adapt(true), _max(max), _sumdiff(0), _iter(0), _state(SLICER_OK) @@ -277,3 +279,5 @@ { return _state; } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/sampler/StepAdapter.cc jags-4.0.0/src/lib/sampler/StepAdapter.cc --- jags-3.4.0/src/lib/sampler/StepAdapter.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/sampler/StepAdapter.cc 2015-09-10 05:42:23.000000000 +0000 @@ -4,6 +4,7 @@ #include #include #include +#include using std::min; using std::log; @@ -19,6 +20,8 @@ */ #define INITIAL_N 10 +namespace jags { + StepAdapter::StepAdapter(double step, double prob) : _prob(prob), _lstep(log(step)), _p_over_target(false), _n(INITIAL_N) { @@ -52,3 +55,5 @@ return logit_target - logit_p; } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/sampler/TemperedMetropolis.cc jags-4.0.0/src/lib/sampler/TemperedMetropolis.cc --- jags-3.4.0/src/lib/sampler/TemperedMetropolis.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/sampler/TemperedMetropolis.cc 2015-02-22 08:33:05.000000000 +0000 @@ -24,6 +24,8 @@ return pwr; } +namespace jags { + TemperedMetropolis::TemperedMetropolis(vector const &value, int max_level, double max_temp, unsigned int nrep) @@ -151,3 +153,5 @@ { return 0; } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/sarray/Makefile.am jags-4.0.0/src/lib/sarray/Makefile.am --- jags-3.4.0/src/lib/sarray/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/sarray/Makefile.am 2015-02-22 08:33:05.000000000 +0000 @@ -2,5 +2,5 @@ libsarray_la_CPPFLAGS = -I$(top_srcdir)/src/include -libsarray_la_SOURCES = Range.cc RangeIterator.cc SArray.cc +libsarray_la_SOURCES = Range.cc SimpleRange.cc RangeIterator.cc SArray.cc diff -Nru jags-3.4.0/src/lib/sarray/Makefile.in jags-4.0.0/src/lib/sarray/Makefile.in --- jags-3.4.0/src/lib/sarray/Makefile.in 2013-08-30 13:23:27.000000000 +0000 +++ jags-4.0.0/src/lib/sarray/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/lib/sarray -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -62,6 +98,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -69,21 +106,47 @@ LTLIBRARIES = $(noinst_LTLIBRARIES) libsarray_la_LIBADD = am_libsarray_la_OBJECTS = libsarray_la-Range.lo \ - libsarray_la-RangeIterator.lo libsarray_la-SArray.lo + libsarray_la-SimpleRange.lo libsarray_la-RangeIterator.lo \ + libsarray_la-SArray.lo libsarray_la_OBJECTS = $(am_libsarray_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(libsarray_la_SOURCES) DIST_SOURCES = $(libsarray_la_SOURCES) am__can_run_installinfo = \ @@ -91,11 +154,30 @@ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -109,6 +191,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -178,10 +263,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -249,7 +330,7 @@ top_srcdir = @top_srcdir@ noinst_LTLIBRARIES = libsarray.la libsarray_la_CPPFLAGS = -I$(top_srcdir)/src/include -libsarray_la_SOURCES = Range.cc RangeIterator.cc SArray.cc +libsarray_la_SOURCES = Range.cc SimpleRange.cc RangeIterator.cc SArray.cc all: all-am .SUFFIXES: @@ -266,7 +347,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/sarray/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/lib/sarray/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -287,14 +367,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libsarray.la: $(libsarray_la_OBJECTS) $(libsarray_la_DEPENDENCIES) $(EXTRA_libsarray_la_DEPENDENCIES) - $(CXXLINK) $(libsarray_la_OBJECTS) $(libsarray_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(CXXLINK) $(libsarray_la_OBJECTS) $(libsarray_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -305,48 +388,59 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsarray_la-Range.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsarray_la-RangeIterator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsarray_la-SArray.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsarray_la-SimpleRange.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< libsarray_la-Range.lo: Range.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsarray_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsarray_la-Range.lo -MD -MP -MF $(DEPDIR)/libsarray_la-Range.Tpo -c -o libsarray_la-Range.lo `test -f 'Range.cc' || echo '$(srcdir)/'`Range.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsarray_la-Range.Tpo $(DEPDIR)/libsarray_la-Range.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Range.cc' object='libsarray_la-Range.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsarray_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsarray_la-Range.lo -MD -MP -MF $(DEPDIR)/libsarray_la-Range.Tpo -c -o libsarray_la-Range.lo `test -f 'Range.cc' || echo '$(srcdir)/'`Range.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsarray_la-Range.Tpo $(DEPDIR)/libsarray_la-Range.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Range.cc' object='libsarray_la-Range.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsarray_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsarray_la-Range.lo `test -f 'Range.cc' || echo '$(srcdir)/'`Range.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsarray_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsarray_la-Range.lo `test -f 'Range.cc' || echo '$(srcdir)/'`Range.cc + +libsarray_la-SimpleRange.lo: SimpleRange.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsarray_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsarray_la-SimpleRange.lo -MD -MP -MF $(DEPDIR)/libsarray_la-SimpleRange.Tpo -c -o libsarray_la-SimpleRange.lo `test -f 'SimpleRange.cc' || echo '$(srcdir)/'`SimpleRange.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsarray_la-SimpleRange.Tpo $(DEPDIR)/libsarray_la-SimpleRange.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SimpleRange.cc' object='libsarray_la-SimpleRange.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsarray_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsarray_la-SimpleRange.lo `test -f 'SimpleRange.cc' || echo '$(srcdir)/'`SimpleRange.cc libsarray_la-RangeIterator.lo: RangeIterator.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsarray_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsarray_la-RangeIterator.lo -MD -MP -MF $(DEPDIR)/libsarray_la-RangeIterator.Tpo -c -o libsarray_la-RangeIterator.lo `test -f 'RangeIterator.cc' || echo '$(srcdir)/'`RangeIterator.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsarray_la-RangeIterator.Tpo $(DEPDIR)/libsarray_la-RangeIterator.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RangeIterator.cc' object='libsarray_la-RangeIterator.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsarray_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsarray_la-RangeIterator.lo -MD -MP -MF $(DEPDIR)/libsarray_la-RangeIterator.Tpo -c -o libsarray_la-RangeIterator.lo `test -f 'RangeIterator.cc' || echo '$(srcdir)/'`RangeIterator.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsarray_la-RangeIterator.Tpo $(DEPDIR)/libsarray_la-RangeIterator.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='RangeIterator.cc' object='libsarray_la-RangeIterator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsarray_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsarray_la-RangeIterator.lo `test -f 'RangeIterator.cc' || echo '$(srcdir)/'`RangeIterator.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsarray_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsarray_la-RangeIterator.lo `test -f 'RangeIterator.cc' || echo '$(srcdir)/'`RangeIterator.cc libsarray_la-SArray.lo: SArray.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsarray_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsarray_la-SArray.lo -MD -MP -MF $(DEPDIR)/libsarray_la-SArray.Tpo -c -o libsarray_la-SArray.lo `test -f 'SArray.cc' || echo '$(srcdir)/'`SArray.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsarray_la-SArray.Tpo $(DEPDIR)/libsarray_la-SArray.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SArray.cc' object='libsarray_la-SArray.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsarray_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsarray_la-SArray.lo -MD -MP -MF $(DEPDIR)/libsarray_la-SArray.Tpo -c -o libsarray_la-SArray.lo `test -f 'SArray.cc' || echo '$(srcdir)/'`SArray.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsarray_la-SArray.Tpo $(DEPDIR)/libsarray_la-SArray.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SArray.cc' object='libsarray_la-SArray.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsarray_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsarray_la-SArray.lo `test -f 'SArray.cc' || echo '$(srcdir)/'`SArray.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsarray_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsarray_la-SArray.lo `test -f 'SArray.cc' || echo '$(srcdir)/'`SArray.cc mostlyclean-libtool: -rm -f *.lo @@ -354,26 +448,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -385,15 +468,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -402,6 +481,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -543,18 +637,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/lib/sarray/Range.cc jags-4.0.0/src/lib/sarray/Range.cc --- jags-3.4.0/src/lib/sarray/Range.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/sarray/Range.cc 2015-07-27 20:28:22.000000000 +0000 @@ -1,288 +1,184 @@ #include #include +#include -#include #include #include using std::vector; -using std::min; -using std::max; using std::out_of_range; -using std::invalid_argument; using std::logic_error; using std::string; using std::ostringstream; - -static vector asSigned(vector const &orig) +static vector +makeDim(vector > const &scope) { - unsigned int n = orig.size(); - vector ans(n); - for (unsigned int i = 0; i < n; ++i) { - ans[i] = static_cast(orig[i]); + vector dims; + for (unsigned int i = 0; i < scope.size(); i++) { + dims.push_back(scope[i].size()); } - return ans; + return dims; } -static vector -makeDim(vector const &lower, vector const &upper) -{ - /* - Utility function for constructor: calculates the dimension of the - range with, or without, dropping of scalar dimensions. - */ - unsigned int ndim = upper.size(); - - if (lower.size() != ndim) { - throw logic_error("Range: Length mismatch in constructor"); - } - for (unsigned int i = 0; i < ndim; i++) { - if (upper[i] < lower[i]) { - throw out_of_range("Range: upper < lower bound in constructor"); - } - } - - vector dim(ndim); - for (unsigned int i = 0; i < ndim; i++) { - dim[i] = static_cast(upper[i] - lower[i] + 1); +namespace jags { + + Range::Range() + : _scope(0), _dim(0), _dim_dropped(0), _first(0), _last(0), _length() + { } - return dim; -} -static vector makeDimDropped(vector const &dim) -{ - /* - Utility function for constructor. Reduces the dimensions of - an array by dropping scalar dimensions. - */ - - unsigned int ndim = dim.size(); - unsigned int size = 0; - for (unsigned int i = 0; i < ndim; i++) { - size += (dim[i] > 1); - } - if (size == ndim) { - // No scalar dimensions OR null dimension - return dim; - } - else if (size == 0) { - // All dimensions are scalar. Keep one of them. - return vector(1,1); - } - else { - vector newdim(size); - unsigned int j = 0; - for (unsigned int i = 0; i < ndim; i++) { - if (dim[i] > 1) { - newdim[j++] = dim[i]; + Range::Range(vector > const &scope) + : _scope(scope), + _dim(makeDim(_scope)), + _dim_dropped(drop(_dim)), + _first(0), + _last(0), + _length(product(_dim)) + { + //Check that we have no zero-length index vectors. The + //leftIndex and rightIndex member functions rely on this + //assumption, as well as the RangeIterator class. + + for (unsigned int i = 0; i < scope.size(); ++i) { + if (scope[i].empty()) { + throw logic_error("Zero dimension in Range constructor"); } + _first.push_back(scope[i].front()); + _last.push_back(scope[i].back()); } - return newdim; } -} -static unsigned int -makeLength(vector const &dim) -{ - /* - Utility function for constructor: calculates the length of the - range based on its dimensions - */ - unsigned int ndim = dim.size(); - if (ndim == 0) { - return 0; - } - else { - unsigned int length = 1; - for (unsigned int i = 0; i < ndim; i++) { - length *= dim[i]; - } - return length; + Range::~Range() + { + //Virtual destructor } -} -Range::Range() - : _lower(0), _upper(0), _dim(0), _dim_dropped(0), _length(0) -{ -} - -Range::Range(vector const &lower, vector const &upper) - : _lower(lower), _upper(upper), - _dim(makeDim(lower, upper)), - _dim_dropped(makeDimDropped(_dim)), - _length(makeLength(_dim)) -{ -} - -Range::Range(vector const &index) - : _lower(index), _upper(index), - _dim(makeDim(index,index)), - _dim_dropped(makeDimDropped(_dim)), - _length(makeLength(_dim)) -{ -} - -Range::Range(vector const &dim) - : _lower(vector(dim.size(),1)), _upper(asSigned(dim)), - _dim(makeDim(_lower,_upper)), - _dim_dropped(makeDimDropped(_dim)), - _length(makeLength(_dim)) -{ -} - -unsigned int Range::length() const -{ - return _length; -} - -unsigned int Range::ndim(bool drop) const -{ - return drop ? _dim_dropped.size() : _dim.size(); -} + unsigned int Range::length() const + { + return _length; + } -vector const &Range::dim(bool drop) const -{ - return drop ? _dim_dropped : _dim; -} + unsigned int Range::ndim(bool drop) const + { + return drop ? _dim_dropped.size() : _dim.size(); + } -bool Range::contains(Range const &other) const -{ - unsigned int ndim = _upper.size(); - if (other._lower.size() != ndim) { - throw invalid_argument("Range::contains. Dimension mismatch"); - } - - for (unsigned int i = 0; i < ndim; ++i) { - if (other._lower[i] < _lower[i] || other._upper[i] > _upper[i]) { - return false; + vector const &Range::dim(bool drop) const + { + return drop ? _dim_dropped : _dim; + } + + vector Range::leftIndex(unsigned int offset) const + { + if (offset >= _length) { + throw out_of_range("Range::leftIndex. Offset out of bounds"); + } + + unsigned int ndim = _scope.size(); + vector index(ndim); + for (unsigned int i = 0; i < ndim; ++i) { + index[i] = _scope[i][offset % _dim[i]]; + offset /= _dim[i]; } + return index; } - return true; -} -/* -bool Range::overlaps(Range const &other) const -{ - unsigned int dim = _upper.size(); - if (other.ndim(false) != dim) { - throw invalid_argument("Range::overlaps. Dimension mismatch"); + vector Range::rightIndex(unsigned int offset) const + { + if (offset >= _length) { + throw out_of_range("Range::rightIndex. Offset out of bounds"); + } + + int ndim = _scope.size(); + vector index(ndim); + for (int i = ndim - 1; i >= 0; --i) { + index[i] = _scope[i][offset % _dim[i]]; + offset /= _dim[i]; + } + return index; } - for (unsigned int i = 0; i < dim; i++) { - if (max(_lower[i], other._lower[i]) > min(_upper[i], other._upper[i])) - return false; + vector const &Range::first() const + { + return _first; } - return true; -} -*/ -unsigned int Range::leftOffset(vector const &index) const -{ - unsigned int offset = 0; - int step = 1; - unsigned int ndim = _upper.size(); - for (unsigned int i = 0; i < ndim; i++) { - if (index[i] < _lower[i] || index[i] > _upper[i]) { - throw out_of_range("Range::leftOffset. Index outside of allowed range"); - } - offset += step * (index[i] - _lower[i]); - step *= _dim[i]; + vector const &Range::last() const + { + return _last; } - return offset; -} -vector Range::leftIndex(unsigned int offset) const -{ - if (offset >= _length) { - throw out_of_range("Range::leftIndex. Offset exceeds length of range"); + bool Range::operator==(Range const &range) const + { + return _scope == range._scope; } - unsigned int ndim = _lower.size(); - vector index(_lower); - for (unsigned int i = 0; i < ndim; ++i) { - index[i] += offset % _dim[i]; - offset = offset / _dim[i]; + bool Range::operator!=(Range const &range) const + { + return _scope != range._scope; } - return index; -} -unsigned int Range::rightOffset(vector const &index) const -{ - unsigned int offset = 0; - int step = 1; - for (int i = _upper.size() - 1; i >= 0; --i) { - if (index[i] < _lower[i] || index[i] > _upper[i]) { - throw out_of_range("Range::rightOffset. Index outside of allowed range"); + bool Range::operator<(Range const &rhs) const + { + //Sort by the first element + if (_first < rhs._first) { + return true; } - offset += step * (index[i] - _lower[i]); - step *= _dim[i]; + else if (rhs._first < _first) { + return false; + } + //Then last element + else if (_last < rhs._last) { + return true; + } + else if (rhs._last < _last) { + return false; + } + //Then lexigraphic ordering of the scope + return _scope < rhs._scope; } - return offset; -} - -vector Range::rightIndex(unsigned int offset) const -{ - if (offset >= _length) - throw out_of_range("Range::rightIndex. Offset exceeds length of range"); - - int ndim = _lower.size(); - vector index(_lower); - for (int i = ndim - 1; i >= 0; --i) { - index[i] += offset % _dim[i]; - offset = offset / _dim[i]; + + + string print(Range const &range) + { + if (isNULL(range)) + return ""; + + ostringstream ostr; + ostr << "["; + for (unsigned int i = 0; i < range.ndim(false); ++i) { + if (i > 0) { + ostr << ","; + } + vector const &indices = range.scope()[i]; + ostr << indices[0]; + if (indices.size() > 1) { + bool simple = true; + int val = indices[0] + 1; + for (unsigned int j = 1; j < indices.size(); ++j) { + if (indices[j] != val) { + simple = false; + break; + } + ++val; + } + if (simple) { + ostr << ":"; + } + else { + ostr << "..."; + } + ostr << indices.back(); + } + } + ostr << "]"; + return ostr.str(); } - return index; -} - -vector const & Range::lower() const -{ - return _lower; -} -vector const & Range::upper() const -{ - return _upper; -} - -bool Range::operator<(Range const &rhs) const -{ - if (_lower < rhs._lower) - return true; - else if (rhs._lower < _lower) - return false; - else - return _upper < rhs._upper; -} - -bool Range::operator==(Range const &range) const -{ - return (_lower == range._lower) && (_upper == range._upper); -} - -bool Range::operator!=(Range const &range) const -{ - return (_lower != range._lower) || (_upper != range._upper); -} - -string print(Range const &range) -{ - if (isNULL(range)) - return ""; - - ostringstream ostr; - ostr << "["; - for (unsigned int i = 0; i < range.ndim(false); ++i) { - if (i > 0) - ostr << ","; - if (range.lower()[i] == range.upper()[i]) { - ostr << range.lower()[i]; - } - else { - ostr << range.lower()[i] << ":" << range.upper()[i]; - } + vector > const &Range::scope() const + { + return _scope; } - ostr << "]"; - return ostr.str(); -} +} //namespace jags diff -Nru jags-3.4.0/src/lib/sarray/RangeIterator.cc jags-4.0.0/src/lib/sarray/RangeIterator.cc --- jags-3.4.0/src/lib/sarray/RangeIterator.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/sarray/RangeIterator.cc 2015-02-22 08:33:05.000000000 +0000 @@ -1,54 +1,56 @@ #include #include -#include using std::vector; -RangeIterator::RangeIterator(Range const &range) - : vector(range.lower()), _lower(range.lower()), _upper(range.upper()), - _atend(0) -{} - -unsigned int RangeIterator::atEnd() const -{ - return _atend; -} - -RangeIterator &RangeIterator::nextLeft() -{ - int n = _lower.size(); - int i = 0; - for (; i < n; ++i) { - int &ind = operator[](i); - if (ind < _upper[i]) { - ++ind; - break; - } - else { - ind = _lower[i]; - } - } - if (i == n) { - _atend++; +namespace jags { + + RangeIterator::RangeIterator(Range const &range) + : vector(range.first()), + _scope(range.scope()), + _dim(range.dim(false)), + _index(_dim.size(), 0), + _atend(0) + {} + + unsigned int RangeIterator::atEnd() const + { + return _atend; } - return *this; -} -RangeIterator &RangeIterator::nextRight() -{ - int i = _lower.size() - 1; - for ( ; i >= 0; --i) { - int &ind = operator[](i); - if (ind < _upper[i]) { - ++ind; - break; - } - else { - ind = _lower[i]; - } + RangeIterator &RangeIterator::nextLeft() + { + unsigned int i = 0; + for (; i < _index.size(); ++i) { + unsigned int &ind = _index[i]; + int &val = operator[](i); + + if (++ind >= _dim[i]) ind = 0; + val = _scope[i][ind]; + if (ind > 0) break; + } + if (i == _index.size()) { + _atend++; + } + return *this; } - if (i < 0) { - _atend++; + + RangeIterator &RangeIterator::nextRight() + { + unsigned int j = _index.size(); + for ( ; j > 0; --j) { + int i = j - 1; + unsigned int &ind = _index[i]; + int &val = operator[](i); + + if (++ind >= _dim[i]) ind = 0; + val = _scope[i][ind]; + if (ind > 0) break; + } + if (j == 0) { + _atend++; + } + return *this; } - return *this; -} + +} //namespace jags diff -Nru jags-3.4.0/src/lib/sarray/SArray.cc jags-4.0.0/src/lib/sarray/SArray.cc --- jags-3.4.0/src/lib/sarray/SArray.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/sarray/SArray.cc 2015-02-22 08:33:05.000000000 +0000 @@ -11,6 +11,8 @@ using std::copy; using std::string; +namespace jags { + SArray::SArray(vector const &dim) : _range(dim), _value(_range.length(), JAGS_NA), _discrete(false), _s_dimnames(dim.size()) @@ -23,7 +25,7 @@ { } -Range const &SArray::range() const +SimpleRange const &SArray::range() const { return _range; } @@ -105,3 +107,5 @@ throw length_error("Invalid length in SArray::setSDimNames"); } } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/sarray/SimpleRange.cc jags-4.0.0/src/lib/sarray/SimpleRange.cc --- jags-3.4.0/src/lib/sarray/SimpleRange.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/sarray/SimpleRange.cc 2015-07-27 20:28:22.000000000 +0000 @@ -0,0 +1,187 @@ +#include +#include +#include + +#include +#include +#include + +using std::vector; +using std::min; +using std::max; +using std::out_of_range; +using std::invalid_argument; +using std::logic_error; +using std::string; +using std::ostringstream; +using std::sort; + +static vector asSigned(vector const &orig) +{ + unsigned int n = orig.size(); + vector ans(n); + for (unsigned int i = 0; i < n; ++i) { + ans[i] = static_cast(orig[i]); + if (ans[i] < 0) { + throw out_of_range("Dimension too large in Range constructor"); + } + } + return ans; +} + +static vector > +makeScope(vector const &lower, vector const &upper) +{ + unsigned int ndim = lower.size(); + if (upper.size() != ndim) { + throw logic_error("Dimension mismatch in Range constructor"); + } + + vector > scope(ndim); + for (unsigned int i = 0; i < ndim; ++i) { + if (lower[i] <= upper[i]) { + for (int j = lower[i]; j <= upper[i]; ++j) { + scope[i].push_back(j); + } + } + } + return scope; +} + +namespace jags { + + SimpleRange::SimpleRange(vector const &lower, vector const &upper) + : Range(makeScope(lower, upper)) + { + } + + SimpleRange::SimpleRange(vector const &index) + : Range(makeScope(index, index)) + { + } + + SimpleRange::SimpleRange(vector const &dim) + : Range(makeScope(vector(dim.size(), 1), asSigned(dim))) + { + } + + SimpleRange::SimpleRange() + : Range() + { + } + + SimpleRange::~SimpleRange() + { + } + + bool SimpleRange::contains(SimpleRange const &other) const + { + unsigned int N = ndim(false); + if (N != other.ndim(false)) { + return false; + } + + for (unsigned int i = 0; i < N; ++i) { + if (other._first[i] < _first[i] || other._last[i] > _last[i]) { + return false; + } + } + return true; + } + + + bool SimpleRange::contains(Range const &other) const + { + unsigned int ndim = scope().size(); + if (other.scope().size() != ndim) { + throw invalid_argument("SimpleRange::contains. Dimension mismatch"); + } + + for (unsigned int i = 0; i < ndim; ++i) { + vector const &indices = other.scope()[i]; + for (unsigned int j = 0; j < indices.size(); ++j) { + if (indices[j] < _first[i] || indices[j] > _last[i]) { + return false; + } + } + } + return true; + } + + unsigned int SimpleRange::leftOffset(vector const &index) const + { + unsigned int offset = 0; + int step = 1; + unsigned int ndim = _last.size(); + for (unsigned int i = 0; i < ndim; i++) { + if (index[i] < _first[i] || index[i] > _last[i]) { + throw out_of_range("SimpleRange::leftOffset. Index outside of allowed range"); + } + offset += step * (index[i] - _first[i]); + step *= _dim[i]; + } + return offset; + } + + unsigned int SimpleRange::rightOffset(vector const &index) const + { + unsigned int offset = 0; + int step = 1; + for (int i = _last.size() - 1; i >= 0; --i) { + if (index[i] < _first[i] || index[i] > _last[i]) { + throw out_of_range("SimpleRange::rightOffset. Index outside of allowed range"); + } + offset += step * (index[i] - _first[i]); + step *= _dim[i]; + } + return offset; + } + + bool SimpleRange::operator<(SimpleRange const &rhs) const + { + //Sort by the first element + if (_first < rhs._first) { + return true; + } + else if (rhs._first < _first) { + return false; + } + //Then last element + return _last < rhs._last; + } + + bool SimpleRange::operator==(SimpleRange const &rhs) const + { + return (_first == rhs._first) && (_last == rhs._last); + } + + bool SimpleRange::operator!=(SimpleRange const &rhs) const + { + return (_first != rhs._first) || (_last != rhs._last); + } + + string print(SimpleRange const &range) + { + if (isNULL(range)) { + return ""; + } + + vector const & lower = range.lower(); + vector const & upper = range.upper(); + ostringstream ostr; + ostr << "["; + for (unsigned int i = 0; i < range.ndim(false); ++i) { + if (i > 0) + ostr << ","; + if (lower[i] == upper[i]) { + ostr << lower[i]; + } + else { + ostr << lower[i] << ":" << upper[i]; + } + } + ostr << "]"; + return ostr.str(); + } + +} //namespace jags diff -Nru jags-3.4.0/src/lib/testlib.cc jags-4.0.0/src/lib/testlib.cc --- jags-3.4.0/src/lib/testlib.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/lib/testlib.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,29 @@ +#include +#include +#include + +using std::sqrt; + +JAGSFixture::JAGSFixture() + : tol(sqrt(DBL_EPSILON)), + F(1), T(1), + FF(2), FT(2), TF(2), TT(2), + FFF(3), FFT(3), FTF(3), FTT(3), TFF(3), TFT(3), TTF(3), TTT(3) +{ + F[0] = false; + T[0] = true; + + FF[0] = false; FF[1] = false; + FT[0] = false; FT[1] = true; + TF[0] = true; TF[1] = false; + TT[0] = true; TT[1] = true; + + FFF[0] = false; FFF[1] = false; FFT[2] = false; + FFT[0] = false; FFT[1] = false; FFT[2] = true; + FTF[0] = false; FTF[1] = true; FTF[2] = false; + FTT[0] = false; FTT[1] = true; FTT[2] = true; + TFF[0] = true; TFF[1] = false; TFT[2] = false; + TFT[0] = true; TFT[1] = false; TFT[2] = true; + TTF[0] = true; TTF[1] = true; TTF[2] = false; + TTT[0] = true; TTT[1] = true; TTT[2] = true; +} diff -Nru jags-3.4.0/src/lib/util/dim.cc jags-4.0.0/src/lib/util/dim.cc --- jags-3.4.0/src/lib/util/dim.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/util/dim.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,30 +6,20 @@ using std::vector; using std::set; -vector const &getUnique(vector const &dim) -{ - static set > _dimset; - set >::const_iterator p = _dimset.find(dim); - if (p == _dimset.end()) { - _dimset.insert(dim); - p = _dimset.find(dim); +namespace jags { + + vector const &getUnique(vector const &dim) + { + static set > _dimset; + return *(_dimset.insert(dim).first); } - return *p; -} -vector > const & -getUnique(vector > const &dimvec) -{ - static set > > _dimvecset; - set > >::const_iterator p = - _dimvecset.find(dimvec); - if (p == _dimvecset.end()) { - _dimvecset.insert(dimvec); - p = _dimvecset.find(dimvec); + vector > const & + getUnique(vector > const &dimvec) + { + static set > > _dimvecset; + return *(_dimvecset.insert(dimvec).first); } - return *p; - -} unsigned int product(vector const &x) { @@ -46,12 +36,20 @@ vector drop(vector const &dims) { vector ans; + bool empty = true; for (unsigned int i = 0; i < dims.size(); ++i) { - if (dims[i] > 1) + if (dims[i] != 0) { + empty = false; + } + if (dims[i] != 1) { ans.push_back(dims[i]); + } + } + if (ans.empty() && !empty) { + ans.push_back(1U); } - if (ans.empty()) - ans.push_back(1); return ans; } + +} diff -Nru jags-3.4.0/src/lib/util/integer.cc jags-4.0.0/src/lib/util/integer.cc --- jags-3.4.0/src/lib/util/integer.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/util/integer.cc 2015-02-22 08:33:05.000000000 +0000 @@ -21,6 +21,8 @@ } } +namespace jags { + int asInteger(double fval) { if (fval >= INT_MAX || fval <= INT_MIN) { @@ -37,3 +39,4 @@ return fabs(fval - coerceInteger(fval)) < eps; } +} diff -Nru jags-3.4.0/src/lib/util/Makefile.in jags-4.0.0/src/lib/util/Makefile.in --- jags-3.4.0/src/lib/util/Makefile.in 2013-08-30 13:23:27.000000000 +0000 +++ jags-4.0.0/src/lib/util/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/lib/util -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -62,6 +98,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -71,28 +108,62 @@ am_libutil_la_OBJECTS = libutil_la-nainf.lo libutil_la-naconst.lo \ libutil_la-dim.lo libutil_la-integer.lo libutil_la_OBJECTS = $(am_libutil_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(libutil_la_SOURCES) DIST_SOURCES = $(libutil_la_SOURCES) am__can_run_installinfo = \ @@ -100,11 +171,30 @@ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -118,6 +208,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -187,10 +280,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -275,7 +364,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/util/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/lib/util/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -296,14 +384,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libutil.la: $(libutil_la_OBJECTS) $(libutil_la_DEPENDENCIES) $(EXTRA_libutil_la_DEPENDENCIES) - $(CXXLINK) $(libutil_la_OBJECTS) $(libutil_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(CXXLINK) $(libutil_la_OBJECTS) $(libutil_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -317,74 +408,80 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libutil_la-nainf.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libutil_la-nainf.lo: nainf.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libutil_la-nainf.lo -MD -MP -MF $(DEPDIR)/libutil_la-nainf.Tpo -c -o libutil_la-nainf.lo `test -f 'nainf.c' || echo '$(srcdir)/'`nainf.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libutil_la-nainf.Tpo $(DEPDIR)/libutil_la-nainf.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nainf.c' object='libutil_la-nainf.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libutil_la-nainf.lo -MD -MP -MF $(DEPDIR)/libutil_la-nainf.Tpo -c -o libutil_la-nainf.lo `test -f 'nainf.c' || echo '$(srcdir)/'`nainf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libutil_la-nainf.Tpo $(DEPDIR)/libutil_la-nainf.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nainf.c' object='libutil_la-nainf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libutil_la-nainf.lo `test -f 'nainf.c' || echo '$(srcdir)/'`nainf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libutil_la-nainf.lo `test -f 'nainf.c' || echo '$(srcdir)/'`nainf.c .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< libutil_la-naconst.lo: naconst.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libutil_la-naconst.lo -MD -MP -MF $(DEPDIR)/libutil_la-naconst.Tpo -c -o libutil_la-naconst.lo `test -f 'naconst.cc' || echo '$(srcdir)/'`naconst.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libutil_la-naconst.Tpo $(DEPDIR)/libutil_la-naconst.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='naconst.cc' object='libutil_la-naconst.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libutil_la-naconst.lo -MD -MP -MF $(DEPDIR)/libutil_la-naconst.Tpo -c -o libutil_la-naconst.lo `test -f 'naconst.cc' || echo '$(srcdir)/'`naconst.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libutil_la-naconst.Tpo $(DEPDIR)/libutil_la-naconst.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='naconst.cc' object='libutil_la-naconst.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libutil_la-naconst.lo `test -f 'naconst.cc' || echo '$(srcdir)/'`naconst.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libutil_la-naconst.lo `test -f 'naconst.cc' || echo '$(srcdir)/'`naconst.cc libutil_la-dim.lo: dim.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libutil_la-dim.lo -MD -MP -MF $(DEPDIR)/libutil_la-dim.Tpo -c -o libutil_la-dim.lo `test -f 'dim.cc' || echo '$(srcdir)/'`dim.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libutil_la-dim.Tpo $(DEPDIR)/libutil_la-dim.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='dim.cc' object='libutil_la-dim.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libutil_la-dim.lo -MD -MP -MF $(DEPDIR)/libutil_la-dim.Tpo -c -o libutil_la-dim.lo `test -f 'dim.cc' || echo '$(srcdir)/'`dim.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libutil_la-dim.Tpo $(DEPDIR)/libutil_la-dim.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='dim.cc' object='libutil_la-dim.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libutil_la-dim.lo `test -f 'dim.cc' || echo '$(srcdir)/'`dim.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libutil_la-dim.lo `test -f 'dim.cc' || echo '$(srcdir)/'`dim.cc libutil_la-integer.lo: integer.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libutil_la-integer.lo -MD -MP -MF $(DEPDIR)/libutil_la-integer.Tpo -c -o libutil_la-integer.lo `test -f 'integer.cc' || echo '$(srcdir)/'`integer.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libutil_la-integer.Tpo $(DEPDIR)/libutil_la-integer.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='integer.cc' object='libutil_la-integer.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libutil_la-integer.lo -MD -MP -MF $(DEPDIR)/libutil_la-integer.Tpo -c -o libutil_la-integer.lo `test -f 'integer.cc' || echo '$(srcdir)/'`integer.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libutil_la-integer.Tpo $(DEPDIR)/libutil_la-integer.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='integer.cc' object='libutil_la-integer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libutil_la-integer.lo `test -f 'integer.cc' || echo '$(srcdir)/'`integer.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libutil_la-integer.lo `test -f 'integer.cc' || echo '$(srcdir)/'`integer.cc mostlyclean-libtool: -rm -f *.lo @@ -392,26 +489,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -423,15 +509,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -440,6 +522,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -581,18 +678,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/lib/util/naconst.cc jags-4.0.0/src/lib/util/naconst.cc --- jags-3.4.0/src/lib/util/naconst.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/lib/util/naconst.cc 2015-02-22 08:33:05.000000000 +0000 @@ -11,3 +11,4 @@ const double JAGS_NAN = f_div(0.0, 0.0); const double JAGS_POSINF = f_div(1.0, 0.0); const double JAGS_NEGINF = f_div(-1.0, 0.0); + diff -Nru jags-3.4.0/src/lib/version.cc jags-4.0.0/src/lib/version.cc --- jags-3.4.0/src/lib/version.cc 2013-08-30 13:23:57.000000000 +0000 +++ jags-4.0.0/src/lib/version.cc 2015-09-28 21:41:41.000000000 +0000 @@ -4,7 +4,7 @@ const char * jags_version() { - const char * version = "3.4.0"; + const char * version = "4.0.0"; return version; } diff -Nru jags-3.4.0/src/Makefile.in jags-4.0.0/src/Makefile.in --- jags-3.4.0/src/Makefile.in 2013-08-30 13:23:26.000000000 +0000 +++ jags-4.0.0/src/Makefile.in 2015-09-27 12:02:16.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,7 +88,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -61,19 +97,33 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -81,12 +131,33 @@ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ @@ -115,6 +186,7 @@ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -128,6 +200,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -197,10 +272,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -282,7 +353,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -308,22 +378,25 @@ -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -338,57 +411,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -404,12 +432,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -421,15 +444,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -438,6 +457,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -598,22 +632,22 @@ uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/base/base.cc jags-4.0.0/src/modules/base/base.cc --- jags-3.4.0/src/modules/base/base.cc 2012-11-20 10:42:50.000000000 +0000 +++ jags-4.0.0/src/modules/base/base.cc 2015-02-22 08:33:05.000000000 +0000 @@ -1,4 +1,4 @@ -#include +#include //Functions #include @@ -15,6 +15,7 @@ #include #include #include +#include #include //Samplers #include @@ -27,6 +28,7 @@ using std::vector; +namespace jags { namespace base { class BaseModule : public Module { @@ -54,6 +56,7 @@ insert(new NotEqual); insert(new Or); insert(new Pow); + insert(new Seq); insert(new Subtract); insert(new SliceFactory); @@ -88,6 +91,6 @@ } } -} +}} -base::BaseModule _base_module; +jags::base::BaseModule _base_module; diff -Nru jags-3.4.0/src/modules/base/functions/Add.cc jags-4.0.0/src/modules/base/functions/Add.cc --- jags-3.4.0/src/modules/base/functions/Add.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Add.cc 2015-07-03 05:44:09.000000000 +0000 @@ -4,6 +4,7 @@ using std::vector; +namespace jags { namespace base { Add::Add () : Infix ("+", 0) @@ -24,6 +25,23 @@ return allTrue(mask); } + bool + Add::isAdditive(vector const &mask, vector const &fix) const + { + //There should be exactly one argument that is an additive function + bool found = false; //Have we found it yet? + for (unsigned int i = 0; i < mask.size(); ++i) { + if (mask[i]) { + if (found) return false; + else found = true; + } + else if (!fix.empty() && !fix[i]) { + return false; + } + } + return found; + } + bool Add::isLinear(vector const &mask, vector const &fix) const { return true; @@ -33,4 +51,5 @@ { return allTrue(mask); } -} + +}} diff -Nru jags-3.4.0/src/modules/base/functions/Add.h jags-4.0.0/src/modules/base/functions/Add.h --- jags-3.4.0/src/modules/base/functions/Add.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Add.h 2015-07-03 06:07:11.000000000 +0000 @@ -3,6 +3,7 @@ #include "Infix.h" +namespace jags { namespace base { /** @@ -19,12 +20,14 @@ Add (); double evaluate(std::vectorconst &args) const; bool isDiscreteValued(std::vector const &flags) const; + bool isAdditive(std::vector const &mask, + std::vector const &fixmask) const; bool isLinear(std::vector const &mask, std::vector const &fixmask) const; bool isScale(std::vector const &mask, std::vector const &fixmask) const; }; -} +}} #endif /* FUNC_ADD_H_ */ diff -Nru jags-3.4.0/src/modules/base/functions/And.cc jags-4.0.0/src/modules/base/functions/And.cc --- jags-3.4.0/src/modules/base/functions/And.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/And.cc 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ using std::vector; +namespace jags { namespace base { And::And () : Infix ("&&") @@ -19,4 +20,4 @@ return true; } -} +}} diff -Nru jags-3.4.0/src/modules/base/functions/And.h jags-4.0.0/src/modules/base/functions/And.h --- jags-3.4.0/src/modules/base/functions/And.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/And.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include "Infix.h" +namespace jags { namespace base { /** @@ -23,6 +24,6 @@ bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* FUNC_AND_H_ */ diff -Nru jags-3.4.0/src/modules/base/functions/Divide.cc jags-4.0.0/src/modules/base/functions/Divide.cc --- jags-3.4.0/src/modules/base/functions/Divide.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Divide.cc 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ using std::vector; +namespace jags { namespace base { Divide::Divide () : Infix ("/") @@ -34,4 +35,4 @@ return true; } -} +}} diff -Nru jags-3.4.0/src/modules/base/functions/Divide.h jags-4.0.0/src/modules/base/functions/Divide.h --- jags-3.4.0/src/modules/base/functions/Divide.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Divide.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include "Infix.h" +namespace jags { namespace base { /** @@ -27,6 +28,6 @@ }; -} +}} #endif /* FUNC_DIVIDE_H_ */ diff -Nru jags-3.4.0/src/modules/base/functions/Equal.cc jags-4.0.0/src/modules/base/functions/Equal.cc --- jags-3.4.0/src/modules/base/functions/Equal.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Equal.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; +namespace jags { namespace base { Equal::Equal () : Infix ("==") @@ -22,4 +23,4 @@ return true; } -} +}} diff -Nru jags-3.4.0/src/modules/base/functions/Equal.h jags-4.0.0/src/modules/base/functions/Equal.h --- jags-3.4.0/src/modules/base/functions/Equal.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Equal.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include "Infix.h" +namespace jags { namespace base { /** @@ -22,6 +23,6 @@ bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* FUNC_EQUAL_H_ */ diff -Nru jags-3.4.0/src/modules/base/functions/GreaterOrEqual.cc jags-4.0.0/src/modules/base/functions/GreaterOrEqual.cc --- jags-3.4.0/src/modules/base/functions/GreaterOrEqual.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/GreaterOrEqual.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; +namespace jags { namespace base { GreaterOrEqual::GreaterOrEqual () : Infix (">=") @@ -22,4 +23,4 @@ return true; } -} +}} diff -Nru jags-3.4.0/src/modules/base/functions/GreaterOrEqual.h jags-4.0.0/src/modules/base/functions/GreaterOrEqual.h --- jags-3.4.0/src/modules/base/functions/GreaterOrEqual.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/GreaterOrEqual.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include "Infix.h" +namespace jags { namespace base { /** @@ -22,6 +23,6 @@ bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* FUNC_GREATER_OR_EQUAL_H_ */ diff -Nru jags-3.4.0/src/modules/base/functions/GreaterThan.cc jags-4.0.0/src/modules/base/functions/GreaterThan.cc --- jags-3.4.0/src/modules/base/functions/GreaterThan.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/GreaterThan.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; +namespace jags { namespace base { GreaterThan::GreaterThan () : Infix (">") @@ -22,4 +23,4 @@ return true; } -} +}} diff -Nru jags-3.4.0/src/modules/base/functions/GreaterThan.h jags-4.0.0/src/modules/base/functions/GreaterThan.h --- jags-3.4.0/src/modules/base/functions/GreaterThan.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/GreaterThan.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include "Infix.h" +namespace jags { namespace base { /** @@ -22,6 +23,6 @@ bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* FUNC_GREATER_THAN_H_ */ diff -Nru jags-3.4.0/src/modules/base/functions/Infix.cc jags-4.0.0/src/modules/base/functions/Infix.cc --- jags-3.4.0/src/modules/base/functions/Infix.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Infix.cc 2015-02-22 08:33:05.000000000 +0000 @@ -4,6 +4,7 @@ using std::vector; using std::string; +namespace jags { namespace base { Infix::Infix(string const &name, unsigned int npar) @@ -24,4 +25,4 @@ return name; } -} +}} diff -Nru jags-3.4.0/src/modules/base/functions/Infix.h jags-4.0.0/src/modules/base/functions/Infix.h --- jags-3.4.0/src/modules/base/functions/Infix.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Infix.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace base { /** @@ -18,6 +19,6 @@ std::string deparse(std::vector const &par) const; }; -} +}} #endif /* INFIX_H_ */ diff -Nru jags-3.4.0/src/modules/base/functions/LessOrEqual.cc jags-4.0.0/src/modules/base/functions/LessOrEqual.cc --- jags-3.4.0/src/modules/base/functions/LessOrEqual.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/LessOrEqual.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; +namespace jags { namespace base { LessOrEqual::LessOrEqual () : Infix ("<=") @@ -22,4 +23,4 @@ return true; } -} +}} diff -Nru jags-3.4.0/src/modules/base/functions/LessOrEqual.h jags-4.0.0/src/modules/base/functions/LessOrEqual.h --- jags-3.4.0/src/modules/base/functions/LessOrEqual.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/LessOrEqual.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include "Infix.h" +namespace jags { namespace base { /** @@ -22,6 +23,6 @@ bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* FUNC_LESS_OR_EQUAL_H_ */ diff -Nru jags-3.4.0/src/modules/base/functions/LessThan.cc jags-4.0.0/src/modules/base/functions/LessThan.cc --- jags-3.4.0/src/modules/base/functions/LessThan.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/LessThan.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; +namespace jags { namespace base { LessThan::LessThan () : Infix ("<") @@ -22,4 +23,4 @@ return true; } -} +}} diff -Nru jags-3.4.0/src/modules/base/functions/LessThan.h jags-4.0.0/src/modules/base/functions/LessThan.h --- jags-3.4.0/src/modules/base/functions/LessThan.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/LessThan.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include "Infix.h" +namespace jags { namespace base { /** @@ -22,6 +23,6 @@ bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* FUNC_LESS_THAN_H_ */ diff -Nru jags-3.4.0/src/modules/base/functions/Makefile.am jags-4.0.0/src/modules/base/functions/Makefile.am --- jags-3.4.0/src/modules/base/functions/Makefile.am 2012-04-17 14:50:11.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Makefile.am 2015-09-27 07:16:51.000000000 +0000 @@ -1,13 +1,18 @@ -noinst_LTLIBRARIES = basefunctions.la +noinst_LTLIBRARIES = libbasefunctions.la -basefunctions_la_CPPFLAGS = -I$(top_srcdir)/src/include +libbasefunctions_la_CPPFLAGS = -I$(top_srcdir)/src/include -basefunctions_la_LDFLAGS = -no-undefined -module -avoid-version - -basefunctions_la_SOURCES = Infix.cc Add.cc Subtract.cc Divide.cc \ +libbasefunctions_la_SOURCES = Infix.cc Add.cc Subtract.cc Divide.cc \ Multiply.cc Neg.cc Pow.cc And.cc Or.cc Not.cc Equal.cc NotEqual.cc \ -GreaterThan.cc GreaterOrEqual.cc LessThan.cc LessOrEqual.cc +GreaterThan.cc GreaterOrEqual.cc LessThan.cc LessOrEqual.cc Seq.cc noinst_HEADERS = Infix.h Add.h Subtract.h Divide.h Multiply.h Neg.h \ Pow.h And.h Or.h Not.h Equal.h NotEqual.h GreaterThan.h \ -GreaterOrEqual.h LessThan.h LessOrEqual.h +GreaterOrEqual.h LessThan.h LessOrEqual.h Seq.h + +### Test library + +check_LTLIBRARIES = libbasefuntest.la +libbasefuntest_la_SOURCES = testbasefun.cc testbasefun.h +libbasefuntest_la_CPPFLAGS = -I$(top_srcdir)/src/include +libbasefuntest_la_CXXFLAGS = $(CPPUNIT_CFLAGS) diff -Nru jags-3.4.0/src/modules/base/functions/Makefile.in jags-4.0.0/src/modules/base/functions/Makefile.in --- jags-3.4.0/src/modules/base/functions/Makefile.in 2013-08-30 13:23:27.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/base/functions -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,51 +99,122 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) -basefunctions_la_LIBADD = -am_basefunctions_la_OBJECTS = basefunctions_la-Infix.lo \ - basefunctions_la-Add.lo basefunctions_la-Subtract.lo \ - basefunctions_la-Divide.lo basefunctions_la-Multiply.lo \ - basefunctions_la-Neg.lo basefunctions_la-Pow.lo \ - basefunctions_la-And.lo basefunctions_la-Or.lo \ - basefunctions_la-Not.lo basefunctions_la-Equal.lo \ - basefunctions_la-NotEqual.lo basefunctions_la-GreaterThan.lo \ - basefunctions_la-GreaterOrEqual.lo \ - basefunctions_la-LessThan.lo basefunctions_la-LessOrEqual.lo -basefunctions_la_OBJECTS = $(am_basefunctions_la_OBJECTS) -basefunctions_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ - $(CXXFLAGS) $(basefunctions_la_LDFLAGS) $(LDFLAGS) -o $@ +libbasefunctions_la_LIBADD = +am_libbasefunctions_la_OBJECTS = libbasefunctions_la-Infix.lo \ + libbasefunctions_la-Add.lo libbasefunctions_la-Subtract.lo \ + libbasefunctions_la-Divide.lo libbasefunctions_la-Multiply.lo \ + libbasefunctions_la-Neg.lo libbasefunctions_la-Pow.lo \ + libbasefunctions_la-And.lo libbasefunctions_la-Or.lo \ + libbasefunctions_la-Not.lo libbasefunctions_la-Equal.lo \ + libbasefunctions_la-NotEqual.lo \ + libbasefunctions_la-GreaterThan.lo \ + libbasefunctions_la-GreaterOrEqual.lo \ + libbasefunctions_la-LessThan.lo \ + libbasefunctions_la-LessOrEqual.lo libbasefunctions_la-Seq.lo +libbasefunctions_la_OBJECTS = $(am_libbasefunctions_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libbasefuntest_la_LIBADD = +am_libbasefuntest_la_OBJECTS = libbasefuntest_la-testbasefun.lo +libbasefuntest_la_OBJECTS = $(am_libbasefuntest_la_OBJECTS) +libbasefuntest_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ + $(libbasefuntest_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(basefunctions_la_SOURCES) -DIST_SOURCES = $(basefunctions_la_SOURCES) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libbasefunctions_la_SOURCES) $(libbasefuntest_la_SOURCES) +DIST_SOURCES = $(libbasefunctions_la_SOURCES) \ + $(libbasefuntest_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -122,6 +228,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -191,10 +300,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -260,17 +365,22 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -noinst_LTLIBRARIES = basefunctions.la -basefunctions_la_CPPFLAGS = -I$(top_srcdir)/src/include -basefunctions_la_LDFLAGS = -no-undefined -module -avoid-version -basefunctions_la_SOURCES = Infix.cc Add.cc Subtract.cc Divide.cc \ +noinst_LTLIBRARIES = libbasefunctions.la +libbasefunctions_la_CPPFLAGS = -I$(top_srcdir)/src/include +libbasefunctions_la_SOURCES = Infix.cc Add.cc Subtract.cc Divide.cc \ Multiply.cc Neg.cc Pow.cc And.cc Or.cc Not.cc Equal.cc NotEqual.cc \ -GreaterThan.cc GreaterOrEqual.cc LessThan.cc LessOrEqual.cc +GreaterThan.cc GreaterOrEqual.cc LessThan.cc LessOrEqual.cc Seq.cc noinst_HEADERS = Infix.h Add.h Subtract.h Divide.h Multiply.h Neg.h \ Pow.h And.h Or.h Not.h Equal.h NotEqual.h GreaterThan.h \ -GreaterOrEqual.h LessThan.h LessOrEqual.h +GreaterOrEqual.h LessThan.h LessOrEqual.h Seq.h + +### Test library +check_LTLIBRARIES = libbasefuntest.la +libbasefuntest_la_SOURCES = testbasefun.cc testbasefun.h +libbasefuntest_la_CPPFLAGS = -I$(top_srcdir)/src/include +libbasefuntest_la_CXXFLAGS = $(CPPUNIT_CFLAGS) all: all-am .SUFFIXES: @@ -287,7 +397,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/base/functions/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/base/functions/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -306,16 +415,33 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): +clean-checkLTLIBRARIES: + -test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES) + @list='$(check_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -basefunctions.la: $(basefunctions_la_OBJECTS) $(basefunctions_la_DEPENDENCIES) $(EXTRA_basefunctions_la_DEPENDENCIES) - $(basefunctions_la_LINK) $(basefunctions_la_OBJECTS) $(basefunctions_la_LIBADD) $(LIBS) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libbasefunctions.la: $(libbasefunctions_la_OBJECTS) $(libbasefunctions_la_DEPENDENCIES) $(EXTRA_libbasefunctions_la_DEPENDENCIES) + $(AM_V_CXXLD)$(CXXLINK) $(libbasefunctions_la_OBJECTS) $(libbasefunctions_la_LIBADD) $(LIBS) + +libbasefuntest.la: $(libbasefuntest_la_OBJECTS) $(libbasefuntest_la_DEPENDENCIES) $(EXTRA_libbasefuntest_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libbasefuntest_la_LINK) $(libbasefuntest_la_OBJECTS) $(libbasefuntest_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -323,155 +449,174 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basefunctions_la-Add.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basefunctions_la-And.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basefunctions_la-Divide.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basefunctions_la-Equal.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basefunctions_la-GreaterOrEqual.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basefunctions_la-GreaterThan.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basefunctions_la-Infix.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basefunctions_la-LessOrEqual.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basefunctions_la-LessThan.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basefunctions_la-Multiply.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basefunctions_la-Neg.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basefunctions_la-Not.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basefunctions_la-NotEqual.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basefunctions_la-Or.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basefunctions_la-Pow.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basefunctions_la-Subtract.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasefunctions_la-Add.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasefunctions_la-And.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasefunctions_la-Divide.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasefunctions_la-Equal.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasefunctions_la-GreaterOrEqual.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasefunctions_la-GreaterThan.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasefunctions_la-Infix.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasefunctions_la-LessOrEqual.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasefunctions_la-LessThan.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasefunctions_la-Multiply.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasefunctions_la-Neg.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasefunctions_la-Not.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasefunctions_la-NotEqual.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasefunctions_la-Or.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasefunctions_la-Pow.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasefunctions_la-Seq.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasefunctions_la-Subtract.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasefuntest_la-testbasefun.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< + +libbasefunctions_la-Infix.lo: Infix.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasefunctions_la-Infix.lo -MD -MP -MF $(DEPDIR)/libbasefunctions_la-Infix.Tpo -c -o libbasefunctions_la-Infix.lo `test -f 'Infix.cc' || echo '$(srcdir)/'`Infix.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasefunctions_la-Infix.Tpo $(DEPDIR)/libbasefunctions_la-Infix.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Infix.cc' object='libbasefunctions_la-Infix.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasefunctions_la-Infix.lo `test -f 'Infix.cc' || echo '$(srcdir)/'`Infix.cc -basefunctions_la-Infix.lo: Infix.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basefunctions_la-Infix.lo -MD -MP -MF $(DEPDIR)/basefunctions_la-Infix.Tpo -c -o basefunctions_la-Infix.lo `test -f 'Infix.cc' || echo '$(srcdir)/'`Infix.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basefunctions_la-Infix.Tpo $(DEPDIR)/basefunctions_la-Infix.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Infix.cc' object='basefunctions_la-Infix.lo' libtool=yes @AMDEPBACKSLASH@ +libbasefunctions_la-Add.lo: Add.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasefunctions_la-Add.lo -MD -MP -MF $(DEPDIR)/libbasefunctions_la-Add.Tpo -c -o libbasefunctions_la-Add.lo `test -f 'Add.cc' || echo '$(srcdir)/'`Add.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasefunctions_la-Add.Tpo $(DEPDIR)/libbasefunctions_la-Add.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Add.cc' object='libbasefunctions_la-Add.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basefunctions_la-Infix.lo `test -f 'Infix.cc' || echo '$(srcdir)/'`Infix.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasefunctions_la-Add.lo `test -f 'Add.cc' || echo '$(srcdir)/'`Add.cc -basefunctions_la-Add.lo: Add.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basefunctions_la-Add.lo -MD -MP -MF $(DEPDIR)/basefunctions_la-Add.Tpo -c -o basefunctions_la-Add.lo `test -f 'Add.cc' || echo '$(srcdir)/'`Add.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basefunctions_la-Add.Tpo $(DEPDIR)/basefunctions_la-Add.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Add.cc' object='basefunctions_la-Add.lo' libtool=yes @AMDEPBACKSLASH@ +libbasefunctions_la-Subtract.lo: Subtract.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasefunctions_la-Subtract.lo -MD -MP -MF $(DEPDIR)/libbasefunctions_la-Subtract.Tpo -c -o libbasefunctions_la-Subtract.lo `test -f 'Subtract.cc' || echo '$(srcdir)/'`Subtract.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasefunctions_la-Subtract.Tpo $(DEPDIR)/libbasefunctions_la-Subtract.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Subtract.cc' object='libbasefunctions_la-Subtract.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basefunctions_la-Add.lo `test -f 'Add.cc' || echo '$(srcdir)/'`Add.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasefunctions_la-Subtract.lo `test -f 'Subtract.cc' || echo '$(srcdir)/'`Subtract.cc -basefunctions_la-Subtract.lo: Subtract.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basefunctions_la-Subtract.lo -MD -MP -MF $(DEPDIR)/basefunctions_la-Subtract.Tpo -c -o basefunctions_la-Subtract.lo `test -f 'Subtract.cc' || echo '$(srcdir)/'`Subtract.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basefunctions_la-Subtract.Tpo $(DEPDIR)/basefunctions_la-Subtract.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Subtract.cc' object='basefunctions_la-Subtract.lo' libtool=yes @AMDEPBACKSLASH@ +libbasefunctions_la-Divide.lo: Divide.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasefunctions_la-Divide.lo -MD -MP -MF $(DEPDIR)/libbasefunctions_la-Divide.Tpo -c -o libbasefunctions_la-Divide.lo `test -f 'Divide.cc' || echo '$(srcdir)/'`Divide.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasefunctions_la-Divide.Tpo $(DEPDIR)/libbasefunctions_la-Divide.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Divide.cc' object='libbasefunctions_la-Divide.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basefunctions_la-Subtract.lo `test -f 'Subtract.cc' || echo '$(srcdir)/'`Subtract.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasefunctions_la-Divide.lo `test -f 'Divide.cc' || echo '$(srcdir)/'`Divide.cc -basefunctions_la-Divide.lo: Divide.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basefunctions_la-Divide.lo -MD -MP -MF $(DEPDIR)/basefunctions_la-Divide.Tpo -c -o basefunctions_la-Divide.lo `test -f 'Divide.cc' || echo '$(srcdir)/'`Divide.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basefunctions_la-Divide.Tpo $(DEPDIR)/basefunctions_la-Divide.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Divide.cc' object='basefunctions_la-Divide.lo' libtool=yes @AMDEPBACKSLASH@ +libbasefunctions_la-Multiply.lo: Multiply.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasefunctions_la-Multiply.lo -MD -MP -MF $(DEPDIR)/libbasefunctions_la-Multiply.Tpo -c -o libbasefunctions_la-Multiply.lo `test -f 'Multiply.cc' || echo '$(srcdir)/'`Multiply.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasefunctions_la-Multiply.Tpo $(DEPDIR)/libbasefunctions_la-Multiply.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Multiply.cc' object='libbasefunctions_la-Multiply.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basefunctions_la-Divide.lo `test -f 'Divide.cc' || echo '$(srcdir)/'`Divide.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasefunctions_la-Multiply.lo `test -f 'Multiply.cc' || echo '$(srcdir)/'`Multiply.cc -basefunctions_la-Multiply.lo: Multiply.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basefunctions_la-Multiply.lo -MD -MP -MF $(DEPDIR)/basefunctions_la-Multiply.Tpo -c -o basefunctions_la-Multiply.lo `test -f 'Multiply.cc' || echo '$(srcdir)/'`Multiply.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basefunctions_la-Multiply.Tpo $(DEPDIR)/basefunctions_la-Multiply.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Multiply.cc' object='basefunctions_la-Multiply.lo' libtool=yes @AMDEPBACKSLASH@ +libbasefunctions_la-Neg.lo: Neg.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasefunctions_la-Neg.lo -MD -MP -MF $(DEPDIR)/libbasefunctions_la-Neg.Tpo -c -o libbasefunctions_la-Neg.lo `test -f 'Neg.cc' || echo '$(srcdir)/'`Neg.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasefunctions_la-Neg.Tpo $(DEPDIR)/libbasefunctions_la-Neg.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Neg.cc' object='libbasefunctions_la-Neg.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basefunctions_la-Multiply.lo `test -f 'Multiply.cc' || echo '$(srcdir)/'`Multiply.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasefunctions_la-Neg.lo `test -f 'Neg.cc' || echo '$(srcdir)/'`Neg.cc -basefunctions_la-Neg.lo: Neg.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basefunctions_la-Neg.lo -MD -MP -MF $(DEPDIR)/basefunctions_la-Neg.Tpo -c -o basefunctions_la-Neg.lo `test -f 'Neg.cc' || echo '$(srcdir)/'`Neg.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basefunctions_la-Neg.Tpo $(DEPDIR)/basefunctions_la-Neg.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Neg.cc' object='basefunctions_la-Neg.lo' libtool=yes @AMDEPBACKSLASH@ +libbasefunctions_la-Pow.lo: Pow.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasefunctions_la-Pow.lo -MD -MP -MF $(DEPDIR)/libbasefunctions_la-Pow.Tpo -c -o libbasefunctions_la-Pow.lo `test -f 'Pow.cc' || echo '$(srcdir)/'`Pow.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasefunctions_la-Pow.Tpo $(DEPDIR)/libbasefunctions_la-Pow.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Pow.cc' object='libbasefunctions_la-Pow.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basefunctions_la-Neg.lo `test -f 'Neg.cc' || echo '$(srcdir)/'`Neg.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasefunctions_la-Pow.lo `test -f 'Pow.cc' || echo '$(srcdir)/'`Pow.cc -basefunctions_la-Pow.lo: Pow.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basefunctions_la-Pow.lo -MD -MP -MF $(DEPDIR)/basefunctions_la-Pow.Tpo -c -o basefunctions_la-Pow.lo `test -f 'Pow.cc' || echo '$(srcdir)/'`Pow.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basefunctions_la-Pow.Tpo $(DEPDIR)/basefunctions_la-Pow.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Pow.cc' object='basefunctions_la-Pow.lo' libtool=yes @AMDEPBACKSLASH@ +libbasefunctions_la-And.lo: And.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasefunctions_la-And.lo -MD -MP -MF $(DEPDIR)/libbasefunctions_la-And.Tpo -c -o libbasefunctions_la-And.lo `test -f 'And.cc' || echo '$(srcdir)/'`And.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasefunctions_la-And.Tpo $(DEPDIR)/libbasefunctions_la-And.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='And.cc' object='libbasefunctions_la-And.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basefunctions_la-Pow.lo `test -f 'Pow.cc' || echo '$(srcdir)/'`Pow.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasefunctions_la-And.lo `test -f 'And.cc' || echo '$(srcdir)/'`And.cc -basefunctions_la-And.lo: And.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basefunctions_la-And.lo -MD -MP -MF $(DEPDIR)/basefunctions_la-And.Tpo -c -o basefunctions_la-And.lo `test -f 'And.cc' || echo '$(srcdir)/'`And.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basefunctions_la-And.Tpo $(DEPDIR)/basefunctions_la-And.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='And.cc' object='basefunctions_la-And.lo' libtool=yes @AMDEPBACKSLASH@ +libbasefunctions_la-Or.lo: Or.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasefunctions_la-Or.lo -MD -MP -MF $(DEPDIR)/libbasefunctions_la-Or.Tpo -c -o libbasefunctions_la-Or.lo `test -f 'Or.cc' || echo '$(srcdir)/'`Or.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasefunctions_la-Or.Tpo $(DEPDIR)/libbasefunctions_la-Or.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Or.cc' object='libbasefunctions_la-Or.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basefunctions_la-And.lo `test -f 'And.cc' || echo '$(srcdir)/'`And.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasefunctions_la-Or.lo `test -f 'Or.cc' || echo '$(srcdir)/'`Or.cc -basefunctions_la-Or.lo: Or.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basefunctions_la-Or.lo -MD -MP -MF $(DEPDIR)/basefunctions_la-Or.Tpo -c -o basefunctions_la-Or.lo `test -f 'Or.cc' || echo '$(srcdir)/'`Or.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basefunctions_la-Or.Tpo $(DEPDIR)/basefunctions_la-Or.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Or.cc' object='basefunctions_la-Or.lo' libtool=yes @AMDEPBACKSLASH@ +libbasefunctions_la-Not.lo: Not.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasefunctions_la-Not.lo -MD -MP -MF $(DEPDIR)/libbasefunctions_la-Not.Tpo -c -o libbasefunctions_la-Not.lo `test -f 'Not.cc' || echo '$(srcdir)/'`Not.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasefunctions_la-Not.Tpo $(DEPDIR)/libbasefunctions_la-Not.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Not.cc' object='libbasefunctions_la-Not.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basefunctions_la-Or.lo `test -f 'Or.cc' || echo '$(srcdir)/'`Or.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasefunctions_la-Not.lo `test -f 'Not.cc' || echo '$(srcdir)/'`Not.cc -basefunctions_la-Not.lo: Not.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basefunctions_la-Not.lo -MD -MP -MF $(DEPDIR)/basefunctions_la-Not.Tpo -c -o basefunctions_la-Not.lo `test -f 'Not.cc' || echo '$(srcdir)/'`Not.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basefunctions_la-Not.Tpo $(DEPDIR)/basefunctions_la-Not.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Not.cc' object='basefunctions_la-Not.lo' libtool=yes @AMDEPBACKSLASH@ +libbasefunctions_la-Equal.lo: Equal.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasefunctions_la-Equal.lo -MD -MP -MF $(DEPDIR)/libbasefunctions_la-Equal.Tpo -c -o libbasefunctions_la-Equal.lo `test -f 'Equal.cc' || echo '$(srcdir)/'`Equal.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasefunctions_la-Equal.Tpo $(DEPDIR)/libbasefunctions_la-Equal.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Equal.cc' object='libbasefunctions_la-Equal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basefunctions_la-Not.lo `test -f 'Not.cc' || echo '$(srcdir)/'`Not.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasefunctions_la-Equal.lo `test -f 'Equal.cc' || echo '$(srcdir)/'`Equal.cc -basefunctions_la-Equal.lo: Equal.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basefunctions_la-Equal.lo -MD -MP -MF $(DEPDIR)/basefunctions_la-Equal.Tpo -c -o basefunctions_la-Equal.lo `test -f 'Equal.cc' || echo '$(srcdir)/'`Equal.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basefunctions_la-Equal.Tpo $(DEPDIR)/basefunctions_la-Equal.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Equal.cc' object='basefunctions_la-Equal.lo' libtool=yes @AMDEPBACKSLASH@ +libbasefunctions_la-NotEqual.lo: NotEqual.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasefunctions_la-NotEqual.lo -MD -MP -MF $(DEPDIR)/libbasefunctions_la-NotEqual.Tpo -c -o libbasefunctions_la-NotEqual.lo `test -f 'NotEqual.cc' || echo '$(srcdir)/'`NotEqual.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasefunctions_la-NotEqual.Tpo $(DEPDIR)/libbasefunctions_la-NotEqual.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='NotEqual.cc' object='libbasefunctions_la-NotEqual.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basefunctions_la-Equal.lo `test -f 'Equal.cc' || echo '$(srcdir)/'`Equal.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasefunctions_la-NotEqual.lo `test -f 'NotEqual.cc' || echo '$(srcdir)/'`NotEqual.cc -basefunctions_la-NotEqual.lo: NotEqual.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basefunctions_la-NotEqual.lo -MD -MP -MF $(DEPDIR)/basefunctions_la-NotEqual.Tpo -c -o basefunctions_la-NotEqual.lo `test -f 'NotEqual.cc' || echo '$(srcdir)/'`NotEqual.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basefunctions_la-NotEqual.Tpo $(DEPDIR)/basefunctions_la-NotEqual.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='NotEqual.cc' object='basefunctions_la-NotEqual.lo' libtool=yes @AMDEPBACKSLASH@ +libbasefunctions_la-GreaterThan.lo: GreaterThan.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasefunctions_la-GreaterThan.lo -MD -MP -MF $(DEPDIR)/libbasefunctions_la-GreaterThan.Tpo -c -o libbasefunctions_la-GreaterThan.lo `test -f 'GreaterThan.cc' || echo '$(srcdir)/'`GreaterThan.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasefunctions_la-GreaterThan.Tpo $(DEPDIR)/libbasefunctions_la-GreaterThan.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GreaterThan.cc' object='libbasefunctions_la-GreaterThan.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basefunctions_la-NotEqual.lo `test -f 'NotEqual.cc' || echo '$(srcdir)/'`NotEqual.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasefunctions_la-GreaterThan.lo `test -f 'GreaterThan.cc' || echo '$(srcdir)/'`GreaterThan.cc -basefunctions_la-GreaterThan.lo: GreaterThan.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basefunctions_la-GreaterThan.lo -MD -MP -MF $(DEPDIR)/basefunctions_la-GreaterThan.Tpo -c -o basefunctions_la-GreaterThan.lo `test -f 'GreaterThan.cc' || echo '$(srcdir)/'`GreaterThan.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basefunctions_la-GreaterThan.Tpo $(DEPDIR)/basefunctions_la-GreaterThan.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GreaterThan.cc' object='basefunctions_la-GreaterThan.lo' libtool=yes @AMDEPBACKSLASH@ +libbasefunctions_la-GreaterOrEqual.lo: GreaterOrEqual.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasefunctions_la-GreaterOrEqual.lo -MD -MP -MF $(DEPDIR)/libbasefunctions_la-GreaterOrEqual.Tpo -c -o libbasefunctions_la-GreaterOrEqual.lo `test -f 'GreaterOrEqual.cc' || echo '$(srcdir)/'`GreaterOrEqual.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasefunctions_la-GreaterOrEqual.Tpo $(DEPDIR)/libbasefunctions_la-GreaterOrEqual.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GreaterOrEqual.cc' object='libbasefunctions_la-GreaterOrEqual.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basefunctions_la-GreaterThan.lo `test -f 'GreaterThan.cc' || echo '$(srcdir)/'`GreaterThan.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasefunctions_la-GreaterOrEqual.lo `test -f 'GreaterOrEqual.cc' || echo '$(srcdir)/'`GreaterOrEqual.cc -basefunctions_la-GreaterOrEqual.lo: GreaterOrEqual.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basefunctions_la-GreaterOrEqual.lo -MD -MP -MF $(DEPDIR)/basefunctions_la-GreaterOrEqual.Tpo -c -o basefunctions_la-GreaterOrEqual.lo `test -f 'GreaterOrEqual.cc' || echo '$(srcdir)/'`GreaterOrEqual.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basefunctions_la-GreaterOrEqual.Tpo $(DEPDIR)/basefunctions_la-GreaterOrEqual.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GreaterOrEqual.cc' object='basefunctions_la-GreaterOrEqual.lo' libtool=yes @AMDEPBACKSLASH@ +libbasefunctions_la-LessThan.lo: LessThan.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasefunctions_la-LessThan.lo -MD -MP -MF $(DEPDIR)/libbasefunctions_la-LessThan.Tpo -c -o libbasefunctions_la-LessThan.lo `test -f 'LessThan.cc' || echo '$(srcdir)/'`LessThan.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasefunctions_la-LessThan.Tpo $(DEPDIR)/libbasefunctions_la-LessThan.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='LessThan.cc' object='libbasefunctions_la-LessThan.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basefunctions_la-GreaterOrEqual.lo `test -f 'GreaterOrEqual.cc' || echo '$(srcdir)/'`GreaterOrEqual.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasefunctions_la-LessThan.lo `test -f 'LessThan.cc' || echo '$(srcdir)/'`LessThan.cc -basefunctions_la-LessThan.lo: LessThan.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basefunctions_la-LessThan.lo -MD -MP -MF $(DEPDIR)/basefunctions_la-LessThan.Tpo -c -o basefunctions_la-LessThan.lo `test -f 'LessThan.cc' || echo '$(srcdir)/'`LessThan.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basefunctions_la-LessThan.Tpo $(DEPDIR)/basefunctions_la-LessThan.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='LessThan.cc' object='basefunctions_la-LessThan.lo' libtool=yes @AMDEPBACKSLASH@ +libbasefunctions_la-LessOrEqual.lo: LessOrEqual.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasefunctions_la-LessOrEqual.lo -MD -MP -MF $(DEPDIR)/libbasefunctions_la-LessOrEqual.Tpo -c -o libbasefunctions_la-LessOrEqual.lo `test -f 'LessOrEqual.cc' || echo '$(srcdir)/'`LessOrEqual.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasefunctions_la-LessOrEqual.Tpo $(DEPDIR)/libbasefunctions_la-LessOrEqual.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='LessOrEqual.cc' object='libbasefunctions_la-LessOrEqual.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basefunctions_la-LessThan.lo `test -f 'LessThan.cc' || echo '$(srcdir)/'`LessThan.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasefunctions_la-LessOrEqual.lo `test -f 'LessOrEqual.cc' || echo '$(srcdir)/'`LessOrEqual.cc -basefunctions_la-LessOrEqual.lo: LessOrEqual.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basefunctions_la-LessOrEqual.lo -MD -MP -MF $(DEPDIR)/basefunctions_la-LessOrEqual.Tpo -c -o basefunctions_la-LessOrEqual.lo `test -f 'LessOrEqual.cc' || echo '$(srcdir)/'`LessOrEqual.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basefunctions_la-LessOrEqual.Tpo $(DEPDIR)/basefunctions_la-LessOrEqual.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='LessOrEqual.cc' object='basefunctions_la-LessOrEqual.lo' libtool=yes @AMDEPBACKSLASH@ +libbasefunctions_la-Seq.lo: Seq.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasefunctions_la-Seq.lo -MD -MP -MF $(DEPDIR)/libbasefunctions_la-Seq.Tpo -c -o libbasefunctions_la-Seq.lo `test -f 'Seq.cc' || echo '$(srcdir)/'`Seq.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasefunctions_la-Seq.Tpo $(DEPDIR)/libbasefunctions_la-Seq.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Seq.cc' object='libbasefunctions_la-Seq.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basefunctions_la-LessOrEqual.lo `test -f 'LessOrEqual.cc' || echo '$(srcdir)/'`LessOrEqual.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefunctions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasefunctions_la-Seq.lo `test -f 'Seq.cc' || echo '$(srcdir)/'`Seq.cc + +libbasefuntest_la-testbasefun.lo: testbasefun.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefuntest_la_CPPFLAGS) $(CPPFLAGS) $(libbasefuntest_la_CXXFLAGS) $(CXXFLAGS) -MT libbasefuntest_la-testbasefun.lo -MD -MP -MF $(DEPDIR)/libbasefuntest_la-testbasefun.Tpo -c -o libbasefuntest_la-testbasefun.lo `test -f 'testbasefun.cc' || echo '$(srcdir)/'`testbasefun.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasefuntest_la-testbasefun.Tpo $(DEPDIR)/libbasefuntest_la-testbasefun.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='testbasefun.cc' object='libbasefuntest_la-testbasefun.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasefuntest_la_CPPFLAGS) $(CPPFLAGS) $(libbasefuntest_la_CXXFLAGS) $(CXXFLAGS) -c -o libbasefuntest_la-testbasefun.lo `test -f 'testbasefun.cc' || echo '$(srcdir)/'`testbasefun.cc mostlyclean-libtool: -rm -f *.lo @@ -479,26 +624,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -510,15 +644,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -527,6 +657,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -562,6 +707,7 @@ fi; \ done check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_LTLIBRARIES) check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: @@ -597,8 +743,8 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ - mostlyclean-am +clean-am: clean-checkLTLIBRARIES clean-generic clean-libtool \ + clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -666,10 +812,11 @@ uninstall-am: -.MAKE: install-am install-strip +.MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-checkLTLIBRARIES clean-generic clean-libtool \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ @@ -679,7 +826,9 @@ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/base/functions/Multiply.cc jags-4.0.0/src/modules/base/functions/Multiply.cc --- jags-3.4.0/src/modules/base/functions/Multiply.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Multiply.cc 2015-02-22 08:33:05.000000000 +0000 @@ -4,6 +4,7 @@ using std::vector; +namespace jags { namespace base { Multiply::Multiply () : Infix ("*", 0) @@ -65,4 +66,4 @@ return true; } -} +}} diff -Nru jags-3.4.0/src/modules/base/functions/Multiply.h jags-4.0.0/src/modules/base/functions/Multiply.h --- jags-3.4.0/src/modules/base/functions/Multiply.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Multiply.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include "Infix.h" +namespace jags { namespace base { /** @@ -24,6 +25,6 @@ std::vector const &fix) const; }; -} +}} #endif /* FUNC_MULTIPLY_H_ */ diff -Nru jags-3.4.0/src/modules/base/functions/Neg.cc jags-4.0.0/src/modules/base/functions/Neg.cc --- jags-3.4.0/src/modules/base/functions/Neg.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Neg.cc 2015-02-22 08:33:05.000000000 +0000 @@ -7,6 +7,7 @@ using std::vector; using std::string; +namespace jags { namespace base { Neg::Neg () : ScalarFunction ("NEG", 1) @@ -33,4 +34,4 @@ return string("-") + par[0]; } -} +}} diff -Nru jags-3.4.0/src/modules/base/functions/Neg.h jags-4.0.0/src/modules/base/functions/Neg.h --- jags-3.4.0/src/modules/base/functions/Neg.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Neg.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace base { /** @@ -22,6 +23,6 @@ }; -} +}} #endif /* FUNC_NEG_H_ */ diff -Nru jags-3.4.0/src/modules/base/functions/Not.cc jags-4.0.0/src/modules/base/functions/Not.cc --- jags-3.4.0/src/modules/base/functions/Not.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Not.cc 2015-02-22 08:33:05.000000000 +0000 @@ -4,6 +4,7 @@ using std::vector; using std::string; +namespace jags { namespace base { Not::Not () : ScalarFunction ("!", 1) @@ -12,7 +13,7 @@ double Not::evaluate(vector const &args) const { - return *args[0] != 0; + return *args[0] == 0; } bool Not::isDiscreteValued(vector const &mask) const @@ -25,4 +26,4 @@ return string("!") + par[0]; } -} +}} diff -Nru jags-3.4.0/src/modules/base/functions/NotEqual.cc jags-4.0.0/src/modules/base/functions/NotEqual.cc --- jags-3.4.0/src/modules/base/functions/NotEqual.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/NotEqual.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; +namespace jags { namespace base { NotEqual::NotEqual () : Infix ("!=") @@ -22,4 +23,4 @@ return true; } -} +}} diff -Nru jags-3.4.0/src/modules/base/functions/NotEqual.h jags-4.0.0/src/modules/base/functions/NotEqual.h --- jags-3.4.0/src/modules/base/functions/NotEqual.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/NotEqual.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include "Infix.h" +namespace jags { namespace base { /** @@ -22,6 +23,6 @@ bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* FUNC_NOT_EQUAL_H_ */ diff -Nru jags-3.4.0/src/modules/base/functions/Not.h jags-4.0.0/src/modules/base/functions/Not.h --- jags-3.4.0/src/modules/base/functions/Not.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Not.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace base { /** @@ -19,6 +20,6 @@ std::string deparse(std::vector const &par) const; }; -} +}} #endif /* FUNC_NOT_H_ */ diff -Nru jags-3.4.0/src/modules/base/functions/Or.cc jags-4.0.0/src/modules/base/functions/Or.cc --- jags-3.4.0/src/modules/base/functions/Or.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Or.cc 2015-02-22 08:33:05.000000000 +0000 @@ -3,20 +3,21 @@ using std::vector; +namespace jags { namespace base { -Or::Or () : Infix ("||") -{ -} - -double Or::evaluate(vector const &args) const -{ - return *args[0] || *args[1]; -} - -bool Or::isDiscreteValued(vector const &mask) const -{ - return true; -} + Or::Or () : Infix ("||") + { + } + + double Or::evaluate(vector const &args) const + { + return *args[0] || *args[1]; + } + + bool Or::isDiscreteValued(vector const &mask) const + { + return true; + } -} +}} diff -Nru jags-3.4.0/src/modules/base/functions/Or.h jags-4.0.0/src/modules/base/functions/Or.h --- jags-3.4.0/src/modules/base/functions/Or.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Or.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include "Infix.h" +namespace jags { namespace base { /** @@ -23,6 +24,6 @@ bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* FUNC_OR_H_ */ diff -Nru jags-3.4.0/src/modules/base/functions/Pow.cc jags-4.0.0/src/modules/base/functions/Pow.cc --- jags-3.4.0/src/modules/base/functions/Pow.cc 2012-11-30 09:10:51.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Pow.cc 2015-02-22 08:33:05.000000000 +0000 @@ -8,6 +8,7 @@ using std::pow; using std::string; +namespace jags { namespace base { Pow::Pow () : Infix ("^") @@ -44,4 +45,5 @@ else return fix.empty() || fix[1]; } -} + +}} diff -Nru jags-3.4.0/src/modules/base/functions/Pow.h jags-4.0.0/src/modules/base/functions/Pow.h --- jags-3.4.0/src/modules/base/functions/Pow.h 2012-11-30 09:10:17.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Pow.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include "Infix.h" +namespace jags { namespace base { /** @@ -20,6 +21,6 @@ std::vector const &fix) const; }; -} +}} #endif /* FUNC_POW_H_ */ diff -Nru jags-3.4.0/src/modules/base/functions/Seq.cc jags-4.0.0/src/modules/base/functions/Seq.cc --- jags-3.4.0/src/modules/base/functions/Seq.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Seq.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,73 @@ +#include +#include "Seq.h" + +using std::vector; +using std::string; + +namespace jags { + namespace base { + + Seq::Seq() : VectorFunction(":", 2) + { + } + + void Seq::evaluate(double *value, + vector const &par_values, + vector const &par_lengths) const + { + int lhs = static_cast(*par_values[0]); + int rhs = static_cast(*par_values[1]); + + if (rhs < lhs) return; + + int N = rhs - lhs + 1; + for (int i = 0; i < N; ++i) { + value[i] = lhs + i; + } + } + + unsigned int Seq::length(vector const &lengths, + vector const &values) const + { + int lhs = static_cast(*values[0]); + int rhs = static_cast(*values[1]); + + if (rhs < lhs) { + return 0; + } + else { + return rhs - lhs + 1; + } + } + + bool Seq::checkParameterLength(vector const &len) const + { + return (len[0] == 1) && (len[1] == 1); + } + + bool Seq::isDiscreteValued(vector const &mask) const + { + return true; + } + + bool Seq::checkParameterDiscrete(vector const &mask) const + { + //Both parameters must be discrete + return mask[0] && mask[1]; + } + + bool Seq::checkParameterFixed(vector const &mask) const + { + //Both parameters must be fixed so that the length of the + //output vector is fixed + return mask[0] && mask[1]; + } + + string Seq::deparse(vector const &par) const + { + return par[0] + ":" + par[1]; + } + + } /* namespace base */ +} /* namespace jags */ + diff -Nru jags-3.4.0/src/modules/base/functions/Seq.h jags-4.0.0/src/modules/base/functions/Seq.h --- jags-3.4.0/src/modules/base/functions/Seq.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Seq.h 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,38 @@ +#ifndef SEQ_H_ +#define SEQ_H_ + +#include + +namespace jags { + namespace base { + + /** + * @short Integer sequence + * + * The Seq function implements the infix operator ":" in the BUGS language. + * The arguments must be integer. + *
+     * y <- a:b
+     * 
+ * + */ + class Seq : public VectorFunction + { + public: + Seq(); + void evaluate(double *value, + std::vector const &values, + std::vector const &lengths) const; + unsigned int length(std::vector const &lengths, + std::vector const &values) const; + bool checkParameterLength(std::vector const &args) const; + bool isDiscreteValued(std::vector const &mask) const; + bool checkParameterDiscrete(std::vector const &mask) const; + bool checkParameterFixed(std::vector const &mask) const; + std::string deparse(std::vector const &par) const; + }; + + } +} /* namespace jags */ + +#endif /* SEQ_H_ */ diff -Nru jags-3.4.0/src/modules/base/functions/Subtract.cc jags-4.0.0/src/modules/base/functions/Subtract.cc --- jags-3.4.0/src/modules/base/functions/Subtract.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Subtract.cc 2015-07-03 05:46:26.000000000 +0000 @@ -4,6 +4,7 @@ using std::vector; +namespace jags { namespace base { Subtract::Subtract () : Infix ("-") @@ -20,6 +21,18 @@ { return allTrue(mask); } + + bool Subtract::isAdditive(vector const &mask, + vector const &fix) const + { + if (!mask[0] || mask[1]) return false; + if (fix.empty()) { + return true; + } + else { + return (!fix[0] && fix[1]); + } + } bool Subtract::isScale(vector const &mask, vector const &fix) const @@ -32,4 +45,5 @@ { return true; } -} + +}} diff -Nru jags-3.4.0/src/modules/base/functions/Subtract.h jags-4.0.0/src/modules/base/functions/Subtract.h --- jags-3.4.0/src/modules/base/functions/Subtract.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/Subtract.h 2015-07-03 06:07:50.000000000 +0000 @@ -3,6 +3,7 @@ #include "Infix.h" +namespace jags { namespace base { /** @@ -20,12 +21,14 @@ Subtract (); double evaluate(std::vector const &args) const; bool isDiscreteValued(std::vector const &mask) const; + bool isAdditive(std::vector const &mask, + std::vector const &fix) const; bool isScale(std::vector const &mask, std::vector const &fix) const; bool isLinear(std::vector const &mask, std::vector const &fix) const; }; -} +}} #endif /* FUNC_SUBTRACT_H_ */ diff -Nru jags-3.4.0/src/modules/base/functions/testbasefun.cc jags-4.0.0/src/modules/base/functions/testbasefun.cc --- jags-3.4.0/src/modules/base/functions/testbasefun.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/testbasefun.cc 2015-09-26 21:46:06.000000000 +0000 @@ -0,0 +1,398 @@ +#include "testbasefun.h" + +#include "Add.h" +#include "And.h" +#include "Divide.h" +#include "Equal.h" +#include "GreaterOrEqual.h" +#include "GreaterThan.h" +#include "LessOrEqual.h" +#include "LessThan.h" +#include "Multiply.h" +#include "Neg.h" +#include "NotEqual.h" +#include "Not.h" +#include "Or.h" +#include "Pow.h" +#include "Seq.h" +#include "Subtract.h" + +#include +#include +#include +using jags::checkInteger; + +#include +using std::pow; +using std::vector; +using std::string; + +#include +static double tol = 16 * DBL_EPSILON; + +void BaseFunTest::setUp() +{ + _add = new jags::base::Add; + _and = new jags::base::And; + _divide = new jags::base::Divide; + _equal = new jags::base::Equal; + _geq = new jags::base::GreaterOrEqual; + _gt = new jags::base::GreaterThan; + _leq = new jags::base::LessOrEqual; + _lt = new jags::base::LessThan; + _multiply = new jags::base::Multiply; + _neg = new jags::base::Neg; + _neq = new jags::base::NotEqual; + _not = new jags::base::Not; + _or = new jags::base::Or; + _pow = new jags::base::Pow; + _seq = new jags::base::Seq; + _subtract = new jags::base::Subtract; +} + +void BaseFunTest::tearDown() +{ + delete _add; + delete _and; + delete _divide; + delete _equal; + delete _geq; + delete _gt; + delete _leq; + delete _lt; + delete _multiply; + delete _neg; + delete _neq; + delete _not; + delete _or; + delete _pow; + delete _seq; + delete _subtract; +} + +void BaseFunTest::name() +{ + CPPUNIT_ASSERT_EQUAL(string("+"), _add->name()); + CPPUNIT_ASSERT_EQUAL(string("&&"), _and->name()); + CPPUNIT_ASSERT_EQUAL(string("/"), _divide->name()); + CPPUNIT_ASSERT_EQUAL(string("=="), _equal->name()); + CPPUNIT_ASSERT_EQUAL(string(">="), _geq->name()); + CPPUNIT_ASSERT_EQUAL(string(">"), _gt->name()); + CPPUNIT_ASSERT_EQUAL(string("<="), _leq->name()); + CPPUNIT_ASSERT_EQUAL(string("<"), _lt->name()); + CPPUNIT_ASSERT_EQUAL(string("*"), _multiply->name()); + //Unary minus is converted to the token NEG to avoid + //confusing with binary minus + CPPUNIT_ASSERT_EQUAL(string("NEG"), _neg->name()); + CPPUNIT_ASSERT_EQUAL(string("!="), _neq->name()); + CPPUNIT_ASSERT_EQUAL(string("!"), _not->name()); + CPPUNIT_ASSERT_EQUAL(string("||"), _or->name()); + CPPUNIT_ASSERT_EQUAL(string("^"), _pow->name()); + CPPUNIT_ASSERT_EQUAL(string("-"), _subtract->name()); + CPPUNIT_ASSERT_EQUAL(string(":"), _seq->name()); +} + +void BaseFunTest::alias() +{ + //None of the built-in functions has an alias, except pow + CPPUNIT_ASSERT_EQUAL(string(""), _add->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _and->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _divide->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _equal->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _geq->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _gt->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _leq->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _lt->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _multiply->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _neg->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _neq->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _not->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _or->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _subtract->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _seq->alias()); + CPPUNIT_ASSERT_EQUAL(string("pow"), _pow->alias()); +} + +void BaseFunTest::arithmetic1(double v) +{ + //Arithmetic functions taking a single argument + CPPUNIT_ASSERT_EQUAL(_neg->npar(), 1U); + CPPUNIT_ASSERT(checkNPar(_add, 1)); + CPPUNIT_ASSERT(checkNPar(_multiply, 1)); + + CPPUNIT_ASSERT_EQUAL(-v, eval(_neg, v)); + CPPUNIT_ASSERT_EQUAL(v, eval(_add, v)); + CPPUNIT_ASSERT_EQUAL(v, eval(_multiply, v)); +} + +void BaseFunTest::arithmetic2(double v1, double v2) +{ + //Arithmetic functions taking two arguments + CPPUNIT_ASSERT(checkNPar(_add, 2)); + CPPUNIT_ASSERT(checkNPar(_multiply, 2)); + CPPUNIT_ASSERT_EQUAL(_subtract->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_divide->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_pow->npar(), 2U); + + CPPUNIT_ASSERT_EQUAL(v1 + v2, eval(_add, v1, v2)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(v1 - v2, eval(_subtract, v1, v2), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(v1 * v2, eval(_multiply, v1, v2), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(v1 / v2, eval(_divide, v1, v2), tol); + if (v1 < 0 && !checkInteger(v2)) { + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_pow, v1, v2)); + } + else { + CPPUNIT_ASSERT_DOUBLES_EQUAL(pow(v1, v2), eval(_pow, v1, v2), tol); + } +} + +void BaseFunTest::arithmetic3(double v1, double v2, double v3) +{ + //Arithmetic functions taking 3 arguments + CPPUNIT_ASSERT(checkNPar(_add, 3)); + CPPUNIT_ASSERT(checkNPar(_multiply, 3)); + + vector args(3); + args[0] = &v1; + args[1] = &v2; + args[2] = &v3; + + CPPUNIT_ASSERT_EQUAL(_add->evaluate(args), v1 + v2 + v3); + CPPUNIT_ASSERT_DOUBLES_EQUAL(_multiply->evaluate(args), v1 * v2 * v3, tol); +} + +void BaseFunTest::arithmetic() +{ + arithmetic1(0.0); + arithmetic1(-3.7); + arithmetic1(28.16); + + arithmetic2( 1.0, 2.0); + arithmetic2(-1.0, 3.0); + arithmetic2(-2.5, 8.3); + arithmetic2(-3.7, -1.9); + + arithmetic3( 0.0, 0.0, 0.0); + arithmetic3( 1.0, 2.0, 3.0); + arithmetic3(-1.0, 3.0, -19.2); + arithmetic3(-2.5, 8.3, -8.62); + arithmetic3(-3.7, -1.9, -3.8); +} + +void BaseFunTest::logical1() +{ + //Logical Not takes one argument + CPPUNIT_ASSERT_EQUAL(_not->npar(), 1U); + + CPPUNIT_ASSERT_EQUAL(1.0, eval(_not, 0)); + CPPUNIT_ASSERT_EQUAL(0.0, eval(_not, 1)); + //Any non-zero value should be interpreted as TRUE + CPPUNIT_ASSERT_EQUAL(0.0, eval(_not, 2)); + CPPUNIT_ASSERT_EQUAL(0.0, eval(_not, -0.5)); +} + +void BaseFunTest::logical2() +{ + //Logical And and Logical Or take two arguments + CPPUNIT_ASSERT_EQUAL(_and->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_or->npar(), 2U); + + double TRUE=1, FALSE=0; + + CPPUNIT_ASSERT_EQUAL(FALSE, eval(_and, FALSE, FALSE)); + CPPUNIT_ASSERT_EQUAL(FALSE, eval(_and, FALSE, TRUE)); + CPPUNIT_ASSERT_EQUAL(FALSE, eval(_and, TRUE, FALSE)); + CPPUNIT_ASSERT_EQUAL(TRUE, eval(_and, TRUE, TRUE)); + + CPPUNIT_ASSERT_EQUAL(FALSE, eval(_or, FALSE, FALSE)); + CPPUNIT_ASSERT_EQUAL(TRUE, eval(_or, FALSE, TRUE)); + CPPUNIT_ASSERT_EQUAL(TRUE, eval(_or, TRUE, FALSE)); + CPPUNIT_ASSERT_EQUAL(TRUE, eval(_or, TRUE, TRUE)); + + //Any non-zero value should be interpreted as "true". + //Try it with a few arbitrary non-zero values. + double truevals[4] = {-3.872, 1e100, DBL_EPSILON, 3}; + + for (unsigned int i = 0; i < 4; ++i) { + + CPPUNIT_ASSERT_EQUAL(FALSE, eval(_and, FALSE, truevals[i])); + CPPUNIT_ASSERT_EQUAL(FALSE, eval(_and, truevals[i], FALSE)); + CPPUNIT_ASSERT_EQUAL(TRUE, eval(_and, truevals[i], truevals[i])); + + CPPUNIT_ASSERT_EQUAL(TRUE, eval(_or, FALSE, truevals[i])); + CPPUNIT_ASSERT_EQUAL(TRUE, eval(_or, truevals[i], FALSE)); + CPPUNIT_ASSERT_EQUAL(TRUE, eval(_or, truevals[i], truevals[i])); + } +} + +void BaseFunTest::logical() +{ + logical1(); + logical2(); +} + +void BaseFunTest::comparison2(double v1, double v2) +{ + CPPUNIT_ASSERT_EQUAL(static_cast(v1 == v2), eval(_equal, v1, v2)); + CPPUNIT_ASSERT_EQUAL(static_cast(v1 >= v2), eval(_geq, v1, v2)); + CPPUNIT_ASSERT_EQUAL(static_cast(v1 > v2), eval(_gt, v1, v2)); + CPPUNIT_ASSERT_EQUAL(static_cast(v1 <= v2), eval(_leq, v1, v2)); + CPPUNIT_ASSERT_EQUAL(static_cast(v1 < v2), eval(_lt, v1, v2)); + CPPUNIT_ASSERT_EQUAL(static_cast(v1 != v2), eval(_neq, v1, v2)); +} + +void BaseFunTest::comparison() +{ + //All of the comparison functions take 2 arguments + CPPUNIT_ASSERT_EQUAL(_equal->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_geq->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_gt->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_leq->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_lt->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_neq->npar(), 2U); + + comparison2( 0.0, 0.0); + comparison2( 1.0, 2.0); + comparison2( 1.0, 1.0); + comparison2(-1.0, 3.0); + comparison2(-2.5, 8.3); + comparison2(-3.7, -1.9); + comparison2( -2.8, -2.8); + comparison2( 0.0, DBL_EPSILON); + comparison2( DBL_EPSILON, 0.0); +} + +void BaseFunTest::discrete() +{ + + CPPUNIT_ASSERT(isdiscrete(_not, 1, always)); + CPPUNIT_ASSERT(isdiscrete(_and, 2, always)); + CPPUNIT_ASSERT(isdiscrete(_equal, 2, always)); + CPPUNIT_ASSERT(isdiscrete(_geq, 2, always)); + CPPUNIT_ASSERT(isdiscrete(_gt, 2, always)); + CPPUNIT_ASSERT(isdiscrete(_leq, 2, always)); + CPPUNIT_ASSERT(isdiscrete(_lt, 2, always)); + CPPUNIT_ASSERT(isdiscrete(_neq, 2, always)); + CPPUNIT_ASSERT(isdiscrete(_not, 1, always)); + CPPUNIT_ASSERT(isdiscrete(_or, 2, always)); + + CPPUNIT_ASSERT(isdiscrete(_multiply, 3, all)); + CPPUNIT_ASSERT(isdiscrete(_add, 3, all)); + CPPUNIT_ASSERT(isdiscrete(_divide, 2, never)); + CPPUNIT_ASSERT(isdiscrete(_subtract, 2, all)); + + CPPUNIT_ASSERT(isdiscrete(_seq, 2, always)); + CPPUNIT_ASSERT(isdiscrete(_pow, 2, never)); + +} + +void BaseFunTest::slp() +{ + //Functions that are not scale, linear or power functions + CPPUNIT_ASSERT(neverclosed(_and, 2)); + CPPUNIT_ASSERT(neverclosed(_equal, 2)); + CPPUNIT_ASSERT(neverclosed(_geq, 2)); + CPPUNIT_ASSERT(neverclosed(_gt, 2)); + CPPUNIT_ASSERT(neverclosed(_leq, 2)); + CPPUNIT_ASSERT(neverclosed(_gt, 2)); + CPPUNIT_ASSERT(neverclosed(_leq, 2)); + CPPUNIT_ASSERT(neverclosed(_lt, 2)); + CPPUNIT_ASSERT(neverclosed(_neq, 2)); + CPPUNIT_ASSERT(neverclosed(_not, 1)); + CPPUNIT_ASSERT(neverclosed(_or, 2)); + CPPUNIT_ASSERT(neverclosed(_seq, 2)); +} + +void BaseFunTest::linear() +{ + CPPUNIT_ASSERT(_add->isLinear(TT, vector())); + CPPUNIT_ASSERT(_add->isLinear(TF, vector())); + CPPUNIT_ASSERT(_add->isLinear(FT, vector())); + CPPUNIT_ASSERT(_add->isLinear(TF, FT)); + CPPUNIT_ASSERT(_add->isLinear(TF, FF)); + CPPUNIT_ASSERT(_add->isLinear(FT, TF)); + CPPUNIT_ASSERT(_add->isLinear(FT, FF)); + + CPPUNIT_ASSERT(_subtract->isLinear(TT, vector())); + CPPUNIT_ASSERT(_subtract->isLinear(TF, vector())); + CPPUNIT_ASSERT(_subtract->isLinear(FT, vector())); + CPPUNIT_ASSERT(_subtract->isLinear(TF, FT)); + CPPUNIT_ASSERT(_subtract->isLinear(TF, FF)); + CPPUNIT_ASSERT(_subtract->isLinear(FT, TF)); + CPPUNIT_ASSERT(_subtract->isLinear(FT, FF)); + + CPPUNIT_ASSERT(!_divide->isLinear(TT, vector())); + CPPUNIT_ASSERT(!_divide->isLinear(FT, vector())); + CPPUNIT_ASSERT(_divide->isLinear(TF, vector())); + CPPUNIT_ASSERT(_divide->isLinear(TF, FT)); + + CPPUNIT_ASSERT(!_multiply->isLinear(TT, vector())); + CPPUNIT_ASSERT(_multiply->isLinear(FT, vector())); + CPPUNIT_ASSERT(_multiply->isLinear(TF, vector())); + CPPUNIT_ASSERT(_multiply->isLinear(TF, FT)); + CPPUNIT_ASSERT(_multiply->isLinear(FT, TF)); + + CPPUNIT_ASSERT(neverlinear(_pow, 2)); +} + +void BaseFunTest::scale() +{ + CPPUNIT_ASSERT(_add->isScale(TT, vector())); + CPPUNIT_ASSERT(!_add->isScale(TF, vector())); + CPPUNIT_ASSERT(!_add->isScale(FT, vector())); + + CPPUNIT_ASSERT(_subtract->isScale(TT, vector())); + CPPUNIT_ASSERT(!_subtract->isScale(TF, vector())); + CPPUNIT_ASSERT(!_subtract->isScale(FT, vector())); + + CPPUNIT_ASSERT(!_divide->isScale(TT, vector())); + CPPUNIT_ASSERT(!_divide->isScale(FT, vector())); + CPPUNIT_ASSERT(_divide->isScale(TF, vector())); + CPPUNIT_ASSERT(_divide->isScale(TF, FT)); + + CPPUNIT_ASSERT(!_multiply->isScale(TT, vector())); + CPPUNIT_ASSERT(_multiply->isScale(FT, vector())); + CPPUNIT_ASSERT(_multiply->isScale(TF, vector())); + CPPUNIT_ASSERT(_multiply->isScale(TF, FT)); + CPPUNIT_ASSERT(_multiply->isScale(FT, TF)); + + CPPUNIT_ASSERT(neverscale(_pow, 2)); +} + +void BaseFunTest::power() +{ + CPPUNIT_ASSERT(neverpow(_add, 2)); + CPPUNIT_ASSERT(neverpow(_add, 3)); + CPPUNIT_ASSERT(neverpow(_subtract, 2)); + + CPPUNIT_ASSERT(_divide->isPower(TT, vector())); + CPPUNIT_ASSERT(_divide->isPower(FT, vector())); + CPPUNIT_ASSERT(_divide->isPower(FT, TF)); + CPPUNIT_ASSERT(_divide->isPower(TF, vector())); + CPPUNIT_ASSERT(_divide->isPower(TF, FT)); + + CPPUNIT_ASSERT(_multiply->isPower(TT, vector())); + CPPUNIT_ASSERT(_multiply->isPower(FT, vector())); + CPPUNIT_ASSERT(_multiply->isPower(FT, TF)); + CPPUNIT_ASSERT(_multiply->isPower(TF, vector())); + CPPUNIT_ASSERT(_multiply->isPower(TF, FT)); + + CPPUNIT_ASSERT(_pow->isPower(TF, vector())); + CPPUNIT_ASSERT(_pow->isPower(TF, FT)); + CPPUNIT_ASSERT(!_pow->isPower(FT, vector())); +} + +void BaseFunTest::seq() +{ + for (int i = -5; i < 6; ++i) { + for (int j = -6; j < 5; ++j) { + int len = (j < i) ? 0 : j - i + 1; + vector out = veval(_seq, i, j); + CPPUNIT_ASSERT(out.size() == len); + for (int k = 0; k < len; ++k) { + CPPUNIT_ASSERT_EQUAL(out[k], static_cast(i + k)); + } + } + } + +} diff -Nru jags-3.4.0/src/modules/base/functions/testbasefun.h jags-4.0.0/src/modules/base/functions/testbasefun.h --- jags-3.4.0/src/modules/base/functions/testbasefun.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/base/functions/testbasefun.h 2015-09-26 21:46:08.000000000 +0000 @@ -0,0 +1,76 @@ +#ifndef BASE_FUN_TEST_H +#define BASE_FUN_TEST_H + +#include +#include + +namespace jags { + class ScalarFunction; + class VectorFunction; +} + +class BaseFunTest : public CppUnit::TestFixture, public JAGSFixture +{ + CPPUNIT_TEST_SUITE( BaseFunTest ); + CPPUNIT_TEST( name ); + CPPUNIT_TEST( alias ); + CPPUNIT_TEST( logical ); + CPPUNIT_TEST( arithmetic ); + CPPUNIT_TEST( comparison ); + CPPUNIT_TEST( discrete ); + CPPUNIT_TEST( slp ); + CPPUNIT_TEST( linear ); + CPPUNIT_TEST( power ); + CPPUNIT_TEST( scale ); + CPPUNIT_TEST( seq ); + CPPUNIT_TEST_SUITE_END(); + + jags::ScalarFunction *_add; + jags::ScalarFunction *_and; + jags::ScalarFunction *_divide; + jags::ScalarFunction *_equal; + jags::ScalarFunction *_geq; + jags::ScalarFunction *_gt; + jags::ScalarFunction *_leq; + jags::ScalarFunction *_lt; + jags::ScalarFunction *_multiply; + jags::ScalarFunction *_neg; + jags::ScalarFunction *_neq; + jags::ScalarFunction *_not; + jags::ScalarFunction *_or; + jags::ScalarFunction *_pow; + jags::VectorFunction *_seq; + jags::ScalarFunction *_subtract; + + void arithmetic1(double); + void arithmetic2(double, double); + void arithmetic3(double, double, double); + + void logical1(); + void logical2(); + void logical3(); + + void comparison1(); + void comparison2(double, double); + void comparison3(); + + public: + void setUp(); + void tearDown(); + + void name(); + void alias(); + void logical(); + void arithmetic(); + void comparison(); + void discrete(); + void slp(); + void linear(); + void power(); + void scale(); + void seq(); +}; + +#endif // BASE_FUN_TEST_H + + diff -Nru jags-3.4.0/src/modules/base/Makefile.am jags-4.0.0/src/modules/base/Makefile.am --- jags-3.4.0/src/modules/base/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/Makefile.am 2015-09-28 21:10:11.000000000 +0000 @@ -1,15 +1,18 @@ SUBDIRS = functions samplers monitors rngs +### Base module: note that the name is "basemod" not "base" to avoid +### conflict with the base package in R. + jagsmod_LTLIBRARIES = basemod.la basemod_la_SOURCES = base.cc basemod_la_CPPFLAGS = -I$(top_srcdir)/src/include -basemod_la_LIBADD = functions/basefunctions.la \ - monitors/basemonitors.la \ - samplers/basesamplers.la \ - rngs/baserngs.la \ +basemod_la_LIBADD = functions/libbasefunctions.la \ + monitors/libbasemonitors.la \ + samplers/libbasesamplers.la \ + rngs/libbaserngs.la \ $(top_builddir)/src/jrmath/libjrmath.la \ $(top_builddir)/src/lib/libjags.la @@ -17,3 +20,18 @@ if WINDOWS basemod_la_LDFLAGS += -no-undefined endif + +### Test library + +check_LTLIBRARIES = libbasetest.la +libbasetest_la_SOURCES = testbase.cc testbase.h +libbasetest_la_CPPFLAGS = -I$(top_srcdir)/src/include +libbasetest_la_CXXFLAGS = $(CPPUNIT_CFLAGS) +libbasetest_la_LDFLAGS = $(CPPUNIT_LIBS) +libbasetest_la_LIBADD = functions/libbasefuntest.la \ + functions/libbasefunctions.la \ + $(top_builddir)/src/lib/libtest.la \ + $(top_builddir)/src/lib/libjags.la + $(top_builddir)/src/jrmath/libjrmath.la + + diff -Nru jags-3.4.0/src/modules/base/Makefile.in jags-4.0.0/src/modules/base/Makefile.in --- jags-3.4.0/src/modules/base/Makefile.in 2013-08-30 13:23:27.000000000 +0000 +++ jags-4.0.0/src/modules/base/Makefile.in 2015-09-28 21:41:13.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,7 +90,6 @@ host_triplet = @host@ @WINDOWS_TRUE@am__append_1 = -no-undefined subdir = src/modules/base -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -63,6 +99,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -96,37 +133,91 @@ } am__installdirs = "$(DESTDIR)$(jagsmoddir)" LTLIBRARIES = $(jagsmod_LTLIBRARIES) -basemod_la_DEPENDENCIES = functions/basefunctions.la \ - monitors/basemonitors.la samplers/basesamplers.la \ - rngs/baserngs.la $(top_builddir)/src/jrmath/libjrmath.la \ +basemod_la_DEPENDENCIES = functions/libbasefunctions.la \ + monitors/libbasemonitors.la samplers/libbasesamplers.la \ + rngs/libbaserngs.la $(top_builddir)/src/jrmath/libjrmath.la \ $(top_builddir)/src/lib/libjags.la am_basemod_la_OBJECTS = basemod_la-base.lo basemod_la_OBJECTS = $(am_basemod_la_OBJECTS) -basemod_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +basemod_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(basemod_la_LDFLAGS) $(LDFLAGS) -o $@ +libbasetest_la_DEPENDENCIES = functions/libbasefuntest.la \ + functions/libbasefunctions.la \ + $(top_builddir)/src/lib/libtest.la \ + $(top_builddir)/src/lib/libjags.la +am_libbasetest_la_OBJECTS = libbasetest_la-testbase.lo +libbasetest_la_OBJECTS = $(am_libbasetest_la_OBJECTS) +libbasetest_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ + $(libbasetest_la_CXXFLAGS) $(CXXFLAGS) \ + $(libbasetest_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(basemod_la_SOURCES) -DIST_SOURCES = $(basemod_la_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(basemod_la_SOURCES) $(libbasetest_la_SOURCES) +DIST_SOURCES = $(basemod_la_SOURCES) $(libbasetest_la_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -134,12 +225,33 @@ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ @@ -168,6 +280,7 @@ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -181,6 +294,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -250,10 +366,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -320,17 +432,32 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = functions samplers monitors rngs + +### Base module: note that the name is "basemod" not "base" to avoid +### conflict with the base package in R. jagsmod_LTLIBRARIES = basemod.la basemod_la_SOURCES = base.cc basemod_la_CPPFLAGS = -I$(top_srcdir)/src/include -basemod_la_LIBADD = functions/basefunctions.la \ - monitors/basemonitors.la \ - samplers/basesamplers.la \ - rngs/baserngs.la \ +basemod_la_LIBADD = functions/libbasefunctions.la \ + monitors/libbasemonitors.la \ + samplers/libbasesamplers.la \ + rngs/libbaserngs.la \ $(top_builddir)/src/jrmath/libjrmath.la \ $(top_builddir)/src/lib/libjags.la basemod_la_LDFLAGS = -module -avoid-version $(am__append_1) + +### Test library +check_LTLIBRARIES = libbasetest.la +libbasetest_la_SOURCES = testbase.cc testbase.h +libbasetest_la_CPPFLAGS = -I$(top_srcdir)/src/include +libbasetest_la_CXXFLAGS = $(CPPUNIT_CFLAGS) +libbasetest_la_LDFLAGS = $(CPPUNIT_LIBS) +libbasetest_la_LIBADD = functions/libbasefuntest.la \ + functions/libbasefunctions.la \ + $(top_builddir)/src/lib/libtest.la \ + $(top_builddir)/src/lib/libjags.la + all: all-recursive .SUFFIXES: @@ -347,7 +474,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/base/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/base/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -365,6 +491,18 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + +clean-checkLTLIBRARIES: + -test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES) + @list='$(check_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + install-jagsmodLTLIBRARIES: $(jagsmod_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(jagsmod_LTLIBRARIES)'; test -n "$(jagsmoddir)" || list=; \ @@ -391,14 +529,20 @@ clean-jagsmodLTLIBRARIES: -test -z "$(jagsmod_LTLIBRARIES)" || rm -f $(jagsmod_LTLIBRARIES) - @list='$(jagsmod_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(jagsmod_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + basemod.la: $(basemod_la_OBJECTS) $(basemod_la_DEPENDENCIES) $(EXTRA_basemod_la_DEPENDENCIES) - $(basemod_la_LINK) -rpath $(jagsmoddir) $(basemod_la_OBJECTS) $(basemod_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(basemod_la_LINK) -rpath $(jagsmoddir) $(basemod_la_OBJECTS) $(basemod_la_LIBADD) $(LIBS) + +libbasetest.la: $(libbasetest_la_OBJECTS) $(libbasetest_la_DEPENDENCIES) $(EXTRA_libbasetest_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libbasetest_la_LINK) $(libbasetest_la_OBJECTS) $(libbasetest_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -407,34 +551,45 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basemod_la-base.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasetest_la-testbase.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< basemod_la-base.lo: base.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basemod_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basemod_la-base.lo -MD -MP -MF $(DEPDIR)/basemod_la-base.Tpo -c -o basemod_la-base.lo `test -f 'base.cc' || echo '$(srcdir)/'`base.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basemod_la-base.Tpo $(DEPDIR)/basemod_la-base.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='base.cc' object='basemod_la-base.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basemod_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basemod_la-base.lo -MD -MP -MF $(DEPDIR)/basemod_la-base.Tpo -c -o basemod_la-base.lo `test -f 'base.cc' || echo '$(srcdir)/'`base.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/basemod_la-base.Tpo $(DEPDIR)/basemod_la-base.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='base.cc' object='basemod_la-base.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basemod_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basemod_la-base.lo `test -f 'base.cc' || echo '$(srcdir)/'`base.cc + +libbasetest_la-testbase.lo: testbase.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasetest_la_CPPFLAGS) $(CPPFLAGS) $(libbasetest_la_CXXFLAGS) $(CXXFLAGS) -MT libbasetest_la-testbase.lo -MD -MP -MF $(DEPDIR)/libbasetest_la-testbase.Tpo -c -o libbasetest_la-testbase.lo `test -f 'testbase.cc' || echo '$(srcdir)/'`testbase.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasetest_la-testbase.Tpo $(DEPDIR)/libbasetest_la-testbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='testbase.cc' object='libbasetest_la-testbase.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basemod_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basemod_la-base.lo `test -f 'base.cc' || echo '$(srcdir)/'`base.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasetest_la_CPPFLAGS) $(CPPFLAGS) $(libbasetest_la_CXXFLAGS) $(CXXFLAGS) -c -o libbasetest_la-testbase.lo `test -f 'testbase.cc' || echo '$(srcdir)/'`testbase.cc mostlyclean-libtool: -rm -f *.lo @@ -443,22 +598,25 @@ -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -473,57 +631,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -539,12 +652,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -556,15 +664,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -573,6 +677,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -633,6 +752,7 @@ fi; \ done check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_LTLIBRARIES) check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive @@ -672,8 +792,8 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-generic clean-jagsmodLTLIBRARIES clean-libtool \ - mostlyclean-am +clean-am: clean-checkLTLIBRARIES clean-generic \ + clean-jagsmodLTLIBRARIES clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) @@ -741,13 +861,12 @@ uninstall-am: uninstall-jagsmodLTLIBRARIES -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) check-am install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic \ - clean-jagsmodLTLIBRARIES clean-libtool ctags ctags-recursive \ - distclean distclean-compile distclean-generic \ +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-checkLTLIBRARIES clean-generic \ + clean-jagsmodLTLIBRARIES clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -757,9 +876,12 @@ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-jagsmodLTLIBRARIES + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-jagsmodLTLIBRARIES + +.PRECIOUS: Makefile + $(top_builddir)/src/jrmath/libjrmath.la # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru jags-3.4.0/src/modules/base/monitors/Makefile.am jags-4.0.0/src/modules/base/monitors/Makefile.am --- jags-3.4.0/src/modules/base/monitors/Makefile.am 2012-11-20 10:42:16.000000000 +0000 +++ jags-4.0.0/src/modules/base/monitors/Makefile.am 2015-09-27 07:17:09.000000000 +0000 @@ -1,10 +1,8 @@ -noinst_LTLIBRARIES = basemonitors.la +noinst_LTLIBRARIES = libbasemonitors.la -basemonitors_la_CPPFLAGS = -I$(top_srcdir)/src/include +libbasemonitors_la_CPPFLAGS = -I$(top_srcdir)/src/include -basemonitors_la_LDFLAGS = -no-undefined -module -avoid-version - -basemonitors_la_SOURCES = TraceMonitor.cc TraceMonitorFactory.cc \ +libbasemonitors_la_SOURCES = TraceMonitor.cc TraceMonitorFactory.cc \ MeanMonitor.cc MeanMonitorFactory.cc noinst_HEADERS = TraceMonitor.h TraceMonitorFactory.h MeanMonitor.h \ diff -Nru jags-3.4.0/src/modules/base/monitors/Makefile.in jags-4.0.0/src/modules/base/monitors/Makefile.in --- jags-3.4.0/src/modules/base/monitors/Makefile.in 2013-08-30 13:23:27.000000000 +0000 +++ jags-4.0.0/src/modules/base/monitors/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/base/monitors -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,46 +99,89 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) -basemonitors_la_LIBADD = -am_basemonitors_la_OBJECTS = basemonitors_la-TraceMonitor.lo \ - basemonitors_la-TraceMonitorFactory.lo \ - basemonitors_la-MeanMonitor.lo \ - basemonitors_la-MeanMonitorFactory.lo -basemonitors_la_OBJECTS = $(am_basemonitors_la_OBJECTS) -basemonitors_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ - $(CXXFLAGS) $(basemonitors_la_LDFLAGS) $(LDFLAGS) -o $@ +libbasemonitors_la_LIBADD = +am_libbasemonitors_la_OBJECTS = libbasemonitors_la-TraceMonitor.lo \ + libbasemonitors_la-TraceMonitorFactory.lo \ + libbasemonitors_la-MeanMonitor.lo \ + libbasemonitors_la-MeanMonitorFactory.lo +libbasemonitors_la_OBJECTS = $(am_libbasemonitors_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(basemonitors_la_SOURCES) -DIST_SOURCES = $(basemonitors_la_SOURCES) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +SOURCES = $(libbasemonitors_la_SOURCES) +DIST_SOURCES = $(libbasemonitors_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -117,6 +195,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -186,10 +267,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -255,10 +332,9 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -noinst_LTLIBRARIES = basemonitors.la -basemonitors_la_CPPFLAGS = -I$(top_srcdir)/src/include -basemonitors_la_LDFLAGS = -no-undefined -module -avoid-version -basemonitors_la_SOURCES = TraceMonitor.cc TraceMonitorFactory.cc \ +noinst_LTLIBRARIES = libbasemonitors.la +libbasemonitors_la_CPPFLAGS = -I$(top_srcdir)/src/include +libbasemonitors_la_SOURCES = TraceMonitor.cc TraceMonitorFactory.cc \ MeanMonitor.cc MeanMonitorFactory.cc noinst_HEADERS = TraceMonitor.h TraceMonitorFactory.h MeanMonitor.h \ @@ -280,7 +356,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/base/monitors/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/base/monitors/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -301,14 +376,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -basemonitors.la: $(basemonitors_la_OBJECTS) $(basemonitors_la_DEPENDENCIES) $(EXTRA_basemonitors_la_DEPENDENCIES) - $(basemonitors_la_LINK) $(basemonitors_la_OBJECTS) $(basemonitors_la_LIBADD) $(LIBS) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libbasemonitors.la: $(libbasemonitors_la_OBJECTS) $(libbasemonitors_la_DEPENDENCIES) $(EXTRA_libbasemonitors_la_DEPENDENCIES) + $(AM_V_CXXLD)$(CXXLINK) $(libbasemonitors_la_OBJECTS) $(libbasemonitors_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -316,59 +394,62 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basemonitors_la-MeanMonitor.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basemonitors_la-MeanMonitorFactory.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basemonitors_la-TraceMonitor.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basemonitors_la-TraceMonitorFactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasemonitors_la-MeanMonitor.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasemonitors_la-MeanMonitorFactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasemonitors_la-TraceMonitor.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasemonitors_la-TraceMonitorFactory.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< -basemonitors_la-TraceMonitor.lo: TraceMonitor.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basemonitors_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basemonitors_la-TraceMonitor.lo -MD -MP -MF $(DEPDIR)/basemonitors_la-TraceMonitor.Tpo -c -o basemonitors_la-TraceMonitor.lo `test -f 'TraceMonitor.cc' || echo '$(srcdir)/'`TraceMonitor.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basemonitors_la-TraceMonitor.Tpo $(DEPDIR)/basemonitors_la-TraceMonitor.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TraceMonitor.cc' object='basemonitors_la-TraceMonitor.lo' libtool=yes @AMDEPBACKSLASH@ +libbasemonitors_la-TraceMonitor.lo: TraceMonitor.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasemonitors_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasemonitors_la-TraceMonitor.lo -MD -MP -MF $(DEPDIR)/libbasemonitors_la-TraceMonitor.Tpo -c -o libbasemonitors_la-TraceMonitor.lo `test -f 'TraceMonitor.cc' || echo '$(srcdir)/'`TraceMonitor.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasemonitors_la-TraceMonitor.Tpo $(DEPDIR)/libbasemonitors_la-TraceMonitor.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TraceMonitor.cc' object='libbasemonitors_la-TraceMonitor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basemonitors_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basemonitors_la-TraceMonitor.lo `test -f 'TraceMonitor.cc' || echo '$(srcdir)/'`TraceMonitor.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasemonitors_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasemonitors_la-TraceMonitor.lo `test -f 'TraceMonitor.cc' || echo '$(srcdir)/'`TraceMonitor.cc -basemonitors_la-TraceMonitorFactory.lo: TraceMonitorFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basemonitors_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basemonitors_la-TraceMonitorFactory.lo -MD -MP -MF $(DEPDIR)/basemonitors_la-TraceMonitorFactory.Tpo -c -o basemonitors_la-TraceMonitorFactory.lo `test -f 'TraceMonitorFactory.cc' || echo '$(srcdir)/'`TraceMonitorFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basemonitors_la-TraceMonitorFactory.Tpo $(DEPDIR)/basemonitors_la-TraceMonitorFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TraceMonitorFactory.cc' object='basemonitors_la-TraceMonitorFactory.lo' libtool=yes @AMDEPBACKSLASH@ +libbasemonitors_la-TraceMonitorFactory.lo: TraceMonitorFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasemonitors_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasemonitors_la-TraceMonitorFactory.lo -MD -MP -MF $(DEPDIR)/libbasemonitors_la-TraceMonitorFactory.Tpo -c -o libbasemonitors_la-TraceMonitorFactory.lo `test -f 'TraceMonitorFactory.cc' || echo '$(srcdir)/'`TraceMonitorFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasemonitors_la-TraceMonitorFactory.Tpo $(DEPDIR)/libbasemonitors_la-TraceMonitorFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TraceMonitorFactory.cc' object='libbasemonitors_la-TraceMonitorFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basemonitors_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basemonitors_la-TraceMonitorFactory.lo `test -f 'TraceMonitorFactory.cc' || echo '$(srcdir)/'`TraceMonitorFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasemonitors_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasemonitors_la-TraceMonitorFactory.lo `test -f 'TraceMonitorFactory.cc' || echo '$(srcdir)/'`TraceMonitorFactory.cc -basemonitors_la-MeanMonitor.lo: MeanMonitor.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basemonitors_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basemonitors_la-MeanMonitor.lo -MD -MP -MF $(DEPDIR)/basemonitors_la-MeanMonitor.Tpo -c -o basemonitors_la-MeanMonitor.lo `test -f 'MeanMonitor.cc' || echo '$(srcdir)/'`MeanMonitor.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basemonitors_la-MeanMonitor.Tpo $(DEPDIR)/basemonitors_la-MeanMonitor.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MeanMonitor.cc' object='basemonitors_la-MeanMonitor.lo' libtool=yes @AMDEPBACKSLASH@ +libbasemonitors_la-MeanMonitor.lo: MeanMonitor.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasemonitors_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasemonitors_la-MeanMonitor.lo -MD -MP -MF $(DEPDIR)/libbasemonitors_la-MeanMonitor.Tpo -c -o libbasemonitors_la-MeanMonitor.lo `test -f 'MeanMonitor.cc' || echo '$(srcdir)/'`MeanMonitor.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasemonitors_la-MeanMonitor.Tpo $(DEPDIR)/libbasemonitors_la-MeanMonitor.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MeanMonitor.cc' object='libbasemonitors_la-MeanMonitor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basemonitors_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basemonitors_la-MeanMonitor.lo `test -f 'MeanMonitor.cc' || echo '$(srcdir)/'`MeanMonitor.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasemonitors_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasemonitors_la-MeanMonitor.lo `test -f 'MeanMonitor.cc' || echo '$(srcdir)/'`MeanMonitor.cc -basemonitors_la-MeanMonitorFactory.lo: MeanMonitorFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basemonitors_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basemonitors_la-MeanMonitorFactory.lo -MD -MP -MF $(DEPDIR)/basemonitors_la-MeanMonitorFactory.Tpo -c -o basemonitors_la-MeanMonitorFactory.lo `test -f 'MeanMonitorFactory.cc' || echo '$(srcdir)/'`MeanMonitorFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basemonitors_la-MeanMonitorFactory.Tpo $(DEPDIR)/basemonitors_la-MeanMonitorFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MeanMonitorFactory.cc' object='basemonitors_la-MeanMonitorFactory.lo' libtool=yes @AMDEPBACKSLASH@ +libbasemonitors_la-MeanMonitorFactory.lo: MeanMonitorFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasemonitors_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasemonitors_la-MeanMonitorFactory.lo -MD -MP -MF $(DEPDIR)/libbasemonitors_la-MeanMonitorFactory.Tpo -c -o libbasemonitors_la-MeanMonitorFactory.lo `test -f 'MeanMonitorFactory.cc' || echo '$(srcdir)/'`MeanMonitorFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasemonitors_la-MeanMonitorFactory.Tpo $(DEPDIR)/libbasemonitors_la-MeanMonitorFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MeanMonitorFactory.cc' object='libbasemonitors_la-MeanMonitorFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basemonitors_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basemonitors_la-MeanMonitorFactory.lo `test -f 'MeanMonitorFactory.cc' || echo '$(srcdir)/'`MeanMonitorFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasemonitors_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasemonitors_la-MeanMonitorFactory.lo `test -f 'MeanMonitorFactory.cc' || echo '$(srcdir)/'`MeanMonitorFactory.cc mostlyclean-libtool: -rm -f *.lo @@ -376,26 +457,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -407,15 +477,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -424,6 +490,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -565,18 +646,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/base/monitors/MeanMonitor.cc jags-4.0.0/src/modules/base/monitors/MeanMonitor.cc --- jags-3.4.0/src/modules/base/monitors/MeanMonitor.cc 2012-11-20 10:45:08.000000000 +0000 +++ jags-4.0.0/src/modules/base/monitors/MeanMonitor.cc 2015-04-12 14:30:44.000000000 +0000 @@ -1,5 +1,6 @@ #include #include +#include #include @@ -8,11 +9,12 @@ using std::vector; using std::string; +namespace jags { namespace base { - MeanMonitor::MeanMonitor(Node const *node) - : Monitor("mean", node), - _values(node->nchain(), vector(node->length(), 0)), + MeanMonitor::MeanMonitor(NodeArraySubset const &subset) + : Monitor("mean", subset.nodes()), _subset(subset), + _values(subset.nchain(), vector(subset.length())), _n(0) { @@ -20,15 +22,17 @@ void MeanMonitor::update() { - Node const *snode = nodes()[0]; - unsigned int nchain = _values.size(); - _n++; - for (unsigned int ch = 0; ch < nchain; ++ch) { + for (unsigned int ch = 0; ch < _values.size(); ++ch) { + vector value = _subset.value(ch); vector &rmean = _values[ch]; - double const *value = snode->value(ch); - for (unsigned int i = 0; i < snode->length(); ++i) { - rmean[i] -= (rmean[i] - value[i])/_n; + for (unsigned int i = 0; i < value.size(); ++i) { + if (value[i] == JAGS_NA) { + rmean[i] = JAGS_NA; + } + else { + rmean[i] -= (rmean[i] - value[i])/_n; + } } } } @@ -40,11 +44,7 @@ vector MeanMonitor::dim() const { - return nodes()[0]->dim(); - } - - void MeanMonitor::reserve(unsigned int niter) - { + return _subset.dim(); } bool MeanMonitor::poolChains() const @@ -54,6 +54,7 @@ bool MeanMonitor::poolIterations() const { - return false; + return true; } -} + +}} diff -Nru jags-3.4.0/src/modules/base/monitors/MeanMonitorFactory.cc jags-4.0.0/src/modules/base/monitors/MeanMonitorFactory.cc --- jags-3.4.0/src/modules/base/monitors/MeanMonitorFactory.cc 2012-11-20 10:01:10.000000000 +0000 +++ jags-4.0.0/src/modules/base/monitors/MeanMonitorFactory.cc 2015-04-12 12:39:18.000000000 +0000 @@ -10,6 +10,7 @@ using std::string; using std::vector; +namespace jags { namespace base { Monitor *MeanMonitorFactory::getMonitor(string const &name, @@ -21,13 +22,13 @@ if (type != "mean") return 0; - Node *node = model->getNode(name, range); - if (!node) { - msg = "Node not found"; + NodeArray *array = model->symtab().getVariable(name); + if (!array) { + msg = string("Variable ") + name + " not found"; return 0; } - - MeanMonitor *m = new MeanMonitor(node); + + MeanMonitor *m = new MeanMonitor(NodeArraySubset(array, range)); //Set name attributes m->setName(name + print(range)); @@ -35,7 +36,6 @@ if (isNULL(range)) { //Special syntactic rule: a null range corresponds to the whole //array - NodeArray const *array = model->symtab().getVariable(name); node_range = array->range(); } vector elt_names; @@ -56,4 +56,5 @@ { return "base::Mean"; } -} + +}} diff -Nru jags-3.4.0/src/modules/base/monitors/MeanMonitorFactory.h jags-4.0.0/src/modules/base/monitors/MeanMonitorFactory.h --- jags-3.4.0/src/modules/base/monitors/MeanMonitorFactory.h 2012-11-20 10:00:30.000000000 +0000 +++ jags-4.0.0/src/modules/base/monitors/MeanMonitorFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace base { class MeanMonitorFactory : public MonitorFactory @@ -14,6 +15,6 @@ std::string name() const; }; -} +}} #endif /* MEAN_MONITOR_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/base/monitors/MeanMonitor.h jags-4.0.0/src/modules/base/monitors/MeanMonitor.h --- jags-3.4.0/src/modules/base/monitors/MeanMonitor.h 2012-11-20 10:18:52.000000000 +0000 +++ jags-4.0.0/src/modules/base/monitors/MeanMonitor.h 2015-04-12 12:20:48.000000000 +0000 @@ -2,26 +2,29 @@ #define MEAN_MONITOR_H_ #include +#include #include +namespace jags { namespace base { /** * @short Stores running mean of a given Node */ class MeanMonitor : public Monitor { + NodeArraySubset _subset; std::vector > _values; // sampled values unsigned int _n; public: - MeanMonitor(Node const *node); + MeanMonitor(NodeArraySubset const &subset); void update(); std::vector const &value(unsigned int chain) const; std::vector dim() const; - void reserve(unsigned int niter); bool poolChains() const; bool poolIterations() const; }; -} + +}} #endif /* MEAN_MONITOR_H_ */ diff -Nru jags-3.4.0/src/modules/base/monitors/TraceMonitor.cc jags-4.0.0/src/modules/base/monitors/TraceMonitor.cc --- jags-3.4.0/src/modules/base/monitors/TraceMonitor.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/monitors/TraceMonitor.cc 2015-04-11 16:28:25.000000000 +0000 @@ -8,22 +8,21 @@ using std::vector; using std::string; +namespace jags { namespace base { - TraceMonitor::TraceMonitor(Node const *node) - : Monitor("trace", node), _values(node->nchain()) + TraceMonitor::TraceMonitor(NodeArraySubset const &subset) + : Monitor("trace", subset.nodes()), _subset(subset), + _values(subset.nchain()) { } void TraceMonitor::update() { - Node const *snode = nodes()[0]; - unsigned int nchain = snode->nchain(); - unsigned int length = snode->length(); - for (unsigned int ch = 0; ch < nchain; ++ch) { - double const *node_value = snode->value(ch); - for (unsigned int i = 0; i < length; ++i) { - _values[ch].push_back(node_value[i]); + for (unsigned int ch = 0; ch < _values.size(); ++ch) { + vector v = _subset.value(ch); + for (vector::iterator p = v.begin(); p != v.end(); ++p) { + _values[ch].push_back(*p); } } } @@ -35,15 +34,7 @@ vector TraceMonitor::dim() const { - return nodes()[0]->dim(); - } - - void TraceMonitor::reserve(unsigned int niter) - { - unsigned int N = niter * nodes()[0]->length(); - for (unsigned int ch = 0; ch < _values.size(); ++ch) { - _values[ch].reserve(_values[ch].size() + N); - } + return _subset.dim(); } bool TraceMonitor::poolChains() const @@ -55,4 +46,5 @@ { return false; } -} + +}} diff -Nru jags-3.4.0/src/modules/base/monitors/TraceMonitorFactory.cc jags-4.0.0/src/modules/base/monitors/TraceMonitorFactory.cc --- jags-3.4.0/src/modules/base/monitors/TraceMonitorFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/monitors/TraceMonitorFactory.cc 2015-04-12 12:10:04.000000000 +0000 @@ -10,6 +10,7 @@ using std::string; using std::vector; +namespace jags { namespace base { Monitor *TraceMonitorFactory::getMonitor(string const &name, @@ -21,13 +22,13 @@ if (type != "trace") return 0; - Node *node = model->getNode(name, range); - if (!node) { - msg = "Node not found"; + NodeArray *array = model->symtab().getVariable(name); + if (!array) { + msg = string("Variable ") + name + " not found"; return 0; } - - TraceMonitor *m = new TraceMonitor(node); + + TraceMonitor *m = new TraceMonitor(NodeArraySubset(array, range)); //Set name attributes m->setName(name + print(range)); @@ -56,4 +57,5 @@ { return "base::Trace"; } -} + +}} diff -Nru jags-3.4.0/src/modules/base/monitors/TraceMonitorFactory.h jags-4.0.0/src/modules/base/monitors/TraceMonitorFactory.h --- jags-3.4.0/src/modules/base/monitors/TraceMonitorFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/monitors/TraceMonitorFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace base { class TraceMonitorFactory : public MonitorFactory @@ -14,6 +15,6 @@ std::string name() const; }; -} +}} #endif /* TRACE_MONITOR_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/base/monitors/TraceMonitor.h jags-4.0.0/src/modules/base/monitors/TraceMonitor.h --- jags-3.4.0/src/modules/base/monitors/TraceMonitor.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/monitors/TraceMonitor.h 2015-04-11 16:19:07.000000000 +0000 @@ -2,25 +2,29 @@ #define TRACE_MONITOR_H_ #include +#include #include -namespace base { +namespace jags { + namespace base { -/** - * @short Stores sampled values of a given Node - */ - class TraceMonitor : public Monitor { - std::vector > _values; // sampled values - public: - TraceMonitor(Node const *node); - void update(); - std::vector const &value(unsigned int chain) const; - std::vector dim() const; - void reserve(unsigned int niter); - bool poolChains() const; - bool poolIterations() const; - }; + /** + * @short Stores sampled values of a given Node + */ + class TraceMonitor : public Monitor { + NodeArraySubset _subset; + std::vector > _values; // sampled values + public: + TraceMonitor(NodeArraySubset const &subset); + void update(); + std::vector const &value(unsigned int chain) const; + std::vector dim() const; + bool poolChains() const; + bool poolIterations() const; + }; + + } } #endif /* TRACE_MONITOR_H_ */ diff -Nru jags-3.4.0/src/modules/base/rngs/BaseRNGFactory.cc jags-4.0.0/src/modules/base/rngs/BaseRNGFactory.cc --- jags-3.4.0/src/modules/base/rngs/BaseRNGFactory.cc 2011-11-08 13:44:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/rngs/BaseRNGFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -13,6 +13,7 @@ #define DEFAULT_NORM_KIND KINDERMAN_RAMAGE +namespace jags { namespace base { BaseRNGFactory::BaseRNGFactory() @@ -27,6 +28,11 @@ } } + void BaseRNGFactory::setSeed(unsigned int seed) + { + _seed = seed; + } + vector BaseRNGFactory::makeRNGs(unsigned int n) { vector ans; @@ -87,4 +93,5 @@ { return "base::BaseRNG"; } -} + +}} diff -Nru jags-3.4.0/src/modules/base/rngs/BaseRNGFactory.h jags-4.0.0/src/modules/base/rngs/BaseRNGFactory.h --- jags-3.4.0/src/modules/base/rngs/BaseRNGFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/rngs/BaseRNGFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace base { /** @@ -16,11 +17,12 @@ public: BaseRNGFactory(); ~BaseRNGFactory(); + void setSeed(unsigned int seed); std::vector makeRNGs(unsigned int n); RNG * makeRNG(std::string const &name); std::string name() const; }; -} +}} #endif /* BASE_RNG_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/base/rngs/Makefile.am jags-4.0.0/src/modules/base/rngs/Makefile.am --- jags-3.4.0/src/modules/base/rngs/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/rngs/Makefile.am 2015-09-27 07:17:35.000000000 +0000 @@ -1,10 +1,8 @@ -noinst_LTLIBRARIES = baserngs.la +noinst_LTLIBRARIES = libbaserngs.la -baserngs_la_CPPFLAGS = -I$(top_srcdir)/src/include +libbaserngs_la_CPPFLAGS = -I$(top_srcdir)/src/include -baserngs_la_LDFLAGS = -no-undefined -module -avoid-version - -baserngs_la_SOURCES = MarsagliaRNG.cc WichmannHillRNG.cc SuperDuperRNG.cc \ +libbaserngs_la_SOURCES = MarsagliaRNG.cc WichmannHillRNG.cc SuperDuperRNG.cc \ MersenneTwisterRNG.cc BaseRNGFactory.cc noinst_HEADERS = MarsagliaRNG.h WichmannHillRNG.h SuperDuperRNG.h \ diff -Nru jags-3.4.0/src/modules/base/rngs/Makefile.in jags-4.0.0/src/modules/base/rngs/Makefile.in --- jags-3.4.0/src/modules/base/rngs/Makefile.in 2013-08-30 13:23:27.000000000 +0000 +++ jags-4.0.0/src/modules/base/rngs/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/base/rngs -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,46 +99,90 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) -baserngs_la_LIBADD = -am_baserngs_la_OBJECTS = baserngs_la-MarsagliaRNG.lo \ - baserngs_la-WichmannHillRNG.lo baserngs_la-SuperDuperRNG.lo \ - baserngs_la-MersenneTwisterRNG.lo \ - baserngs_la-BaseRNGFactory.lo -baserngs_la_OBJECTS = $(am_baserngs_la_OBJECTS) -baserngs_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ - $(CXXFLAGS) $(baserngs_la_LDFLAGS) $(LDFLAGS) -o $@ +libbaserngs_la_LIBADD = +am_libbaserngs_la_OBJECTS = libbaserngs_la-MarsagliaRNG.lo \ + libbaserngs_la-WichmannHillRNG.lo \ + libbaserngs_la-SuperDuperRNG.lo \ + libbaserngs_la-MersenneTwisterRNG.lo \ + libbaserngs_la-BaseRNGFactory.lo +libbaserngs_la_OBJECTS = $(am_libbaserngs_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(baserngs_la_SOURCES) -DIST_SOURCES = $(baserngs_la_SOURCES) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +SOURCES = $(libbaserngs_la_SOURCES) +DIST_SOURCES = $(libbaserngs_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -117,6 +196,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -186,10 +268,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -255,10 +333,9 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -noinst_LTLIBRARIES = baserngs.la -baserngs_la_CPPFLAGS = -I$(top_srcdir)/src/include -baserngs_la_LDFLAGS = -no-undefined -module -avoid-version -baserngs_la_SOURCES = MarsagliaRNG.cc WichmannHillRNG.cc SuperDuperRNG.cc \ +noinst_LTLIBRARIES = libbaserngs.la +libbaserngs_la_CPPFLAGS = -I$(top_srcdir)/src/include +libbaserngs_la_SOURCES = MarsagliaRNG.cc WichmannHillRNG.cc SuperDuperRNG.cc \ MersenneTwisterRNG.cc BaseRNGFactory.cc noinst_HEADERS = MarsagliaRNG.h WichmannHillRNG.h SuperDuperRNG.h \ @@ -280,7 +357,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/base/rngs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/base/rngs/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -301,14 +377,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -baserngs.la: $(baserngs_la_OBJECTS) $(baserngs_la_DEPENDENCIES) $(EXTRA_baserngs_la_DEPENDENCIES) - $(baserngs_la_LINK) $(baserngs_la_OBJECTS) $(baserngs_la_LIBADD) $(LIBS) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libbaserngs.la: $(libbaserngs_la_OBJECTS) $(libbaserngs_la_DEPENDENCIES) $(EXTRA_libbaserngs_la_DEPENDENCIES) + $(AM_V_CXXLD)$(CXXLINK) $(libbaserngs_la_OBJECTS) $(libbaserngs_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -316,67 +395,70 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/baserngs_la-BaseRNGFactory.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/baserngs_la-MarsagliaRNG.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/baserngs_la-MersenneTwisterRNG.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/baserngs_la-SuperDuperRNG.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/baserngs_la-WichmannHillRNG.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbaserngs_la-BaseRNGFactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbaserngs_la-MarsagliaRNG.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbaserngs_la-MersenneTwisterRNG.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbaserngs_la-SuperDuperRNG.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbaserngs_la-WichmannHillRNG.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< -baserngs_la-MarsagliaRNG.lo: MarsagliaRNG.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(baserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT baserngs_la-MarsagliaRNG.lo -MD -MP -MF $(DEPDIR)/baserngs_la-MarsagliaRNG.Tpo -c -o baserngs_la-MarsagliaRNG.lo `test -f 'MarsagliaRNG.cc' || echo '$(srcdir)/'`MarsagliaRNG.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/baserngs_la-MarsagliaRNG.Tpo $(DEPDIR)/baserngs_la-MarsagliaRNG.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MarsagliaRNG.cc' object='baserngs_la-MarsagliaRNG.lo' libtool=yes @AMDEPBACKSLASH@ +libbaserngs_la-MarsagliaRNG.lo: MarsagliaRNG.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbaserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbaserngs_la-MarsagliaRNG.lo -MD -MP -MF $(DEPDIR)/libbaserngs_la-MarsagliaRNG.Tpo -c -o libbaserngs_la-MarsagliaRNG.lo `test -f 'MarsagliaRNG.cc' || echo '$(srcdir)/'`MarsagliaRNG.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbaserngs_la-MarsagliaRNG.Tpo $(DEPDIR)/libbaserngs_la-MarsagliaRNG.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MarsagliaRNG.cc' object='libbaserngs_la-MarsagliaRNG.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(baserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o baserngs_la-MarsagliaRNG.lo `test -f 'MarsagliaRNG.cc' || echo '$(srcdir)/'`MarsagliaRNG.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbaserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbaserngs_la-MarsagliaRNG.lo `test -f 'MarsagliaRNG.cc' || echo '$(srcdir)/'`MarsagliaRNG.cc -baserngs_la-WichmannHillRNG.lo: WichmannHillRNG.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(baserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT baserngs_la-WichmannHillRNG.lo -MD -MP -MF $(DEPDIR)/baserngs_la-WichmannHillRNG.Tpo -c -o baserngs_la-WichmannHillRNG.lo `test -f 'WichmannHillRNG.cc' || echo '$(srcdir)/'`WichmannHillRNG.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/baserngs_la-WichmannHillRNG.Tpo $(DEPDIR)/baserngs_la-WichmannHillRNG.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='WichmannHillRNG.cc' object='baserngs_la-WichmannHillRNG.lo' libtool=yes @AMDEPBACKSLASH@ +libbaserngs_la-WichmannHillRNG.lo: WichmannHillRNG.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbaserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbaserngs_la-WichmannHillRNG.lo -MD -MP -MF $(DEPDIR)/libbaserngs_la-WichmannHillRNG.Tpo -c -o libbaserngs_la-WichmannHillRNG.lo `test -f 'WichmannHillRNG.cc' || echo '$(srcdir)/'`WichmannHillRNG.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbaserngs_la-WichmannHillRNG.Tpo $(DEPDIR)/libbaserngs_la-WichmannHillRNG.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='WichmannHillRNG.cc' object='libbaserngs_la-WichmannHillRNG.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(baserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o baserngs_la-WichmannHillRNG.lo `test -f 'WichmannHillRNG.cc' || echo '$(srcdir)/'`WichmannHillRNG.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbaserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbaserngs_la-WichmannHillRNG.lo `test -f 'WichmannHillRNG.cc' || echo '$(srcdir)/'`WichmannHillRNG.cc -baserngs_la-SuperDuperRNG.lo: SuperDuperRNG.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(baserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT baserngs_la-SuperDuperRNG.lo -MD -MP -MF $(DEPDIR)/baserngs_la-SuperDuperRNG.Tpo -c -o baserngs_la-SuperDuperRNG.lo `test -f 'SuperDuperRNG.cc' || echo '$(srcdir)/'`SuperDuperRNG.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/baserngs_la-SuperDuperRNG.Tpo $(DEPDIR)/baserngs_la-SuperDuperRNG.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SuperDuperRNG.cc' object='baserngs_la-SuperDuperRNG.lo' libtool=yes @AMDEPBACKSLASH@ +libbaserngs_la-SuperDuperRNG.lo: SuperDuperRNG.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbaserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbaserngs_la-SuperDuperRNG.lo -MD -MP -MF $(DEPDIR)/libbaserngs_la-SuperDuperRNG.Tpo -c -o libbaserngs_la-SuperDuperRNG.lo `test -f 'SuperDuperRNG.cc' || echo '$(srcdir)/'`SuperDuperRNG.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbaserngs_la-SuperDuperRNG.Tpo $(DEPDIR)/libbaserngs_la-SuperDuperRNG.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SuperDuperRNG.cc' object='libbaserngs_la-SuperDuperRNG.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(baserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o baserngs_la-SuperDuperRNG.lo `test -f 'SuperDuperRNG.cc' || echo '$(srcdir)/'`SuperDuperRNG.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbaserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbaserngs_la-SuperDuperRNG.lo `test -f 'SuperDuperRNG.cc' || echo '$(srcdir)/'`SuperDuperRNG.cc -baserngs_la-MersenneTwisterRNG.lo: MersenneTwisterRNG.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(baserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT baserngs_la-MersenneTwisterRNG.lo -MD -MP -MF $(DEPDIR)/baserngs_la-MersenneTwisterRNG.Tpo -c -o baserngs_la-MersenneTwisterRNG.lo `test -f 'MersenneTwisterRNG.cc' || echo '$(srcdir)/'`MersenneTwisterRNG.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/baserngs_la-MersenneTwisterRNG.Tpo $(DEPDIR)/baserngs_la-MersenneTwisterRNG.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MersenneTwisterRNG.cc' object='baserngs_la-MersenneTwisterRNG.lo' libtool=yes @AMDEPBACKSLASH@ +libbaserngs_la-MersenneTwisterRNG.lo: MersenneTwisterRNG.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbaserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbaserngs_la-MersenneTwisterRNG.lo -MD -MP -MF $(DEPDIR)/libbaserngs_la-MersenneTwisterRNG.Tpo -c -o libbaserngs_la-MersenneTwisterRNG.lo `test -f 'MersenneTwisterRNG.cc' || echo '$(srcdir)/'`MersenneTwisterRNG.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbaserngs_la-MersenneTwisterRNG.Tpo $(DEPDIR)/libbaserngs_la-MersenneTwisterRNG.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MersenneTwisterRNG.cc' object='libbaserngs_la-MersenneTwisterRNG.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(baserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o baserngs_la-MersenneTwisterRNG.lo `test -f 'MersenneTwisterRNG.cc' || echo '$(srcdir)/'`MersenneTwisterRNG.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbaserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbaserngs_la-MersenneTwisterRNG.lo `test -f 'MersenneTwisterRNG.cc' || echo '$(srcdir)/'`MersenneTwisterRNG.cc -baserngs_la-BaseRNGFactory.lo: BaseRNGFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(baserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT baserngs_la-BaseRNGFactory.lo -MD -MP -MF $(DEPDIR)/baserngs_la-BaseRNGFactory.Tpo -c -o baserngs_la-BaseRNGFactory.lo `test -f 'BaseRNGFactory.cc' || echo '$(srcdir)/'`BaseRNGFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/baserngs_la-BaseRNGFactory.Tpo $(DEPDIR)/baserngs_la-BaseRNGFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='BaseRNGFactory.cc' object='baserngs_la-BaseRNGFactory.lo' libtool=yes @AMDEPBACKSLASH@ +libbaserngs_la-BaseRNGFactory.lo: BaseRNGFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbaserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbaserngs_la-BaseRNGFactory.lo -MD -MP -MF $(DEPDIR)/libbaserngs_la-BaseRNGFactory.Tpo -c -o libbaserngs_la-BaseRNGFactory.lo `test -f 'BaseRNGFactory.cc' || echo '$(srcdir)/'`BaseRNGFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbaserngs_la-BaseRNGFactory.Tpo $(DEPDIR)/libbaserngs_la-BaseRNGFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='BaseRNGFactory.cc' object='libbaserngs_la-BaseRNGFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(baserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o baserngs_la-BaseRNGFactory.lo `test -f 'BaseRNGFactory.cc' || echo '$(srcdir)/'`BaseRNGFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbaserngs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbaserngs_la-BaseRNGFactory.lo `test -f 'BaseRNGFactory.cc' || echo '$(srcdir)/'`BaseRNGFactory.cc mostlyclean-libtool: -rm -f *.lo @@ -384,26 +466,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -415,15 +486,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -432,6 +499,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -573,18 +655,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/base/rngs/MarsagliaRNG.cc jags-4.0.0/src/modules/base/rngs/MarsagliaRNG.cc --- jags-3.4.0/src/modules/base/rngs/MarsagliaRNG.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/rngs/MarsagliaRNG.cc 2015-02-22 08:33:05.000000000 +0000 @@ -5,6 +5,7 @@ #define i2_32m1 2.328306437080797e-10/* = 1/(2^32 - 1) */ +namespace jags { namespace base { MarsagliaRNG::MarsagliaRNG(unsigned int seed, NormKind normkind) @@ -58,4 +59,4 @@ return fixup(((I[0] << 16)^(I[1] & 0177777)) * i2_32m1); } -} +}} diff -Nru jags-3.4.0/src/modules/base/rngs/MarsagliaRNG.h jags-4.0.0/src/modules/base/rngs/MarsagliaRNG.h --- jags-3.4.0/src/modules/base/rngs/MarsagliaRNG.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/rngs/MarsagliaRNG.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace base { class MarsagliaRNG : public RmathRNG @@ -17,6 +18,6 @@ double uniform(); }; -} +}} #endif /* _MARSAGLIA_RNG_H_ */ diff -Nru jags-3.4.0/src/modules/base/rngs/MersenneTwisterRNG.cc jags-4.0.0/src/modules/base/rngs/MersenneTwisterRNG.cc --- jags-3.4.0/src/modules/base/rngs/MersenneTwisterRNG.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/rngs/MersenneTwisterRNG.cc 2015-02-22 08:33:05.000000000 +0000 @@ -44,6 +44,7 @@ using std::vector; +namespace jags { namespace base { MersenneTwisterRNG::MersenneTwisterRNG(unsigned int seed, @@ -173,4 +174,4 @@ } } -} +}} diff -Nru jags-3.4.0/src/modules/base/rngs/MersenneTwisterRNG.h jags-4.0.0/src/modules/base/rngs/MersenneTwisterRNG.h --- jags-3.4.0/src/modules/base/rngs/MersenneTwisterRNG.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/rngs/MersenneTwisterRNG.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace base { class MersenneTwisterRNG : public RmathRNG @@ -20,6 +21,6 @@ double uniform(); }; -} +}} #endif /* MERSENNE_TWISTER_RNG_H_ */ diff -Nru jags-3.4.0/src/modules/base/rngs/SuperDuperRNG.cc jags-4.0.0/src/modules/base/rngs/SuperDuperRNG.cc --- jags-3.4.0/src/modules/base/rngs/SuperDuperRNG.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/rngs/SuperDuperRNG.cc 2015-02-22 08:33:05.000000000 +0000 @@ -7,6 +7,7 @@ using std::vector; +namespace jags { namespace base { SuperDuperRNG::SuperDuperRNG(unsigned int seed, NormKind norm_kind) @@ -68,4 +69,4 @@ } } -} +}} diff -Nru jags-3.4.0/src/modules/base/rngs/SuperDuperRNG.h jags-4.0.0/src/modules/base/rngs/SuperDuperRNG.h --- jags-3.4.0/src/modules/base/rngs/SuperDuperRNG.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/rngs/SuperDuperRNG.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace base { class SuperDuperRNG : public RmathRNG @@ -17,6 +18,6 @@ void getState(std::vector &state) const; }; -} +}} #endif /* _SUPER_DUPER_RNG_H_ */ diff -Nru jags-3.4.0/src/modules/base/rngs/WichmannHillRNG.cc jags-4.0.0/src/modules/base/rngs/WichmannHillRNG.cc --- jags-3.4.0/src/modules/base/rngs/WichmannHillRNG.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/rngs/WichmannHillRNG.cc 2015-02-22 08:33:05.000000000 +0000 @@ -2,6 +2,7 @@ using std::vector; +namespace jags { namespace base { void WichmannHillRNG::fixupSeeds() @@ -63,4 +64,4 @@ } } -} +}} diff -Nru jags-3.4.0/src/modules/base/rngs/WichmannHillRNG.h jags-4.0.0/src/modules/base/rngs/WichmannHillRNG.h --- jags-3.4.0/src/modules/base/rngs/WichmannHillRNG.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/rngs/WichmannHillRNG.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace base { class WichmannHillRNG : public RmathRNG @@ -17,6 +18,6 @@ void getState(std::vector &state) const; }; -} +}} #endif /* _WICHMANN_HILL_RNG_H_ */ diff -Nru jags-3.4.0/src/modules/base/samplers/DiscreteSlicer.cc jags-4.0.0/src/modules/base/samplers/DiscreteSlicer.cc --- jags-3.4.0/src/modules/base/samplers/DiscreteSlicer.cc 2012-02-29 16:46:25.000000000 +0000 +++ jags-4.0.0/src/modules/base/samplers/DiscreteSlicer.cc 2015-07-15 18:52:35.000000000 +0000 @@ -2,7 +2,7 @@ #include #include #include -#include +#include #include #include "DiscreteSlicer.h" @@ -13,17 +13,21 @@ using std::vector; using std::string; +namespace jags { namespace base { - DiscreteSlicer::DiscreteSlicer(GraphView const *gv, unsigned int chain, + DiscreteSlicer::DiscreteSlicer(SingletonGraphView const *gv, + unsigned int chain, double width, long ndoubles) : Slicer(width, ndoubles), _gv(gv), _chain(chain), _x(0) { - if (gv->nodes().size() != 1 || !canSample(gv->nodes()[0])) { + if (!canSample(gv->node())) { throwLogicError("Invalid DiscreteSlicer"); } - - _x = _gv->nodes()[0]->value(chain)[0]; + + //Check finite likelihood and copy current value + gv->checkFinite(chain); + _x = _gv->node()->value(chain)[0]; } bool DiscreteSlicer::canSample(StochasticNode const *node) @@ -48,8 +52,7 @@ void DiscreteSlicer::getLimits(double *lower, double *upper) const { - StochasticNode const *snode = _gv->nodes()[0]; - snode->support(lower, upper, 1, _chain); + _gv->node()->support(lower, upper, 1, _chain); *upper += 1; } @@ -58,11 +61,11 @@ if (!updateDouble(rng)) { switch(state()) { case SLICER_POSINF: - throwNodeError(_gv->nodes().front(), + throwNodeError(_gv->node(), "Slicer stuck at value with infinite density"); break; case SLICER_NEGINF: - throwNodeError(_gv->nodes().front(), + throwNodeError(_gv->node(), "Current value is inconsistent with data"); break; case SLICER_OK: @@ -71,14 +74,9 @@ } } - string DiscreteSlicer::name() const - { - return "DiscreteSlicer"; - } - double DiscreteSlicer::logDensity() const { return _gv->logFullConditional(_chain); } -} +}} diff -Nru jags-3.4.0/src/modules/base/samplers/DiscreteSlicer.h jags-4.0.0/src/modules/base/samplers/DiscreteSlicer.h --- jags-3.4.0/src/modules/base/samplers/DiscreteSlicer.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/samplers/DiscreteSlicer.h 2015-02-22 08:33:05.000000000 +0000 @@ -4,21 +4,26 @@ #include #include +namespace jags { + + class StochasticNode; + class SingletonGraphView; + namespace base { -/** - * @short Discrete slice sampler - * - * Slice sampler for discrete valued distributions. - * - * To sample a discrete valued random variable X, we create an - * auxiliary variable Y which is real valued, and for which p_[Y](y) = - * p_[X](floor(y)). Hence Y has a piecewise-constant density function - * on the real line. We sample Y and then set X = floor(Y). - */ + /** + * @short Discrete slice sampler + * + * Slice sampler for discrete valued distributions. + * + * To sample a discrete valued random variable X, we create an + * auxiliary variable Y which is real valued, and for which p_[Y](y) = + * p_[X](floor(y)). Hence Y has a piecewise-constant density function + * on the real line. We sample Y and then set X = floor(Y). + */ class DiscreteSlicer : public Slicer { - GraphView const *_gv; - unsigned int _chain; + SingletonGraphView const *_gv; + const unsigned int _chain; double _x; public: /** @@ -26,17 +31,16 @@ * @param width Initial width of slice * @param ndoubles Maximum number of doublings of slice */ - DiscreteSlicer(GraphView const *gv, unsigned int chain, + DiscreteSlicer(SingletonGraphView const *gv, unsigned int chain, double width=2, long ndoubles = 10); void setValue(double x); double value() const; void getLimits(double *lower, double *upper) const; void update(RNG*); static bool canSample(StochasticNode const *node); - std::string name() const; double logDensity() const; }; -} +}} #endif /* DISCRETE_SLICER_H_ */ diff -Nru jags-3.4.0/src/modules/base/samplers/FiniteFactory.cc jags-4.0.0/src/modules/base/samplers/FiniteFactory.cc --- jags-3.4.0/src/modules/base/samplers/FiniteFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/samplers/FiniteFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -1,7 +1,6 @@ #include -#include -#include -#include +#include +#include #include "FiniteMethod.h" #include "FiniteFactory.h" @@ -11,6 +10,7 @@ using std::vector; using std::string; +namespace jags { namespace base { bool @@ -19,20 +19,17 @@ return FiniteMethod::canSample(snode); } - Sampler * FiniteFactory::makeSampler(StochasticNode *snode, - Graph const &graph) const + Sampler * FiniteFactory::makeSampler(StochasticNode *snode, + Graph const &graph) const { - GraphView *gv = new GraphView(snode, graph); - unsigned int N = nchain(gv); - vector methods(N, 0); - for (unsigned int ch = 0; ch < N; ++ch) { - methods[ch] = new FiniteMethod(gv, ch); - } - return new ParallelSampler(gv, methods); + SingletonGraphView *gv = new SingletonGraphView(snode, graph); + FiniteMethod *method = new FiniteMethod(gv); + return new ImmutableSampler(gv, method, name()); } string FiniteFactory::name() const { return "base::Finite"; } -} + +}} diff -Nru jags-3.4.0/src/modules/base/samplers/FiniteFactory.h jags-4.0.0/src/modules/base/samplers/FiniteFactory.h --- jags-3.4.0/src/modules/base/samplers/FiniteFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/samplers/FiniteFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,11 +3,12 @@ #include +namespace jags { namespace base { -/** - * @short Factory object for finite samplers - */ + /** + * @short Factory object for finite samplers + */ class FiniteFactory : public SingletonFactory { public: bool canSample(StochasticNode *snode, Graph const &graph) const; @@ -16,6 +17,6 @@ std::string name() const; }; -} +}} #endif /* FINITE_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/base/samplers/FiniteMethod.cc jags-4.0.0/src/modules/base/samplers/FiniteMethod.cc --- jags-3.4.0/src/modules/base/samplers/FiniteMethod.cc 2012-02-29 14:05:25.000000000 +0000 +++ jags-4.0.0/src/modules/base/samplers/FiniteMethod.cc 2015-09-10 05:42:23.000000000 +0000 @@ -1,11 +1,10 @@ #include #include #include -#include #include #include #include -#include +#include #include #include "FiniteMethod.h" @@ -19,28 +18,36 @@ using std::vector; using std::exp; using std::string; -using std::max; +using std::binary_search; +using std::upper_bound; + +namespace jags { + + static int mkLower(SingletonGraphView const *gv) + { + double lower=0, upper=0; + gv->node()->support(&lower, &upper, 1, 0); + return static_cast(lower); + } + + static int mkUpper(SingletonGraphView const *gv) + { + double lower=0, upper=0; + gv->node()->support(&lower, &upper, 1, 0); + return static_cast(upper); + } namespace base { - FiniteMethod::FiniteMethod(GraphView const *gv, unsigned int chain) - : _gv(gv), _chain(chain) + FiniteMethod::FiniteMethod(SingletonGraphView const *gv) + : _gv(gv), _lower(mkLower(gv)), _upper(mkUpper(gv)) { - if (gv->nodes().size() != 1) - throwLogicError("Invalid FiniteMethod"); - StochasticNode const *snode = gv->nodes().front(); - if (!canSample(snode)) { + if (!canSample(gv->node())) { throwLogicError("Invalid FiniteMethod"); } - - double lower = 0, upper = 0; - snode->support(&lower, &upper, 1, 0); - - _lower = static_cast(lower); - _upper = static_cast(upper); } - void FiniteMethod::update(RNG *rng) + void FiniteMethod::update(unsigned int chain, RNG *rng) const { int size = _upper - _lower + 1; vector lik(size); @@ -49,50 +56,30 @@ double lik_max = JAGS_NEGINF; for (int i = 0; i < size; i++) { double ivalue = _lower + i; - _gv->setValue(&ivalue, 1, _chain); - lik[i] = _gv->logFullConditional(_chain); - lik_max = max(lik_max, lik[i]); + _gv->setValue(&ivalue, 1, chain); + lik[i] = _gv->logFullConditional(chain); + if (lik[i] > lik_max) lik_max = lik[i]; } - + //Transform log-likelihood to likelihood, avoiding overflow + //and calculate partial sums double liksum = 0; for (int i = 0; i < size; ++i) { - lik[i] = exp(lik[i] - lik_max); - liksum += lik[i]; + liksum += exp(lik[i] - lik_max); + lik[i] = liksum; } if (!jags_finite(liksum)) { - throwNodeError(_gv->nodes()[0], "Cannot normalize density"); + throwNodeError(_gv->node(), "Cannot normalize density"); } - /* Sample */ + // Sample double urand = rng->uniform() * liksum; - int i; - liksum = 0.0; - for (i = 0; i < size - 1; i++) { - liksum += lik[i]; - if (liksum > urand) { - break; - } - } + int i = upper_bound(lik.begin(), lik.end(), urand) - lik.begin(); double ivalue = _lower + i; - _gv->setValue(&ivalue, 1, _chain); - } - - bool FiniteMethod::isAdaptive() const - { - return false; + _gv->setValue(&ivalue, 1, chain); } - void FiniteMethod::adaptOff() - { - } - - bool FiniteMethod::checkAdaptation() const - { - return true; - } - bool FiniteMethod::canSample(StochasticNode const * node) { //Node must be scalar with discrete-valued distribution of full rank @@ -110,24 +97,13 @@ return false; } - //FIXME: If support is fixed it is the same for all chains - for (unsigned int ch = 0; ch < node->nchain(); ++ch) { - //Distribution cannot be unbounded - double ulimit = JAGS_NEGINF, llimit = JAGS_POSINF; - node->support(&llimit, &ulimit, 1, ch); - if (!jags_finite(ulimit) || !jags_finite(llimit)) - return false; - - //We don't want too many possibilities - double n = ulimit - llimit + 1; - if (n <= 1 || n > 20) //fixme: totally arbitrary - return false; - } + //Distribution cannot be unbounded + double ulimit = JAGS_NEGINF, llimit = JAGS_POSINF; + node->support(&llimit, &ulimit, 1, 0); + if (!jags_finite(ulimit) || !jags_finite(llimit)) + return false; + return true; } - string FiniteMethod::name() const - { - return "FiniteMethod"; - } -} +}} diff -Nru jags-3.4.0/src/modules/base/samplers/FiniteMethod.h jags-4.0.0/src/modules/base/samplers/FiniteMethod.h --- jags-3.4.0/src/modules/base/samplers/FiniteMethod.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/samplers/FiniteMethod.h 2015-02-22 08:33:05.000000000 +0000 @@ -1,29 +1,24 @@ #ifndef FINITE_METHOD_H_ #define FINITE_METHOD_H_ -#include +#include -namespace base { +namespace jags { + namespace base { -/** - * Sampler for discrete distributions with support on a finite set. - */ - class FiniteMethod : public SampleMethod { - GraphView const *_gv; - unsigned int _chain; - int _lower, _upper; - public: - FiniteMethod(GraphView const *gv, unsigned int chain); - void update(RNG *rng); /** - * FiniteMethod is not adaptive. This function returns false. + * Sampler for discrete distributions with support on a finite set. */ - bool isAdaptive() const; - void adaptOff(); - bool checkAdaptation() const; - std::string name() const; - static bool canSample(StochasticNode const *snode); - }; + class FiniteMethod : public ImmutableSampleMethod { + SingletonGraphView const * const _gv; + const int _lower, _upper; + public: + FiniteMethod(SingletonGraphView const *gv); + void update(unsigned int chain, RNG *rng) const; + static bool canSample(StochasticNode const *snode); + }; + + } } #endif /* FINITE_METHOD_H_ */ diff -Nru jags-3.4.0/src/modules/base/samplers/Makefile.am jags-4.0.0/src/modules/base/samplers/Makefile.am --- jags-3.4.0/src/modules/base/samplers/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/samplers/Makefile.am 2015-09-27 07:17:48.000000000 +0000 @@ -1,11 +1,9 @@ -noinst_LTLIBRARIES = basesamplers.la +noinst_LTLIBRARIES = libbasesamplers.la -basesamplers_la_SOURCES = DiscreteSlicer.cc FiniteFactory.cc \ +libbasesamplers_la_SOURCES = DiscreteSlicer.cc FiniteFactory.cc \ FiniteMethod.cc RealSlicer.cc SliceFactory.cc -basesamplers_la_CPPFLAGS = -I$(top_srcdir)/src/include - -basesamplers_la_LDFLAGS = -no-undefined -module -avoid-version +libbasesamplers_la_CPPFLAGS = -I$(top_srcdir)/src/include noinst_HEADERS = DiscreteSlicer.h FiniteFactory.h \ FiniteMethod.h RealSlicer.h SliceFactory.h diff -Nru jags-3.4.0/src/modules/base/samplers/Makefile.in jags-4.0.0/src/modules/base/samplers/Makefile.in --- jags-3.4.0/src/modules/base/samplers/Makefile.in 2013-08-30 13:23:28.000000000 +0000 +++ jags-4.0.0/src/modules/base/samplers/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/base/samplers -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,46 +99,90 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) -basesamplers_la_LIBADD = -am_basesamplers_la_OBJECTS = basesamplers_la-DiscreteSlicer.lo \ - basesamplers_la-FiniteFactory.lo \ - basesamplers_la-FiniteMethod.lo basesamplers_la-RealSlicer.lo \ - basesamplers_la-SliceFactory.lo -basesamplers_la_OBJECTS = $(am_basesamplers_la_OBJECTS) -basesamplers_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ - $(CXXFLAGS) $(basesamplers_la_LDFLAGS) $(LDFLAGS) -o $@ +libbasesamplers_la_LIBADD = +am_libbasesamplers_la_OBJECTS = libbasesamplers_la-DiscreteSlicer.lo \ + libbasesamplers_la-FiniteFactory.lo \ + libbasesamplers_la-FiniteMethod.lo \ + libbasesamplers_la-RealSlicer.lo \ + libbasesamplers_la-SliceFactory.lo +libbasesamplers_la_OBJECTS = $(am_libbasesamplers_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(basesamplers_la_SOURCES) -DIST_SOURCES = $(basesamplers_la_SOURCES) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +SOURCES = $(libbasesamplers_la_SOURCES) +DIST_SOURCES = $(libbasesamplers_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -117,6 +196,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -186,10 +268,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -255,12 +333,11 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -noinst_LTLIBRARIES = basesamplers.la -basesamplers_la_SOURCES = DiscreteSlicer.cc FiniteFactory.cc \ +noinst_LTLIBRARIES = libbasesamplers.la +libbasesamplers_la_SOURCES = DiscreteSlicer.cc FiniteFactory.cc \ FiniteMethod.cc RealSlicer.cc SliceFactory.cc -basesamplers_la_CPPFLAGS = -I$(top_srcdir)/src/include -basesamplers_la_LDFLAGS = -no-undefined -module -avoid-version +libbasesamplers_la_CPPFLAGS = -I$(top_srcdir)/src/include noinst_HEADERS = DiscreteSlicer.h FiniteFactory.h \ FiniteMethod.h RealSlicer.h SliceFactory.h @@ -280,7 +357,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/base/samplers/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/base/samplers/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -301,14 +377,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -basesamplers.la: $(basesamplers_la_OBJECTS) $(basesamplers_la_DEPENDENCIES) $(EXTRA_basesamplers_la_DEPENDENCIES) - $(basesamplers_la_LINK) $(basesamplers_la_OBJECTS) $(basesamplers_la_LIBADD) $(LIBS) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libbasesamplers.la: $(libbasesamplers_la_OBJECTS) $(libbasesamplers_la_DEPENDENCIES) $(EXTRA_libbasesamplers_la_DEPENDENCIES) + $(AM_V_CXXLD)$(CXXLINK) $(libbasesamplers_la_OBJECTS) $(libbasesamplers_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -316,67 +395,70 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basesamplers_la-DiscreteSlicer.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basesamplers_la-FiniteFactory.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basesamplers_la-FiniteMethod.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basesamplers_la-RealSlicer.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basesamplers_la-SliceFactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasesamplers_la-DiscreteSlicer.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasesamplers_la-FiniteFactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasesamplers_la-FiniteMethod.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasesamplers_la-RealSlicer.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbasesamplers_la-SliceFactory.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< -basesamplers_la-DiscreteSlicer.lo: DiscreteSlicer.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basesamplers_la-DiscreteSlicer.lo -MD -MP -MF $(DEPDIR)/basesamplers_la-DiscreteSlicer.Tpo -c -o basesamplers_la-DiscreteSlicer.lo `test -f 'DiscreteSlicer.cc' || echo '$(srcdir)/'`DiscreteSlicer.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basesamplers_la-DiscreteSlicer.Tpo $(DEPDIR)/basesamplers_la-DiscreteSlicer.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DiscreteSlicer.cc' object='basesamplers_la-DiscreteSlicer.lo' libtool=yes @AMDEPBACKSLASH@ +libbasesamplers_la-DiscreteSlicer.lo: DiscreteSlicer.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasesamplers_la-DiscreteSlicer.lo -MD -MP -MF $(DEPDIR)/libbasesamplers_la-DiscreteSlicer.Tpo -c -o libbasesamplers_la-DiscreteSlicer.lo `test -f 'DiscreteSlicer.cc' || echo '$(srcdir)/'`DiscreteSlicer.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasesamplers_la-DiscreteSlicer.Tpo $(DEPDIR)/libbasesamplers_la-DiscreteSlicer.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DiscreteSlicer.cc' object='libbasesamplers_la-DiscreteSlicer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basesamplers_la-DiscreteSlicer.lo `test -f 'DiscreteSlicer.cc' || echo '$(srcdir)/'`DiscreteSlicer.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasesamplers_la-DiscreteSlicer.lo `test -f 'DiscreteSlicer.cc' || echo '$(srcdir)/'`DiscreteSlicer.cc -basesamplers_la-FiniteFactory.lo: FiniteFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basesamplers_la-FiniteFactory.lo -MD -MP -MF $(DEPDIR)/basesamplers_la-FiniteFactory.Tpo -c -o basesamplers_la-FiniteFactory.lo `test -f 'FiniteFactory.cc' || echo '$(srcdir)/'`FiniteFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basesamplers_la-FiniteFactory.Tpo $(DEPDIR)/basesamplers_la-FiniteFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='FiniteFactory.cc' object='basesamplers_la-FiniteFactory.lo' libtool=yes @AMDEPBACKSLASH@ +libbasesamplers_la-FiniteFactory.lo: FiniteFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasesamplers_la-FiniteFactory.lo -MD -MP -MF $(DEPDIR)/libbasesamplers_la-FiniteFactory.Tpo -c -o libbasesamplers_la-FiniteFactory.lo `test -f 'FiniteFactory.cc' || echo '$(srcdir)/'`FiniteFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasesamplers_la-FiniteFactory.Tpo $(DEPDIR)/libbasesamplers_la-FiniteFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='FiniteFactory.cc' object='libbasesamplers_la-FiniteFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basesamplers_la-FiniteFactory.lo `test -f 'FiniteFactory.cc' || echo '$(srcdir)/'`FiniteFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasesamplers_la-FiniteFactory.lo `test -f 'FiniteFactory.cc' || echo '$(srcdir)/'`FiniteFactory.cc -basesamplers_la-FiniteMethod.lo: FiniteMethod.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basesamplers_la-FiniteMethod.lo -MD -MP -MF $(DEPDIR)/basesamplers_la-FiniteMethod.Tpo -c -o basesamplers_la-FiniteMethod.lo `test -f 'FiniteMethod.cc' || echo '$(srcdir)/'`FiniteMethod.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basesamplers_la-FiniteMethod.Tpo $(DEPDIR)/basesamplers_la-FiniteMethod.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='FiniteMethod.cc' object='basesamplers_la-FiniteMethod.lo' libtool=yes @AMDEPBACKSLASH@ +libbasesamplers_la-FiniteMethod.lo: FiniteMethod.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasesamplers_la-FiniteMethod.lo -MD -MP -MF $(DEPDIR)/libbasesamplers_la-FiniteMethod.Tpo -c -o libbasesamplers_la-FiniteMethod.lo `test -f 'FiniteMethod.cc' || echo '$(srcdir)/'`FiniteMethod.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasesamplers_la-FiniteMethod.Tpo $(DEPDIR)/libbasesamplers_la-FiniteMethod.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='FiniteMethod.cc' object='libbasesamplers_la-FiniteMethod.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basesamplers_la-FiniteMethod.lo `test -f 'FiniteMethod.cc' || echo '$(srcdir)/'`FiniteMethod.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasesamplers_la-FiniteMethod.lo `test -f 'FiniteMethod.cc' || echo '$(srcdir)/'`FiniteMethod.cc -basesamplers_la-RealSlicer.lo: RealSlicer.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basesamplers_la-RealSlicer.lo -MD -MP -MF $(DEPDIR)/basesamplers_la-RealSlicer.Tpo -c -o basesamplers_la-RealSlicer.lo `test -f 'RealSlicer.cc' || echo '$(srcdir)/'`RealSlicer.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basesamplers_la-RealSlicer.Tpo $(DEPDIR)/basesamplers_la-RealSlicer.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RealSlicer.cc' object='basesamplers_la-RealSlicer.lo' libtool=yes @AMDEPBACKSLASH@ +libbasesamplers_la-RealSlicer.lo: RealSlicer.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasesamplers_la-RealSlicer.lo -MD -MP -MF $(DEPDIR)/libbasesamplers_la-RealSlicer.Tpo -c -o libbasesamplers_la-RealSlicer.lo `test -f 'RealSlicer.cc' || echo '$(srcdir)/'`RealSlicer.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasesamplers_la-RealSlicer.Tpo $(DEPDIR)/libbasesamplers_la-RealSlicer.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='RealSlicer.cc' object='libbasesamplers_la-RealSlicer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basesamplers_la-RealSlicer.lo `test -f 'RealSlicer.cc' || echo '$(srcdir)/'`RealSlicer.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasesamplers_la-RealSlicer.lo `test -f 'RealSlicer.cc' || echo '$(srcdir)/'`RealSlicer.cc -basesamplers_la-SliceFactory.lo: SliceFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT basesamplers_la-SliceFactory.lo -MD -MP -MF $(DEPDIR)/basesamplers_la-SliceFactory.Tpo -c -o basesamplers_la-SliceFactory.lo `test -f 'SliceFactory.cc' || echo '$(srcdir)/'`SliceFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/basesamplers_la-SliceFactory.Tpo $(DEPDIR)/basesamplers_la-SliceFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SliceFactory.cc' object='basesamplers_la-SliceFactory.lo' libtool=yes @AMDEPBACKSLASH@ +libbasesamplers_la-SliceFactory.lo: SliceFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbasesamplers_la-SliceFactory.lo -MD -MP -MF $(DEPDIR)/libbasesamplers_la-SliceFactory.Tpo -c -o libbasesamplers_la-SliceFactory.lo `test -f 'SliceFactory.cc' || echo '$(srcdir)/'`SliceFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbasesamplers_la-SliceFactory.Tpo $(DEPDIR)/libbasesamplers_la-SliceFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SliceFactory.cc' object='libbasesamplers_la-SliceFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(basesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o basesamplers_la-SliceFactory.lo `test -f 'SliceFactory.cc' || echo '$(srcdir)/'`SliceFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbasesamplers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbasesamplers_la-SliceFactory.lo `test -f 'SliceFactory.cc' || echo '$(srcdir)/'`SliceFactory.cc mostlyclean-libtool: -rm -f *.lo @@ -384,26 +466,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -415,15 +486,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -432,6 +499,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -573,18 +655,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/base/samplers/RealSlicer.cc jags-4.0.0/src/modules/base/samplers/RealSlicer.cc --- jags-3.4.0/src/modules/base/samplers/RealSlicer.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/samplers/RealSlicer.cc 2015-07-15 19:04:23.000000000 +0000 @@ -1,5 +1,5 @@ #include -#include +#include #include #include #include @@ -11,17 +11,18 @@ using std::vector; using std::string; +namespace jags { namespace base { - RealSlicer::RealSlicer(GraphView const *gv, unsigned int chain, + RealSlicer::RealSlicer(SingletonGraphView const *gv, unsigned int chain, double width, long maxwidth) : Slicer(width, maxwidth), _gv(gv), _chain(chain) { - if (gv->nodes().size() != 1 || - !canSample(gv->nodes().front())) + if (!canSample(gv->node())) { throwLogicError("Invalid RealSlicer"); } + gv->checkFinite(chain); } bool @@ -38,7 +39,7 @@ double RealSlicer::value() const { - return _gv->nodes().front()->value(_chain)[0]; + return _gv->node()->value(_chain)[0]; } void RealSlicer::setValue(double value) @@ -48,7 +49,7 @@ void RealSlicer::getLimits(double *lower, double *upper) const { - _gv->nodes().front()->support(lower, upper, 1, _chain); + _gv->node()->support(lower, upper, 1, _chain); } void RealSlicer::update(RNG *rng) @@ -56,11 +57,11 @@ if (!updateStep(rng)) { switch(state()) { case SLICER_POSINF: - throwNodeError(_gv->nodes().front(), + throwNodeError(_gv->node(), "Slicer stuck at value with infinite density"); break; case SLICER_NEGINF: - throwNodeError(_gv->nodes().front(), + throwNodeError(_gv->node(), "Current value is inconsistent with data"); break; case SLICER_OK: @@ -69,13 +70,9 @@ } } - string RealSlicer::name() const - { - return "RealSlicer"; - } - double RealSlicer::logDensity() const { return _gv->logFullConditional(_chain); } -} + +}} diff -Nru jags-3.4.0/src/modules/base/samplers/RealSlicer.h jags-4.0.0/src/modules/base/samplers/RealSlicer.h --- jags-3.4.0/src/modules/base/samplers/RealSlicer.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/samplers/RealSlicer.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,8 +3,10 @@ #include -class StochasticNode; -class GraphView; +namespace jags { + + class StochasticNode; + class SingletonGraphView; namespace base { @@ -13,7 +15,7 @@ */ class RealSlicer : public Slicer { - GraphView const *_gv; + SingletonGraphView const *_gv; unsigned int _chain; public: /** @@ -25,18 +27,17 @@ * parameter * @param nburn Length of burnin */ - RealSlicer(GraphView const *gv, unsigned int chain, + RealSlicer(SingletonGraphView const *gv, unsigned int chain, double width = 1, long maxwidth = 10); double value() const; void setValue(double value); void getLimits(double *lower, double *upper) const; void update(RNG *rng); - std::string name() const; static bool canSample(StochasticNode const *node); double logDensity() const; }; -} +}} #endif /* REAL_SLICER_H_ */ diff -Nru jags-3.4.0/src/modules/base/samplers/SliceFactory.cc jags-4.0.0/src/modules/base/samplers/SliceFactory.cc --- jags-3.4.0/src/modules/base/samplers/SliceFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/samplers/SliceFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -4,8 +4,8 @@ #include "DiscreteSlicer.h" #include "SliceFactory.h" -#include -#include +#include +#include #include #include @@ -13,6 +13,7 @@ using std::vector; using std::string; +namespace jags { namespace base { bool @@ -30,9 +31,9 @@ Graph const &graph) const { unsigned int nchain = snode->nchain(); - vector methods(nchain, 0); - //Fixme: use snode and graph in constructor... - GraphView *gv = new GraphView(snode, graph); + vector methods(nchain, 0); + + SingletonGraphView *gv = new SingletonGraphView(snode, graph); bool discrete = snode->isDiscreteValued(); for (unsigned int ch = 0; ch < nchain; ++ch) { @@ -44,11 +45,13 @@ } } - return new ParallelSampler(gv, methods); + string name = discrete ? "base::DiscreteSlicer" : "base::RealSlicer"; + return new MutableSampler(gv, methods, name); } string SliceFactory::name() const { return "base::Slice"; } -} + +}} diff -Nru jags-3.4.0/src/modules/base/samplers/SliceFactory.h jags-4.0.0/src/modules/base/samplers/SliceFactory.h --- jags-3.4.0/src/modules/base/samplers/SliceFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/base/samplers/SliceFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -5,6 +5,7 @@ class StochasticNode; class Graph; +namespace jags { namespace base { /** @@ -18,6 +19,6 @@ std::string name() const; }; -} +}} #endif /* SLICE_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/base/testbase.cc jags-4.0.0/src/modules/base/testbase.cc --- jags-3.4.0/src/modules/base/testbase.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/base/testbase.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,7 @@ +#include "testbase.h" +#include "functions/testbasefun.h" +#include + +void init_base_test() { + CPPUNIT_TEST_SUITE_REGISTRATION( BaseFunTest ); +} diff -Nru jags-3.4.0/src/modules/base/testbase.h jags-4.0.0/src/modules/base/testbase.h --- jags-3.4.0/src/modules/base/testbase.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/base/testbase.h 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,6 @@ +#ifndef BASE_TEST_H_ +#define BASE_TEST_H_ + +void init_base_test(); + +#endif /* BASE_TEST_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/bugs.cc jags-4.0.0/src/modules/bugs/bugs.cc --- jags-3.4.0/src/modules/bugs/bugs.cc 2013-02-25 11:37:49.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/bugs.cc 2015-09-27 07:08:13.000000000 +0000 @@ -1,9 +1,8 @@ -#include +#include #include #include #include -#include #include #include #include @@ -22,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -40,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -67,6 +69,7 @@ #include #include #include +#include #include #include #include @@ -80,24 +83,25 @@ #include #include -#include -#include -#include +#include +#include +#include #include #include #include #include +#include using std::vector; +namespace jags { namespace bugs { class BUGSModule : public Module { public: BUGSModule(); ~BUGSModule(); - void Rinsert(RScalarDist *dist); }; BUGSModule::BUGSModule() @@ -106,32 +110,31 @@ //Load distributions insert(new DBern); - Rinsert(new DBeta); - Rinsert(new DBetaBin); - Rinsert(new DBin); + insert(new DBeta); + insert(new DBin); insert(new DCat); - Rinsert(new DChisqr); - Rinsert(new DDexp); + insert(new DChisqr); + insert(new DDexp); insert(new DDirch); - Rinsert(new DExp); - Rinsert(new DF); - Rinsert(new DGamma); - Rinsert(new DGenGamma); - Rinsert(new DLnorm); - Rinsert(new DLogis); + insert(new DExp); + insert(new DF); + insert(new DGamma); + insert(new DGenGamma); + insert(new DLnorm); + insert(new DLogis); insert(new DMNorm); insert(new DMT); insert(new DMulti); - Rinsert(new DNChisqr); - Rinsert(new DNegBin); - Rinsert(new DNorm); - Rinsert(new DPar); - Rinsert(new DPois); - Rinsert(new DT); + insert(new DNChisqr); + insert(new DNegBin); + insert(new DNorm); + insert(new DPar); + insert(new DPois); + insert(new DT); insert(new DUnif); - Rinsert(new DWeib); + insert(new DWeib); insert(new DWish); - Rinsert(new DHyper); + insert(new DHyper); //Load functions insert(new Abs); @@ -141,6 +144,7 @@ insert(new ArcSinh); insert(new ArcTan); insert(new ArcTanh); + insert(new Combine); insert(new Cos); insert(new Cosh); insert(new CLogLog); @@ -166,6 +170,7 @@ insert(new Probit); insert(new Prod); insert(new Rank); + insert(new Rep); insert(new Round); insert(new SD); insert(new Sin); @@ -183,13 +188,15 @@ insert(new DSum, new DSumFunc); insert(new DInterval, new DIntervalFunc); insert(new DRound, new DRoundFunc); - + insert(new SumDist, new Sum); + //Load sampler factories insert(new MNormalFactory); insert(new DirichletFactory); insert(new ConjugateFactory); //insert(new REFactory); insert(new DSumFactory); + insert(new SumFactory); } BUGSModule::~BUGSModule() { @@ -210,14 +217,8 @@ } } - void BUGSModule::Rinsert(RScalarDist *dist) - { - insert(dist); - insert(new DFunction(dist)); - insert(new PFunction(dist)); - insert(new QFunction(dist)); - } -} -bugs::BUGSModule _bugs_module; +}} + +jags::bugs::BUGSModule _bugs_module; diff -Nru jags-3.4.0/src/modules/bugs/distributions/DBern.cc jags-4.0.0/src/modules/bugs/distributions/DBern.cc --- jags-3.4.0/src/modules/bugs/distributions/DBern.cc 2012-02-20 08:52:55.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DBern.cc 2015-04-26 19:44:04.000000000 +0000 @@ -14,6 +14,7 @@ #define PROB(par) (*par[0]) +namespace jags { namespace bugs { DBern::DBern() @@ -62,25 +63,22 @@ return true; } -double DBern::KL(vector const &par1, - vector const &par2) const -{ - double p1 = PROB(par1); - double p2 = PROB(par2); - - if (p2 == 0 && p1 != 0) - return JAGS_POSINF; - else if (p2 == 1 && p1 != 1) - return JAGS_POSINF; - else if (p1 == 0) { - return - log(1 - p2); - } - else if (p1 == 1) { - return - log(p2); + double DBern::KL(vector const &par0, + vector const &par1) const + { + double p0 = PROB(par0); + double p1 = PROB(par1); + + if (p0 == 0) { + return - log(1 - p1); + } + else if (p0 == 1) { + return - log(p1); + } + else { + return (p0 * (log(p0) - log(p1)) + + (1 - p0) * (log(1 - p0) - log(1 - p1))); + } } - else { - return p1 * (log(p1) - log(p2)) + (1 - p1) * (log(1-p1) - log(1-p2)); - } -} -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DBern.h jags-4.0.0/src/modules/bugs/distributions/DBern.h --- jags-3.4.0/src/modules/bugs/distributions/DBern.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DBern.h 2015-04-26 19:50:27.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef DBERN_H_ #define DBERN_H_ -#include "RScalarDist.h" +#include +namespace jags { namespace bugs { /** @@ -34,6 +35,6 @@ std::vector const &par2) const; }; -} +}} #endif /* DBERN_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DBetaBin.cc jags-4.0.0/src/modules/bugs/distributions/DBetaBin.cc --- jags-3.4.0/src/modules/bugs/distributions/DBetaBin.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DBetaBin.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,125 +0,0 @@ -#include -#include "DBetaBin.h" - -#include - -#include - -using std::vector; -using std::max; -using std::min; -using std::string; - -#define A(par) (*par[0]) -#define B(par) (*par[1]) -#define SIZE(par) (*par[2]) - -static double dbb(double x, double a, double b, double n) -{ - //Probability density function - return choose(a+x-1, x) * choose(b+n-x-1, n-x) / choose(a+b+n-1, n); -} - -static double ldbb(double x, double a, double b, double n) -{ - //Log probability density function - return lchoose(a+x-1, x) + lchoose(b+n-x-1, n-x) - lchoose(a+b+n-1, n); -} - -namespace bugs { - -DBetaBin::DBetaBin() - : RScalarDist("dbetabin", 3, DIST_SPECIAL, true) -{} - -string DBetaBin::alias() const -{ - return "dbetabinom"; -} - -bool -DBetaBin::checkParameterDiscrete (vector const &mask) const -{ - return mask[2] == true; -} - -bool DBetaBin::checkParameterValue (vector const &par) const -{ - return (SIZE(par) >= 0 && A(par) > 0.0 && B(par) > 0.0); -} - -double DBetaBin::d(double x, PDFType type, vector const &par, - bool give_log) const -{ - if (give_log) - return ldbb(x, A(par), B(par), SIZE(par)); - else - return dbb(x, A(par), B(par), SIZE(par)); -} - -static double pbb(double x, double a, double b, double n) -{ - //Distribution function - - if (x < 0) return 0; - if (x >= n) return 1; - - double y = 0; - for (int i = 0; i <= x; ++i) { - y += dbb(i, a, b, n); - } - return y; -} - -double DBetaBin::p(double x, vector const &par, - bool lower, bool give_log) const -{ - double y = pbb(x, A(par), B(par), SIZE(par)); - if (!lower) y = 1 - y; - return give_log ? log(y) : y; -} - -static double qbb(double p, double a, double b, double n) -{ - //Quantile function - - if (p < 0) return 0; - if (p >= 1) return n; - - double pi = 0; - for (int i = 0; i < n; ++i) { - pi += dbb(i, a, b, n); - if (pi > p) return i; - } - return n; -} - -double DBetaBin::q(double p, vector const &par, - bool lower, bool log_p) const -{ - if (log_p) p = exp(p); - if (!lower) p = 1 - p; - return qbb(p, A(par), B(par), SIZE(par)); -} - -double DBetaBin::r(vector const &par, RNG *rng) const -{ - return rbinom(SIZE(par), rbeta(A(par), B(par), rng), rng); -} - -double DBetaBin::l(vector const &par) const -{ - return 0; -} - -double DBetaBin::u(vector const &par) const -{ - return SIZE(par); -} - -bool DBetaBin::isSupportFixed(vector const &fixmask) const -{ - return fixmask[2]; //SIZE is fixed; -} - -} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DBetaBin.h jags-4.0.0/src/modules/bugs/distributions/DBetaBin.h --- jags-3.4.0/src/modules/bugs/distributions/DBetaBin.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DBetaBin.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -#ifndef DBETA_BIN_H_ -#define DBETA_BIN_H_ - -#include "RScalarDist.h" - -namespace bugs { - -/** - * @short Beta-Binomial distribution - *
- * Y ~ dbin(a, b, n)
- * f(y|a,b,n) = choose(a+y-1, y) * choose(b+n-y-1, n-y) / choose(a+b+n-1, n)
- * 
- */ -class DBetaBin : public RScalarDist { - public: - DBetaBin(); - std::string alias() const; - double d(double x, PDFType type, - std::vector const ¶meters, - bool give_log) const; - double p(double x, std::vector const ¶meters, bool lower, - bool give_log) const; - double q(double p, std::vector const ¶meters, bool lower, - bool log_p) const; - double r(std::vector const ¶meters, RNG *rng) const; - double l(std::vector const ¶meters) const; - double u(std::vector const ¶meters) const; - /** - * Checks that n is discrete-valued. - */ - bool checkParameterDiscrete (std::vector const &mask) const; - /** - * Checks that p lies in (0,1), n >= 1, phi > -1 - */ - bool checkParameterValue(std::vector const ¶meters) const; - bool isSupportFixed(std::vector const &fixmask) const; -}; - -} - -#endif /* DBETA_BIN_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DBeta.cc jags-4.0.0/src/modules/bugs/distributions/DBeta.cc --- jags-3.4.0/src/modules/bugs/distributions/DBeta.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DBeta.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; +namespace jags { namespace bugs { DBeta::DBeta() @@ -78,4 +79,4 @@ + (a2 + b2 - a1 - b1) * digamma(a1 + b1); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DBeta.h jags-4.0.0/src/modules/bugs/distributions/DBeta.h --- jags-3.4.0/src/modules/bugs/distributions/DBeta.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DBeta.h 2015-02-22 08:33:05.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef DBETA_H_ #define DBETA_H_ -#include "RScalarDist.h" +#include +namespace jags { namespace bugs { /** @@ -32,6 +33,6 @@ std::vector const &par2) const; }; -} +}} #endif /* DBETA_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DBin.cc jags-4.0.0/src/modules/bugs/distributions/DBin.cc --- jags-3.4.0/src/modules/bugs/distributions/DBin.cc 2011-11-14 08:57:38.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DBin.cc 2015-02-22 08:33:05.000000000 +0000 @@ -17,6 +17,7 @@ #define SIZE(par) (*par[1]) #define PROB(par) (*par[0]) +namespace jags { namespace bugs { DBin::DBin() @@ -104,4 +105,4 @@ } } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DBin.h jags-4.0.0/src/modules/bugs/distributions/DBin.h --- jags-3.4.0/src/modules/bugs/distributions/DBin.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DBin.h 2015-04-26 19:50:30.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef DBIN_H_ #define DBIN_H_ -#include "RScalarDist.h" +#include +namespace jags { namespace bugs { /** @@ -39,6 +40,6 @@ std::vector const &par2) const; }; -} +}} #endif /* DBIN_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DCat.cc jags-4.0.0/src/modules/bugs/distributions/DCat.cc --- jags-3.4.0/src/modules/bugs/distributions/DCat.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DCat.cc 2015-06-13 09:00:58.000000000 +0000 @@ -19,6 +19,7 @@ #define PROB(par) (par[0]) #define NCAT(lengths) (lengths[0]) +namespace jags { namespace bugs { DCat::DCat() @@ -117,7 +118,7 @@ bool DCat::checkParameterLength(vector const &lengths) const { - return true; + return NCAT(lengths) > 0; } unsigned int DCat::length(vector const &lengths) const @@ -125,29 +126,29 @@ return 1; } -double DCat::KL(vector const &par1, - vector const &par2, - vector const &lengths) const -{ - double psum1 = 0, psum2 = 0, y = 0; - for (unsigned int i = 0; i < NCAT(lengths); ++i) { - double p1 = PROB(par1)[i]; - double p2 = PROB(par2)[i]; - if (p1 == 0) { - psum2 += p2; - } - else if (p2 == 0) { - return JAGS_POSINF; - } - else { - y += p1 * (log(p1) - log(p2)); - psum1 += p1; - psum2 += p2; - } + double DCat::KL(vector const &par0, + vector const &par1, + vector const &lengths) const + { + double psum0 = 0, psum1 = 0, y = 0; + for (unsigned int i = 0; i < NCAT(lengths); ++i) { + double p0 = PROB(par0)[i]; + double p1 = PROB(par1)[i]; + if (p0 == 0) { + psum1 += p1; + } + else if (p1 == 0) { + return JAGS_POSINF; + } + else { + y += p0 * (log(p0) - log(p1)); + psum0 += p0; + psum1 += p1; + } + } + y /= psum0; + y -= (log(psum0) - log(psum1)); + return y; } - y /= psum1; - y -= (log(psum1) - log(psum2)); - return y; -} -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DCat.h jags-4.0.0/src/modules/bugs/distributions/DCat.h --- jags-3.4.0/src/modules/bugs/distributions/DCat.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DCat.h 2015-06-13 08:44:01.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -41,11 +42,11 @@ bool isDiscreteValued(std::vector const &mask) const; bool checkParameterLength(std::vector const &lengths) const; unsigned int length(std::vector const &lengths) const; - double KL(std::vector const &par1, - std::vector const &par2, + double KL(std::vector const &par0, + std::vector const &par1, std::vector const &lengths) const; }; -} +}} #endif /* DCAT_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DChisqr.cc jags-4.0.0/src/modules/bugs/distributions/DChisqr.cc --- jags-3.4.0/src/modules/bugs/distributions/DChisqr.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DChisqr.cc 2015-06-13 09:03:01.000000000 +0000 @@ -9,6 +9,7 @@ #define DF(par) (*par[0]) +namespace jags { namespace bugs { DChisqr::DChisqr() @@ -68,12 +69,12 @@ return rchisq(DF(par), rng); } -double DChisqr::KL(vector const &par1, - vector const &par2) const -{ - //Specialisation of the gamma Kullback-Leibler divergence - double b1 = DF(par1)/2, b2 = DF(par2)/2; - return (b1 - b2) * digamma(b1) + lgammafn(b2) - lgammafn(b1); -} + double DChisqr::KL(vector const &par0, + vector const &par1) const + { + //Specialisation of the gamma Kullback-Leibler divergence + double b0 = DF(par0)/2, b1 = DF(par1)/2; + return (b0 - b1) * digamma(b0) + lgammafn(b1) - lgammafn(b0); + } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DChisqr.h jags-4.0.0/src/modules/bugs/distributions/DChisqr.h --- jags-3.4.0/src/modules/bugs/distributions/DChisqr.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DChisqr.h 2015-06-13 09:02:22.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef DCHISQ_H_ #define DCHISQ_H_ -#include "RScalarDist.h" +#include +namespace jags { namespace bugs { /** @@ -29,10 +30,10 @@ */ bool checkParameterValue(std::vector const ¶meters) const; std::string alias() const; - double KL(std::vector const &par1, - std::vector const &par2) const; + double KL(std::vector const &par0, + std::vector const &par1) const; }; -} +}} #endif /* DCHISQ_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DDexp.cc jags-4.0.0/src/modules/bugs/distributions/DDexp.cc --- jags-3.4.0/src/modules/bugs/distributions/DDexp.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DDexp.cc 2015-06-13 21:38:05.000000000 +0000 @@ -23,6 +23,7 @@ return *par[1]; } +namespace jags { namespace bugs { DDexp::DDexp() @@ -78,7 +79,7 @@ p = 1 - p; if (p < 0.5) { - return MU(par) - qexp(2 * (0.5 - p), SCALE(par), false, false); + return MU(par) - qexp(2 * p, SCALE(par), false, false); } else { return MU(par) + qexp(2 * (p - 0.5), SCALE(par), true, false); @@ -96,15 +97,13 @@ } -double DDexp::KL(vector const &par1, - vector const &par2) const -{ - //FIXME Shouldn't fabs be in namespace std?? - - double r = RATE(par2) / RATE(par2); - double delta = RATE(par1) * fabs(MU(par2) - MU(par1)); - - return r * (delta + exp(-delta)) - 1 - log(r); -} + double DDexp::KL(vector const &par0, + vector const &par1) const + { + double r = RATE(par1) / RATE(par0); + double delta = RATE(par0) * std::abs(MU(par1) - MU(par0)); + + return r * (delta + exp(-delta)) - 1 - log(r); + } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DDexp.h jags-4.0.0/src/modules/bugs/distributions/DDexp.h --- jags-3.4.0/src/modules/bugs/distributions/DDexp.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DDexp.h 2015-02-22 08:33:05.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef DDEXP_H_ #define DDEXP_H_ -#include "RScalarDist.h" +#include +namespace jags { namespace bugs { /** @@ -32,6 +33,6 @@ std::vector const &par2) const; }; -} +}} #endif /* DDEXP_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DDirch.cc jags-4.0.0/src/modules/bugs/distributions/DDirch.cc --- jags-3.4.0/src/modules/bugs/distributions/DDirch.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DDirch.cc 2015-06-13 12:17:32.000000000 +0000 @@ -1,12 +1,12 @@ #include #include "DDirch.h" -#include #include #include #include #include +#include using std::vector; using std::string; @@ -21,6 +21,7 @@ is fixed. */ +namespace jags { namespace bugs { DDirch::DDirch() @@ -152,8 +153,8 @@ return LENGTH(len) - 1; } -double DDirch::KL(vector const &par1, - vector const &par2, +double DDirch::KL(vector const &par0, + vector const &par1, vector const &len) const { //Generalization of the Kullback-Leibler divergence for the beta @@ -162,26 +163,26 @@ unsigned int N = LENGTH(len); - double S1 = 0, S2 = 0, y = 0; + double S0 = 0, S1 = 0, y = 0; for (unsigned int i = 0; i < N; ++i) { - double a1 = ALPHA(par1)[i]; - double a2 = ALPHA(par2)[i]; + double a1 = ALPHA(par0)[i]; + double a2 = ALPHA(par1)[i]; if (a1 == 0) { - S2 += a2; + S1 += a2; } else if (a2 == 0) { return JAGS_POSINF; } else { y += (a1 - a2) * digamma(a1) + lgammafn(a2) - lgammafn(a1); - S1 += a1; - S2 += a2; + S0 += a1; + S1 += a2; } } - y -= (S1 - S2) * digamma(S1) + lgammafn(S2) - lgammafn(S1); + y -= (S0 - S1) * digamma(S0) + lgammafn(S1) - lgammafn(S0); return y; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DDirch.h jags-4.0.0/src/modules/bugs/distributions/DDirch.h --- jags-3.4.0/src/modules/bugs/distributions/DDirch.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DDirch.h 2015-06-13 12:16:51.000000000 +0000 @@ -3,8 +3,7 @@ #include -struct RNG; - +namespace jags { namespace bugs { /** @@ -58,11 +57,11 @@ std::vector const &lengths) const; bool isSupportFixed(std::vector const &fixmask) const; unsigned int df(std::vector const &lengths) const; - double KL(std::vector const &par1, - std::vector const &par2, + double KL(std::vector const &par0, + std::vector const &par1, std::vector const &len) const; }; -} +}} #endif /* DDIRCH_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DExp.cc jags-4.0.0/src/modules/bugs/distributions/DExp.cc --- jags-3.4.0/src/modules/bugs/distributions/DExp.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DExp.cc 2015-06-13 12:20:00.000000000 +0000 @@ -9,6 +9,7 @@ using std::max; using std::vector; +namespace jags { namespace bugs { DExp::DExp() @@ -53,11 +54,11 @@ } -double DExp::KL(vector const &par1, - vector const &par2) const +double DExp::KL(vector const &par0, + vector const &par1) const { - double r = (*par2[0]) / (*par1[0]); - return (r - 1) - log(r); + double r = (*par1[0]) / (*par0[0]); + return r - 1 - log(r); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DExp.h jags-4.0.0/src/modules/bugs/distributions/DExp.h --- jags-3.4.0/src/modules/bugs/distributions/DExp.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DExp.h 2015-06-13 12:19:09.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef DEXP_H_ #define DEXP_H_ -#include "RScalarDist.h" +#include +namespace jags { namespace bugs { /** @@ -27,10 +28,10 @@ * Checks that lambda > 0 */ bool checkParameterValue(std::vector const ¶meters) const; - double KL(std::vector const &par1, - std::vector const &par2) const; + double KL(std::vector const &par0, + std::vector const &par1) const; }; -} +}} #endif /* DEXP_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DF.cc jags-4.0.0/src/modules/bugs/distributions/DF.cc --- jags-3.4.0/src/modules/bugs/distributions/DF.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DF.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; +namespace jags { namespace bugs { DF::DF() @@ -56,4 +57,4 @@ return rF(*par[0], *par[1], rng); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DF.h jags-4.0.0/src/modules/bugs/distributions/DF.h --- jags-3.4.0/src/modules/bugs/distributions/DF.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DF.h 2015-02-22 08:33:05.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef DF_H_ #define DF_H_ -#include "RScalarDist.h" +#include +namespace jags { namespace bugs { /** @@ -32,6 +33,6 @@ bool checkParameterValue(std::vector const ¶meters) const; }; -} +}} #endif /* DF_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DGamma.cc jags-4.0.0/src/modules/bugs/distributions/DGamma.cc --- jags-3.4.0/src/modules/bugs/distributions/DGamma.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DGamma.cc 2015-06-13 12:22:27.000000000 +0000 @@ -10,6 +10,7 @@ #define SCALE(par) (1 / *par[1]) #define RATE(par) (*par[1]) +namespace jags { namespace bugs { DGamma::DGamma() @@ -75,13 +76,13 @@ } } -double DGamma::KL(vector const &par1, - vector const &par2) const +double DGamma::KL(vector const &par0, + vector const &par1) const { - double b1 = SHAPE(par1), b2 = SHAPE(par2); - double r = RATE(par2) / RATE(par1); - return (r - 1) * b1 - b2 * log(r) - + (b1 - b2) * digamma(b1) + lgammafn(b2) - lgammafn(b1); + double b0 = SHAPE(par0), b1 = SHAPE(par1); + double r = RATE(par1) / RATE(par0); + return (r - 1) * b0 - b1 * log(r) + + (b0 - b1) * digamma(b0) + lgammafn(b1) - lgammafn(b0); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DGamma.h jags-4.0.0/src/modules/bugs/distributions/DGamma.h --- jags-3.4.0/src/modules/bugs/distributions/DGamma.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DGamma.h 2015-06-13 12:21:54.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef DGAMMA_H_ #define DGAMMA_H_ -#include "RScalarDist.h" +#include +namespace jags { namespace bugs { /** @@ -32,10 +33,10 @@ */ double typicalValue(std::vector const &par, double const *lower, double const *upper) const; - double KL(std::vector const &par1, - std::vector const &par2) const; + double KL(std::vector const &par0, + std::vector const &par1) const; }; -} +}} #endif /* DGAMMA_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DGenGamma.cc jags-4.0.0/src/modules/bugs/distributions/DGenGamma.cc --- jags-3.4.0/src/modules/bugs/distributions/DGenGamma.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DGenGamma.cc 2015-06-13 12:31:01.000000000 +0000 @@ -25,6 +25,7 @@ return exp(log(x) / POW(par) - log(URATE(par))); } +namespace jags { namespace bugs { DGenGamma::DGenGamma() @@ -33,7 +34,7 @@ string DGenGamma::alias() const { - return "gengamma"; + return "dggamma"; } bool DGenGamma::checkParameterValue (vector const &par) const @@ -80,20 +81,20 @@ return UNtransform(x, par); } -double DGenGamma::KL(vector const &par1, - vector const &par2) const +double DGenGamma::KL(vector const &par0, + vector const &par1) const { // Collapses to gamma distribution with beta1 = beta2 = 1; - double beta1 = POW(par1), beta2 = POW(par2); - double theta = URATE(par2) / URATE(par1); - double phi = beta2 / beta1; - double r1 = SHAPE(par1), r2 = SHAPE(par2); - - return - log(phi) - beta2 * r2 * log(theta) - + (r1 - phi * r2) * digamma(r1) - + pow(theta, beta2) * gammafn(r1 + phi) / gammafn(r1) - r1 - + lgammafn(r2) - lgammafn(r1); + double beta0 = POW(par0), beta1 = POW(par1); + double theta = URATE(par1) / URATE(par0); + double phi = beta1 / beta0; + double r0 = SHAPE(par0), r1 = SHAPE(par1); + + return - log(phi) - beta1 * r1 * log(theta) + + (r0 - phi * r1) * digamma(r0) + + pow(theta, beta1) * gammafn(r0 + phi) / gammafn(r0) - r0 + + lgammafn(r1) - lgammafn(r0); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DGenGamma.h jags-4.0.0/src/modules/bugs/distributions/DGenGamma.h --- jags-3.4.0/src/modules/bugs/distributions/DGenGamma.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DGenGamma.h 2015-02-22 08:33:05.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef DGEN_GAMMA_H_ #define DGEN_GAMMA_H_ -#include "RScalarDist.h" +#include +namespace jags { namespace bugs { /** @@ -32,6 +33,6 @@ std::vector const &par2) const; }; -} +}} #endif /* DGEN_GAMMA_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DHyper.cc jags-4.0.0/src/modules/bugs/distributions/DHyper.cc --- jags-3.4.0/src/modules/bugs/distributions/DHyper.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DHyper.cc 2015-06-13 21:08:23.000000000 +0000 @@ -13,6 +13,8 @@ #include #include +#include +#include #include @@ -20,7 +22,9 @@ using std::max; using std::min; using std::vector; +using std::logic_error; +namespace jags { namespace bugs { DHyper::DHyper() @@ -70,6 +74,15 @@ return true; } +/* + * Calculates the mode of the hypergeometric distribution + * + * Extending the unnormalized density function to continuous x, We + * solve the equation p(x) = p(x-1). Using the recurrence relation + * given in rfunction (see below) this reduces to a quadratic + * equation. The maximum value for integer values must lie between x-1 + * and x, so to find the mode we take the floor of x. + */ static int modeCompute(int n1, int n2, int m1, double psi) { double a = psi - 1; @@ -92,112 +105,160 @@ } } -double rfunction(int n1, int n2, int m1, double psi, int i) +/* + * Recurrence relation that allows us to calculate hypergeometric + * probabilities without running into combinatoric problems: + * + * p(x) = p(x - 1) * rfunction(n1, n2, m1, psi, x) + */ +static inline double rfunction(int n1, int n2, int m1, double psi, int i) { return psi * (n1 - i + 1) * (m1 - i + 1)/(i * (n2 - m1 + i)); } -static vector density(int n1, int n2, int m1, double psi) +/** + * Calculates the unnormalized density of x. The mode has reference + * density value 1. + */ +static double density_unnormalized(int x, int n1, int n2, int m1, double psi) { - int ll = max((int) 0, m1 - n2); + int ll = max(0, m1 - n2); int uu = min(n1, m1); - int N = uu - ll + 1; - vector p(N); + if (x < ll || x > uu) return 0; + + // Density at mode has reference value 1 int mode = modeCompute(n1, n2, m1, psi); + double r = 1; - // Set elements of p to 1 - for (int i = 0; i < N; ++i) { - p[i] = 1; + if (x > mode) { + for (int i = mode + 1; i <= x; ++i) { + r *= rfunction(n1, n2, m1, psi, i); + } + } + else if (x < mode) { + for (int i = mode - 1; i >= x; --i) { + r /= rfunction(n1, n2, m1, psi, i + 1); + } } - // Calculate density above the mode + return r; +} + +/* + * Calculates the normalized density of x + */ +static double density_normalized(int x, int n1, int n2, int m1, double psi) +{ + int ll = max(0, m1 - n2); + int uu = min(n1, m1); + + if (x < ll || x > uu) return 0; + + // Density at mode has reference value 1 + int mode = modeCompute(n1, n2, m1, psi); + double psum = 1, px = 1; + + // Calculate relative density above the mode if (mode < uu) { double r = 1; for (int i = mode + 1; i <= uu; ++i) { r *= rfunction(n1, n2, m1, psi, i); - p[i - ll] = r; + if (i == x) px = r; + psum += r; } } - // Calculate density below the node + // Calculate relative density below the node if (mode > ll) { double r = 1; - for (int i = mode; i > ll; --i) { - r /= rfunction(n1, n2, m1, psi, i); - p[i - ll - 1] = r; + for (int i = mode - 1; i >= ll; --i) { + r /= rfunction(n1, n2, m1, psi, i + 1); + if (i == x) px = r; + psum += r; } } - - //Normalize - double sump = 0; - for (int i = 0; i < N; ++i) { - sump += p[i]; - } - for (int i = 0; i < N; ++i) { - p[i] /= sump; - } - return p; -} -static int -sampleLowToHigh(int lower_end, double ran, double const *pi, int N) -{ - //fixme: check lower_end > 0 <= N - - for (int i = lower_end; i < N; ++i) { - if (ran <= pi[i]) - return i; - ran -= pi[i]; - } - return N - 1; + // Normalize + return px/psum; } -static int -sampleHighToLow(int upper_end, double ran, double const *pi, int N) +/* + * Returns a vector of normalized probabilities for a hypergeometric + * distribution. If the returned vector p is of length N, then p[0] + * represents the probability of the lowest possible value ll = max(0, + * m1 - n2) and p[N - 1] represents the probability of the largest + * possible value uu = min(n1, m1). + */ +static vector density_full(int n1, int n2, int m1, double psi) { - //fixme: check upper_end > 0 <= N + int ll = max(0, m1 - n2); + int uu = min(n1, m1); + int N = uu - ll + 1; + vector p(N); - for (int i = upper_end; i >= 0; --i) { - if (ran <= pi[i]) { - return i; + // Density at mode has reference value 1 + int mode = modeCompute(n1, n2, m1, psi); + p[mode - ll] = 1; + double sump = 1; + + // Calculate relative density above the mode + if (mode < uu) { + double r = 1; + for (int i = mode + 1; i <= uu; ++i) { + r *= rfunction(n1, n2, m1, psi, i); + p[i - ll] = r; + sump += r; + } + } + // Calculate relative density below the node + if (mode > ll) { + double r = 1; + for (int i = mode - 1; i >= ll; --i) { + r /= rfunction(n1, n2, m1, psi, i + 1); + p[i - ll] = r; + sump += r; } - ran -= pi[i]; } - return 0; + + //Normalize + for (int i = 0; i < N; ++i) { + p[i] /= sump; + } + return p; } -static int singleDraw(int n1, int n2, int m1, double psi, - int mode, double const *pi, int N, double ran) -{ - if (mode == 0) - return sampleLowToHigh(0, ran, pi, N); - if (mode == N - 1) - return sampleHighToLow(N - 1, ran, pi, N); - - if (ran < pi[mode]) - return mode; - - ran -= pi[mode]; - int lower = mode - 1; - int upper = mode + 1; - while (true) { - if (pi[upper] >= pi[lower]) { - if (ran < pi[upper]) - return upper; - ran -= pi[upper]; - if (upper == N - 1) - return sampleHighToLow(lower, ran, pi, N); - ++upper; +/* + * Sample from a discrete unimodal distribution given a vector of + * normalized probabilities pi[] and an estimate of the mode. U should + * be drawn from a uniform(0,1) distribution. We spend our probability + * allocation U as rapidly as possible, starting at the mode and then + * stepping out to the left and the right. + * + * This function is quite general and could be used for other discrete + * distributions when we have a good guess of the mode. The function + * also works if "mode" is not actually the mode, but is + * correspondingly less efficient. + */ +static int sampleWithMode(int mode, vector const &pi, double U) +{ + int N = pi.size(); + int left = mode - 1; + int right = mode; + while (left >= 0 || right < N) { + if (right < N && (left < 0 || pi[right] > pi[left])) { + U -= pi[right]; + if (U <= 0) return right; + else ++right; } else { - if (ran < pi[lower]) - return lower; - ran -= pi[lower]; - if (lower == 0) - return sampleLowToHigh(upper, ran, pi, N); - --lower; + U -= pi[left]; + if (U <= 0) return left; + else --left; } } + + //Only reachable with bad arguments + return mode; } double DHyper::d(double z, PDFType type, @@ -209,12 +270,12 @@ getParameters(n1, n2, m1, psi, parameters); int x = static_cast(z); - int ll = max((int) 0, m1 - n2); - int uu = min(n1, m1); - double den = 0; - if (x >= ll && x <= uu) { - den = density(n1, n2, m1, psi)[x - ll]; + if (type == PDF_PRIOR) { + den = density_unnormalized(x, n1, n2, m1, psi); + } + else { + den = density_normalized(x, n1, n2, m1, psi); } if (give_log) { @@ -232,7 +293,7 @@ double psi; getParameters(n1, n2, m1, psi, parameters); - int ll = max((int) 0, m1 - n2); + int ll = max(0, m1 - n2); int uu = min(n1, m1); double sumpi = 0; @@ -241,7 +302,7 @@ sumpi = 1; } else { - vector pi = density(n1, n2, m1, psi); + vector pi = density_full(n1, n2, m1, psi); for (int i = ll; i <= x; ++i) { sumpi += pi[i - ll]; } @@ -262,6 +323,7 @@ double DHyper::q(double p, vector const ¶meters, bool lower, bool log_p) const { + double tol = 64 * DBL_EPSILON; int n1,n2,m1; double psi; getParameters(n1, n2, m1, psi, parameters); @@ -269,7 +331,7 @@ int ll = max((int) 0, m1 - n2); int uu = min(n1, m1); - vector pi = density(n1, n2, m1, psi); + vector pi = density_full(n1, n2, m1, psi); if (log_p) p = exp(p); @@ -279,7 +341,7 @@ double sumpi = 0; for (int i = ll; i < uu; ++i) { sumpi += pi[i - ll]; - if (sumpi >= p) { + if (sumpi > p - tol) { return i; } } @@ -292,16 +354,10 @@ double psi; getParameters(n1, n2, m1, psi, parameters); + int ll = max(0, m1 - n2); int mode = modeCompute(n1, n2, m1, psi); - - int ll = max((int) 0, m1 - n2); - int uu = min(n1, m1); - int N = uu - ll + 1; - - double *pi = new double[N]; - int y = singleDraw(n1, n2, m1, psi, mode, pi, N, rng->uniform()); - delete [] pi; - return y; + vector pi = density_full(n1, n2, m1, psi); + return sampleWithMode(mode - ll, pi, rng->uniform()) + ll; } double DHyper::l(vector const ¶meters) const @@ -310,7 +366,7 @@ double psi; getParameters(n1, n2, m1, psi, parameters); - return max((int) 0, m1 - n2); + return max(0, m1 - n2); } double DHyper::u(vector const ¶meters) const @@ -334,21 +390,21 @@ double psia; getParameters(n1a, n2a, m1a, psia, para); - int lla = max((int) 0, m1a - n2a); + int lla = max(0, m1a - n2a); int uua = min(n1a, m1a); int n1b,n2b,m1b; double psib; - getParameters(n1b, n2b, m1b, psib, para); + getParameters(n1b, n2b, m1b, psib, parb); - int llb = max((int) 0, m1b - n2b); + int llb = max(0, m1b - n2b); int uub = min(n1b, m1b); if (lla < llb || uua > uub) return JAGS_POSINF; - vector da = density(n1a, n2a, m1a, psia); - vector db = density(n1b, n2b, m1b, psib); + vector da = density_full(n1a, n2a, m1a, psia); + vector db = density_full(n1b, n2b, m1b, psib); double y = 0; for (int i = lla; i <= uua; ++i) { @@ -359,4 +415,4 @@ return y; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DHyper.h jags-4.0.0/src/modules/bugs/distributions/DHyper.h --- jags-3.4.0/src/modules/bugs/distributions/DHyper.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DHyper.h 2015-02-22 08:33:05.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef DHYPER_H_ #define DHYPER_H_ -#include "RScalarDist.h" +#include +namespace jags { namespace bugs { /** @@ -36,6 +37,6 @@ std::vector const &par2) const; }; -} +}} #endif /* DHYPER_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DInterval.cc jags-4.0.0/src/modules/bugs/distributions/DInterval.cc --- jags-3.4.0/src/modules/bugs/distributions/DInterval.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DInterval.cc 2015-06-13 12:58:02.000000000 +0000 @@ -24,6 +24,7 @@ return ncut; } +namespace jags { namespace bugs { DInterval::DInterval() @@ -38,7 +39,7 @@ bool DInterval::checkParameterLength(vector const &lengths) const { - return lengths[0] == 1; + return lengths[0] == 1 && lengths[1] >= 1; } bool DInterval::checkParameterValue(vector const &par, @@ -122,18 +123,13 @@ return 1; } -double DInterval::KL(vector const &par1, - vector const &par2, +double DInterval::KL(vector const &par0, + vector const &par1, vector const &lengths) const { + unsigned int y0 = value(par0, NCUT(lengths)); unsigned int y1 = value(par1, NCUT(lengths)); - unsigned int y2 = value(par2, NCUT(lengths)); - if (y1 == y2) { - return 0; - } - else { - return JAGS_POSINF; - } + return (y0 == y1) ? 0 : JAGS_POSINF; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DInterval.h jags-4.0.0/src/modules/bugs/distributions/DInterval.h --- jags-3.4.0/src/modules/bugs/distributions/DInterval.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DInterval.h 2015-06-13 12:33:10.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -42,11 +43,11 @@ unsigned int df(std::vector const &lengths) const; bool isDiscreteValued(std::vector const &mask) const; unsigned int length(std::vector const ¶ms) const; - double KL(std::vector const &par1, - std::vector const &par2, + double KL(std::vector const &par0, + std::vector const &par1, std::vector const &lengths) const; }; -} +}} #endif /* DINTERVAL_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DLnorm.cc jags-4.0.0/src/modules/bugs/distributions/DLnorm.cc --- jags-3.4.0/src/modules/bugs/distributions/DLnorm.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DLnorm.cc 2015-02-22 08:33:05.000000000 +0000 @@ -11,6 +11,7 @@ #define TAU(par) (*par[1]) #define SDLOG(par) (1/sqrt(*par[1])) +namespace jags { namespace bugs { DLnorm::DLnorm() @@ -63,4 +64,4 @@ log(tau0/tau1)) / 2; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DLnorm.h jags-4.0.0/src/modules/bugs/distributions/DLnorm.h --- jags-3.4.0/src/modules/bugs/distributions/DLnorm.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DLnorm.h 2015-02-22 08:33:05.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef DLNORM_H_ #define DLNORM_H_ -#include "RScalarDist.h" +#include +namespace jags { namespace bugs { /** @@ -32,6 +33,6 @@ std::vector const &par1) const; }; -} +}} #endif /* DLNORM_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DLogis.cc jags-4.0.0/src/modules/bugs/distributions/DLogis.cc --- jags-3.4.0/src/modules/bugs/distributions/DLogis.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DLogis.cc 2015-02-22 16:48:56.000000000 +0000 @@ -9,6 +9,7 @@ #define SCALE(par) (1 / *par[1]) #define TAU(par) (*par[1]) +namespace jags { namespace bugs { DLogis::DLogis() @@ -48,4 +49,4 @@ return ans; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DLogis.h jags-4.0.0/src/modules/bugs/distributions/DLogis.h --- jags-3.4.0/src/modules/bugs/distributions/DLogis.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DLogis.h 2015-02-22 08:33:05.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef DLOGIS_H_ #define DLOGIS_H_ -#include "RScalarDist.h" +#include +namespace jags { namespace bugs { /** @@ -29,6 +30,6 @@ bool checkParameterValue(std::vector const ¶meters) const; }; -} +}} #endif /* DLOGIS_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DMNorm.cc jags-4.0.0/src/modules/bugs/distributions/DMNorm.cc --- jags-3.4.0/src/modules/bugs/distributions/DMNorm.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DMNorm.cc 2015-02-23 21:39:18.000000000 +0000 @@ -8,11 +8,13 @@ #include #include +#include #include using std::vector; +namespace jags { namespace bugs { DMNorm::DMNorm() @@ -37,12 +39,18 @@ } } - if (type == PDF_PRIOR) { - return loglik; //No need to calculate normalizing constant - } - else { - return loglik + logdet(T, m)/2; + switch(type) { + case PDF_PRIOR: + break; + case PDF_LIKELIHOOD: + loglik += logdet(T, m)/2; + break; + case PDF_FULL: + loglik += logdet(T, m)/2 - m * M_LN_SQRT_2PI; + break; } + + return loglik; } void DMNorm::randomSample(double *x, unsigned int m, @@ -108,14 +116,15 @@ bool DMNorm::checkParameterDim(vector > const &dims) const { - if (!isVector(dims[0])) - return false; - if (!isSquareMatrix(dims[1])) - return false; - if (dims[0][0] != dims[1][0]) - return false; - - return true; + //Allow scalar mean and precision. + if (isScalar(dims[0]) && isScalar(dims[1])) return true; + + //Vector mean and matrix precision + if (!isVector(dims[0])) return false; + if (!isSquareMatrix(dims[1])) return false; + if (dims[0][0] != dims[1][0]) return false; + + return true; } vector DMNorm::dim(vector > const &dims) const @@ -127,7 +136,10 @@ DMNorm::checkParameterValue(vector const ¶meters, vector > const &dims) const { - return check_symmetry(parameters[1], dims[0][0]); + double const *precision = parameters[1]; + unsigned int n = dims[0][0]; + + return check_symmetry(precision, n) && check_symmetric_ispd(precision, n); } @@ -156,4 +168,4 @@ return true; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DMNorm.h jags-4.0.0/src/modules/bugs/distributions/DMNorm.h --- jags-3.4.0/src/modules/bugs/distributions/DMNorm.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DMNorm.h 2015-02-22 16:52:24.000000000 +0000 @@ -3,6 +3,10 @@ #include +namespace jags { + +struct RNG; + namespace bugs { /** @@ -70,6 +74,6 @@ bool isSupportFixed(std::vector const &fixmask) const; }; -} +}} #endif /* DMNORM_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DMT.cc jags-4.0.0/src/modules/bugs/distributions/DMT.cc --- jags-3.4.0/src/modules/bugs/distributions/DMT.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DMT.cc 2015-02-22 08:33:05.000000000 +0000 @@ -14,6 +14,7 @@ using std::vector; +namespace jags { namespace bugs { DMT::DMT() @@ -132,4 +133,4 @@ return true; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DMT.h jags-4.0.0/src/modules/bugs/distributions/DMT.h --- jags-3.4.0/src/modules/bugs/distributions/DMT.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DMT.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -48,6 +49,6 @@ bool isSupportFixed(std::vector const &fixmask) const; }; -} +}} #endif /* DMT_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DMulti.cc jags-4.0.0/src/modules/bugs/distributions/DMulti.cc --- jags-3.4.0/src/modules/bugs/distributions/DMulti.cc 2012-03-02 11:38:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DMulti.cc 2015-02-27 22:16:53.000000000 +0000 @@ -9,16 +9,23 @@ #include using std::vector; +using std::string; #define PROB(par) (par[0]) #define SIZE(par) (*par[1]) +namespace jags { namespace bugs { DMulti::DMulti() : VectorDist("dmulti", 2) {} +string DMulti::alias() const +{ + return "dmultinom"; +} + bool DMulti::isDiscreteValued(vector const &mask) const { return true; @@ -26,8 +33,8 @@ bool DMulti::checkParameterLength(vector const &len) const { - //Check that SIZE is a scalar - return len[1] == 1; + //Check that PROB is non-empty and SIZE is a scalar + return len[0] >= 1 && len[1] == 1; } bool DMulti::checkParameterDiscrete(vector const &mask) const @@ -225,4 +232,4 @@ return y; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DMulti.h jags-4.0.0/src/modules/bugs/distributions/DMulti.h --- jags-3.4.0/src/modules/bugs/distributions/DMulti.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DMulti.h 2015-02-27 21:44:23.000000000 +0000 @@ -5,6 +5,7 @@ struct RNG; +namespace jags { namespace bugs { /** @@ -51,8 +52,9 @@ double KL(std::vector const &par1, std::vector const &par2, std::vector const &lengths) const; + std::string alias() const; }; -} +}} #endif /* DMULTI_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DNChisqr.cc jags-4.0.0/src/modules/bugs/distributions/DNChisqr.cc --- jags-3.4.0/src/modules/bugs/distributions/DNChisqr.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DNChisqr.cc 2015-02-22 08:33:05.000000000 +0000 @@ -9,6 +9,7 @@ #define DF(par) (*par[0]) #define NCP(par) (*par[1]) +namespace jags { namespace bugs { DNChisqr::DNChisqr() @@ -51,4 +52,4 @@ return rnchisq(DF(par), NCP(par), rng); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DNChisqr.h jags-4.0.0/src/modules/bugs/distributions/DNChisqr.h --- jags-3.4.0/src/modules/bugs/distributions/DNChisqr.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DNChisqr.h 2015-02-22 08:33:05.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef DNCHISQ_H_ #define DNCHISQ_H_ -#include "RScalarDist.h" +#include +namespace jags { namespace bugs { /** @@ -29,6 +30,6 @@ std::string alias() const; }; -} +}} #endif /* DNCHISQ_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DNegBin.cc jags-4.0.0/src/modules/bugs/distributions/DNegBin.cc --- jags-3.4.0/src/modules/bugs/distributions/DNegBin.cc 2013-08-21 13:53:15.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DNegBin.cc 2015-06-13 22:18:05.000000000 +0000 @@ -15,6 +15,7 @@ #define PROB(par) (*par[0]) #define SIZE(par) (*par[1]) +namespace jags { namespace bugs { DNegBin::DNegBin() @@ -85,16 +86,22 @@ } } -double DNegBin::KL(vector const &par1, - vector const &par2) const +double DNegBin::KL(vector const &par0, + vector const &par1) const { + double p0 = PROB(par0); + double r0 = SIZE(par0); double p1 = PROB(par1); double r1 = SIZE(par1); - double p2 = PROB(par2); - double r2 = SIZE(par2); - return r1 * log(p1) - r2 * log(p2) + - (1 - p1) * r1 * (log(1 - p1) - log(1 - p2)) / p1; + if (fabs(r0 - r1) > 1e-16) { + //We can't calculat Kullback-Leibler divergence in closed form when + //r0 and r1 are different + return JAGS_NA; + } + + return r0 * (log(p0) - log(p1)) + + (1 - p0) * r0 * (log(1 - p0) - log(1 - p1)) / p0; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DNegBin.h jags-4.0.0/src/modules/bugs/distributions/DNegBin.h --- jags-3.4.0/src/modules/bugs/distributions/DNegBin.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DNegBin.h 2015-06-13 12:39:52.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef DNEGBIN_H_ #define DNEGBIN_H_ -#include "RScalarDist.h" +#include +namespace jags { namespace bugs { /** @@ -28,10 +29,10 @@ * Checks that p lies in the interval (0,1) and r > 0 */ bool checkParameterValue(std::vector const ¶meters) const; - double KL(std::vector const &par1, - std::vector const &par2) const; + double KL(std::vector const &par0, + std::vector const &par1) const; }; -} +}} #endif /* DNEGBIN_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DNorm.cc jags-4.0.0/src/modules/bugs/distributions/DNorm.cc --- jags-3.4.0/src/modules/bugs/distributions/DNorm.cc 2011-08-05 10:28:18.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DNorm.cc 2015-04-26 19:43:51.000000000 +0000 @@ -13,6 +13,7 @@ #define SIGMA(par) (1/sqrt(*par[1])) #define TAU(par) (*par[1]) +namespace jags { namespace bugs { DNorm::DNorm() @@ -77,14 +78,15 @@ } -double DNorm::KL(vector const &par0, - vector const &par1) const -{ - double mu0 = MU(par0), tau0 = TAU(par0); - double mu1 = MU(par1), tau1 = TAU(par1); - - return ((mu0 - mu1) * (mu0 - mu1) * tau1 + tau1/tau0 - 1 + - log(tau0/tau1)) / 2; -} - -} + double DNorm::KL(vector const &par0, + vector const &par1) const + + { + double mu0 = MU(par0), tau0 = TAU(par0); + double mu1 = MU(par1), tau1 = TAU(par1); + + return ((mu0 - mu1) * (mu0 - mu1) * tau1 + tau1/tau0 - 1 + + log(tau0/tau1)) / 2; + } + +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DNorm.h jags-4.0.0/src/modules/bugs/distributions/DNorm.h --- jags-3.4.0/src/modules/bugs/distributions/DNorm.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DNorm.h 2015-02-22 08:33:05.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef DNORM_H_ #define DNORM_H_ -#include "RScalarDist.h" +#include +namespace jags { namespace bugs { /** @@ -40,6 +41,6 @@ std::vector const &par1) const; }; -} +}} #endif /* DNORM_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DNT.cc jags-4.0.0/src/modules/bugs/distributions/DNT.cc --- jags-3.4.0/src/modules/bugs/distributions/DNT.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DNT.cc 2015-04-11 21:05:51.000000000 +0000 @@ -0,0 +1,65 @@ +#include +#include "DNT.h" + +#include + +#include + +using std::vector; + +static inline double MU(vector const &par) { return *par[0]; } +static inline double TAU(vector const &par) { return *par[1]; } +static inline double DF(vector const &par) { return *par[2]; } + +static inline double SIGMA(vector const &par) { + //Standard deviation of numerator + return 1/sqrt(TAU(par)); +} +static inline double DELTA(vector const &par) { + //Non-centrality parameter of scaled x + return MU(par)/SIGMA(par); +} + +namespace jags { + namespace bugs { + + DNT::DNT() + : RScalarDist("dnt", 3, DIST_UNBOUNDED) + {} + + bool DNT::checkParameterValue (vector const &par) const + { + return (TAU(par) > 0 && DF(par) > 0 && fabs(DELTA(par)) <= 37.62); + } + + double DNT::d(double x, PDFType type, + vector const &par, bool give_log) const + { + x /= SIGMA(par); + if (give_log) { + return dnt(x, DF(par), DELTA(par), 1) - log(SIGMA(par)); + } + else { + return dnt(x, DF(par), DELTA(par), 0) / SIGMA(par); + } + } + + double DNT::p(double x, vector const &par, bool lower, + bool use_log) const + { + return pnt(x/SIGMA(par), DF(par), DELTA(par), lower, use_log); + } + + double DNT::q(double p, vector const &par, bool lower, + bool log_p) const + { + return qnt(p, DF(par), DELTA(par), lower, log_p) * SIGMA(par); + } + + double DNT::r(vector const &par, RNG *rng) const + { + double k = DF(par); + return rnorm(MU(par), SIGMA(par), rng)/sqrt(rchisq(k, rng)/k); + } + } +} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DNT.h jags-4.0.0/src/modules/bugs/distributions/DNT.h --- jags-3.4.0/src/modules/bugs/distributions/DNT.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DNT.h 2015-04-11 20:56:53.000000000 +0000 @@ -0,0 +1,55 @@ +#ifndef DNT_H_ +#define DNT_H_ + +#include + +namespace jags { + namespace bugs { + + /** + * Non-central t-distribution on k degrees of freedom, with + * location/non-centrality parameter parameter mu, and + * precision parameter tau. + * + * The non-central t has no simple closed-form expression for + * its density but it can be defined constructively in terms + * of underlying normal and chi-squared distributions. + * + *
+         * X ~ dnt(mu, tau, k)
+	 * X = U/sqrt(V/k))
+	 * U ~ N(mu, tau)
+	 * V ~ Chi2(k)
+	 * 
+ * + * The non-central t-distribution is normally only defined for + * tau=1, in which case mu is the non-centrality + * parameter. The 3-parameter form here is a scaled version of + * a standard non-central t with non-centrality parameter + * delta = mu * sqrt(tau). + * + * @short non-central t distribution + */ + class DNT : public RScalarDist { + public: + DNT(); + double d(double x, PDFType type, + std::vector const ¶meters, + bool log) const; + double p(double x, std::vector const ¶meters, + bool lower, bool log) const; + double q(double x, std::vector const ¶meters, + bool lower, bool log) const; + double r(std::vector const ¶meters, + RNG *rng) const; + /** + * Check that tau > 0 and k > 0 also that the non-centrality + * parameter delta = mu * sqrt(tau) is no larger than 37.62 + */ + bool checkParameterValue(std::vector const & + parameters) const; + }; + } +} + +#endif /* DNT_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DPar.cc jags-4.0.0/src/modules/bugs/distributions/DPar.cc --- jags-3.4.0/src/modules/bugs/distributions/DPar.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DPar.cc 2015-02-22 08:33:05.000000000 +0000 @@ -13,6 +13,7 @@ #define ALPHA(par) (*par[0]) #define C(par) (*par[1]) +namespace jags { namespace bugs { DPar::DPar() @@ -68,7 +69,7 @@ double logp; - if (lower) { + if (!lower) { if (log_p) logp = p; else @@ -104,4 +105,4 @@ return fixmask[1]; //Fixed if C is fixed } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DPar.h jags-4.0.0/src/modules/bugs/distributions/DPar.h --- jags-3.4.0/src/modules/bugs/distributions/DPar.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DPar.h 2015-02-22 08:33:05.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef DPAR_H_ #define DPAR_H_ -#include "RScalarDist.h" +#include +namespace jags { namespace bugs { /** @@ -32,6 +33,6 @@ bool isSupportFixed(std::vector const &fixmask) const; }; -} +}} #endif /* DPAR_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DPois.cc jags-4.0.0/src/modules/bugs/distributions/DPois.cc --- jags-3.4.0/src/modules/bugs/distributions/DPois.cc 2012-08-21 13:17:14.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DPois.cc 2015-06-13 08:42:51.000000000 +0000 @@ -13,6 +13,7 @@ #define LAMBDA(par) (*par[0]) #define R_D_nonint(x) (fabs((x) - floor((x)+0.5)) > 1e-7) +namespace jags { namespace bugs { DPois::DPois() @@ -66,13 +67,13 @@ return rpois(LAMBDA(par), rng); } -double DPois::KL(vector const &par1, - vector const &par2) const -{ - double lambda1 = LAMBDA(par1); - double lambda2 = LAMBDA(par2); - - return lambda1 * (log(lambda1) - log(lambda2)) - lambda1 + lambda2; -} + double DPois::KL(vector const &par0, + vector const &par1) const + { + double lambda0 = LAMBDA(par0); + double lambda1 = LAMBDA(par1); + + return lambda0 * (log(lambda0) - log(lambda1)) - lambda0 + lambda1; + } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DPois.h jags-4.0.0/src/modules/bugs/distributions/DPois.h --- jags-3.4.0/src/modules/bugs/distributions/DPois.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DPois.h 2015-06-13 08:43:15.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef DPOIS_H_ #define DPOIS_H_ -#include "RScalarDist.h" +#include +namespace jags { namespace bugs { /** @@ -28,10 +29,10 @@ * Checks that lambda > 0 */ bool checkParameterValue(std::vector const ¶meters) const; - double KL(std::vector const &par1, - std::vector const &par2) const; + double KL(std::vector const &par0, + std::vector const &par1) const; }; -} +}} #endif /* DPOIS_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DRound.cc jags-4.0.0/src/modules/bugs/distributions/DRound.cc --- jags-3.4.0/src/modules/bugs/distributions/DRound.cc 2013-02-04 15:10:46.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DRound.cc 2015-06-13 12:43:04.000000000 +0000 @@ -22,6 +22,7 @@ static double tol = sqrt(DBL_EPSILON); +namespace jags { namespace bugs { DRound::DRound() @@ -86,10 +87,10 @@ return fixmask[0] && fixmask[1]; } - double DRound::KL(vector const &par1, - vector const &par2) const + double DRound::KL(vector const &par0, + vector const &par1) const { - if (value(par1) == value(par2)) { + if (value(par0) == value(par1)) { return 0; } else { @@ -97,4 +98,4 @@ } } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DRound.h jags-4.0.0/src/modules/bugs/distributions/DRound.h --- jags-3.4.0/src/modules/bugs/distributions/DRound.h 2011-12-21 10:21:20.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DRound.h 2015-06-13 12:43:20.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -31,10 +32,10 @@ double u(std::vector const ¶meters) const; bool isSupportFixed(std::vector const &fixmask) const; unsigned int df() const; - double KL(std::vector const &par1, - std::vector const &par2) const; + double KL(std::vector const &par0, + std::vector const &par1) const; }; -} +}} #endif /* DROUND_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DSum.cc jags-4.0.0/src/modules/bugs/distributions/DSum.cc --- jags-3.4.0/src/modules/bugs/distributions/DSum.cc 2013-05-30 12:47:02.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DSum.cc 2015-02-22 08:33:05.000000000 +0000 @@ -1,7 +1,9 @@ #include #include #include +#include #include + #include "DSum.h" #include @@ -11,6 +13,7 @@ using std::fabs; using std::sqrt; +namespace jags { namespace bugs { DSum::DSum() @@ -86,6 +89,8 @@ bool DSum::checkParameterDim (vector > const &dims) const { + if (dims.empty()) return false; + if (isFlat(dims[0])) return false; for (unsigned int i = 1; i < dims.size(); ++i) { if (dims[i] != dims[0]) return false; @@ -120,4 +125,4 @@ return dims[0]; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DSum.h jags-4.0.0/src/modules/bugs/distributions/DSum.h --- jags-3.4.0/src/modules/bugs/distributions/DSum.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DSum.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -40,6 +41,6 @@ dim(std::vector > const &dims) const; }; -} +}} #endif /* DSUM_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DT.cc jags-4.0.0/src/modules/bugs/distributions/DT.cc --- jags-3.4.0/src/modules/bugs/distributions/DT.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DT.cc 2015-02-22 08:33:05.000000000 +0000 @@ -11,6 +11,7 @@ #define TAU(par) (*par[1]) #define DF(par) (*par[2]) +namespace jags { namespace bugs { DT::DT() @@ -55,4 +56,4 @@ return rt(DF(par), rng) / sqrt(TAU(par)) + MU(par); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DT.h jags-4.0.0/src/modules/bugs/distributions/DT.h --- jags-3.4.0/src/modules/bugs/distributions/DT.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DT.h 2015-02-27 21:01:57.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef DT_H_ #define DT_H_ -#include "RScalarDist.h" +#include +namespace jags { namespace bugs { /** @@ -33,6 +34,6 @@ }; -} +}} #endif /* DT_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DUnif.cc jags-4.0.0/src/modules/bugs/distributions/DUnif.cc --- jags-3.4.0/src/modules/bugs/distributions/DUnif.cc 2012-03-01 17:14:28.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DUnif.cc 2015-06-13 22:23:36.000000000 +0000 @@ -11,6 +11,7 @@ #define LOWER(par) (*par[0]) #define UPPER(par) (*par[1]) +namespace jags { namespace bugs { DUnif::DUnif() @@ -63,15 +64,15 @@ return fixmask[0] && fixmask[1]; //Lower and upper bounds fixed } -double DUnif::KL(vector const &par1, - vector const &par2) const +double DUnif::KL(vector const &par0, + vector const &par1) const { - if (LOWER(par2) < LOWER(par1)) + if (LOWER(par0) < LOWER(par1)) return JAGS_POSINF; - if (UPPER(par2) > UPPER(par1)) + if (UPPER(par0) > UPPER(par1)) return JAGS_POSINF; - return log(UPPER(par2) - LOWER(par2)) - log(UPPER(par1) - LOWER(par1)); + return log(UPPER(par1) - LOWER(par1)) - log(UPPER(par0) - LOWER(par0)); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DUnif.h jags-4.0.0/src/modules/bugs/distributions/DUnif.h --- jags-3.4.0/src/modules/bugs/distributions/DUnif.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DUnif.h 2015-06-13 12:43:36.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -31,10 +32,10 @@ bool checkParameterValue(std::vector const ¶meters) const; bool isSupportFixed(std::vector const &fixmask) const; - double KL(std::vector const &par1, - std::vector const &par2) const; + double KL(std::vector const &par0, + std::vector const &par1) const; }; -} +}} #endif /* DUNIF_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DWeib.cc jags-4.0.0/src/modules/bugs/distributions/DWeib.cc --- jags-3.4.0/src/modules/bugs/distributions/DWeib.cc 2012-02-20 08:37:54.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DWeib.cc 2015-02-22 08:33:05.000000000 +0000 @@ -18,6 +18,7 @@ #define V(par) (*par[0]) #define LAMBDA(par) (*par[1]) +namespace jags { namespace bugs { DWeib::DWeib() @@ -60,4 +61,4 @@ return rweibull(SHAPE(par), SCALE(par), rng); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DWeib.h jags-4.0.0/src/modules/bugs/distributions/DWeib.h --- jags-3.4.0/src/modules/bugs/distributions/DWeib.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DWeib.h 2015-02-22 08:33:05.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef DWEIB_H_ #define DWEIB_H_ -#include "RScalarDist.h" +#include +namespace jags { namespace bugs { /** @@ -30,6 +31,6 @@ bool checkParameterValue(std::vector const ¶meters) const; }; -} +}} #endif /* DWEIB_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/DWish.cc jags-4.0.0/src/modules/bugs/distributions/DWish.cc --- jags-3.4.0/src/modules/bugs/distributions/DWish.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DWish.cc 2015-04-11 17:30:10.000000000 +0000 @@ -31,6 +31,7 @@ return y; } +namespace jags { namespace bugs { DWish::DWish() @@ -168,9 +169,11 @@ { // Check that we have sufficient degrees of freedom if (DF(par) < NROW(dims)) return false; - // Check symmetry of scale matrix - // NB Skipping check of positive definiteness - return check_symmetry(SCALE(par), NROW(dims)); + // Check scale matrix + + double const *scale = SCALE(par); + unsigned int n = NROW(dims); + return check_symmetry(scale, n) && check_symmetric_ispd(scale, n); } @@ -216,4 +219,4 @@ return dims[0][0] * (dims[0][0] + 1) / 2; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/DWish.h jags-4.0.0/src/modules/bugs/distributions/DWish.h --- jags-3.4.0/src/modules/bugs/distributions/DWish.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/DWish.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -52,6 +53,6 @@ unsigned int df(std::vector > const &dims) const; }; -} +}} #endif /* DWISH_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/Makefile.am jags-4.0.0/src/modules/bugs/distributions/Makefile.am --- jags-3.4.0/src/modules/bugs/distributions/Makefile.am 2011-11-14 08:22:13.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/Makefile.am 2015-09-27 10:19:30.000000000 +0000 @@ -1,19 +1,24 @@ -noinst_LTLIBRARIES = bugsdist.la +noinst_LTLIBRARIES = libbugsdist.la -bugsdist_la_CPPFLAGS = -I$(top_srcdir)/src/include \ +libbugsdist_la_CPPFLAGS = -I$(top_srcdir)/src/include \ -I$(top_srcdir)/src/modules/bugs/matrix -bugsdist_la_LDFLAGS = -no-undefined -module -avoid-version - -bugsdist_la_SOURCES = DBern.cc DCat.cc DDirch.cc DHyper.cc DLogis.cc \ +libbugsdist_la_SOURCES = DBern.cc DCat.cc DDirch.cc DHyper.cc DLogis.cc \ DMulti.cc DSum.cc DWeib.cc DBeta.cc DChisqr.cc DExp.cc DInterval.cc \ DMNorm.cc DNegBin.cc DPar.cc DT.cc DWish.cc DBin.cc DDexp.cc DGamma.cc \ DLnorm.cc DNorm.cc DPois.cc DUnif.cc DMT.cc DGenGamma.cc \ -RScalarDist.cc DF.cc DBetaBin.cc DNChisqr.cc DRound.cc +DF.cc DNChisqr.cc DRound.cc DNT.cc SumDist.cc noinst_HEADERS = DBern.h DCat.h DDirch.h DHyper.h DLogis.h DMulti.h \ -DSum.h DWeib.h DBeta.h DChisqr.h DExp.h DInterval.h DMNorm.h DNegBin.h \ -DPar.h DT.h DWish.h DBin.h DDexp.h DGamma.h DLnorm.h DNorm.h DPois.h \ -DUnif.h DMT.h DGenGamma.h RScalarDist.h DF.h DBetaBin.h DNChisqr.h \ -DRound.h +DSum.h DWeib.h DBeta.h DChisqr.h DExp.h DInterval.h DMNorm.h \ +DNegBin.h DPar.h DT.h DWish.h DBin.h DDexp.h DGamma.h DLnorm.h \ +DNorm.h DPois.h DUnif.h DMT.h DGenGamma.h DF.h DNChisqr.h DRound.h \ +DNT.h SumDist.h + +### Test library +check_LTLIBRARIES = libbugsdisttest.la +libbugsdisttest_la_SOURCES = testbugsdist.cc testbugsdist.h +libbugsdisttest_la_CPPFLAGS = -I$(top_srcdir)/src/include \ + -I$(top_srcdir)/src/modules/base/rngs +libbugsdisttest_la_CXXFLAGS = $(CPPUNIT_CFLAGS) diff -Nru jags-3.4.0/src/modules/bugs/distributions/Makefile.in jags-4.0.0/src/modules/bugs/distributions/Makefile.in --- jags-3.4.0/src/modules/bugs/distributions/Makefile.in 2013-08-30 13:23:28.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/bugs/distributions -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,56 +99,126 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) -bugsdist_la_LIBADD = -am_bugsdist_la_OBJECTS = bugsdist_la-DBern.lo bugsdist_la-DCat.lo \ - bugsdist_la-DDirch.lo bugsdist_la-DHyper.lo \ - bugsdist_la-DLogis.lo bugsdist_la-DMulti.lo \ - bugsdist_la-DSum.lo bugsdist_la-DWeib.lo bugsdist_la-DBeta.lo \ - bugsdist_la-DChisqr.lo bugsdist_la-DExp.lo \ - bugsdist_la-DInterval.lo bugsdist_la-DMNorm.lo \ - bugsdist_la-DNegBin.lo bugsdist_la-DPar.lo bugsdist_la-DT.lo \ - bugsdist_la-DWish.lo bugsdist_la-DBin.lo bugsdist_la-DDexp.lo \ - bugsdist_la-DGamma.lo bugsdist_la-DLnorm.lo \ - bugsdist_la-DNorm.lo bugsdist_la-DPois.lo bugsdist_la-DUnif.lo \ - bugsdist_la-DMT.lo bugsdist_la-DGenGamma.lo \ - bugsdist_la-RScalarDist.lo bugsdist_la-DF.lo \ - bugsdist_la-DBetaBin.lo bugsdist_la-DNChisqr.lo \ - bugsdist_la-DRound.lo -bugsdist_la_OBJECTS = $(am_bugsdist_la_OBJECTS) -bugsdist_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ - $(CXXFLAGS) $(bugsdist_la_LDFLAGS) $(LDFLAGS) -o $@ +libbugsdist_la_LIBADD = +am_libbugsdist_la_OBJECTS = libbugsdist_la-DBern.lo \ + libbugsdist_la-DCat.lo libbugsdist_la-DDirch.lo \ + libbugsdist_la-DHyper.lo libbugsdist_la-DLogis.lo \ + libbugsdist_la-DMulti.lo libbugsdist_la-DSum.lo \ + libbugsdist_la-DWeib.lo libbugsdist_la-DBeta.lo \ + libbugsdist_la-DChisqr.lo libbugsdist_la-DExp.lo \ + libbugsdist_la-DInterval.lo libbugsdist_la-DMNorm.lo \ + libbugsdist_la-DNegBin.lo libbugsdist_la-DPar.lo \ + libbugsdist_la-DT.lo libbugsdist_la-DWish.lo \ + libbugsdist_la-DBin.lo libbugsdist_la-DDexp.lo \ + libbugsdist_la-DGamma.lo libbugsdist_la-DLnorm.lo \ + libbugsdist_la-DNorm.lo libbugsdist_la-DPois.lo \ + libbugsdist_la-DUnif.lo libbugsdist_la-DMT.lo \ + libbugsdist_la-DGenGamma.lo libbugsdist_la-DF.lo \ + libbugsdist_la-DNChisqr.lo libbugsdist_la-DRound.lo \ + libbugsdist_la-DNT.lo libbugsdist_la-SumDist.lo +libbugsdist_la_OBJECTS = $(am_libbugsdist_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libbugsdisttest_la_LIBADD = +am_libbugsdisttest_la_OBJECTS = libbugsdisttest_la-testbugsdist.lo +libbugsdisttest_la_OBJECTS = $(am_libbugsdisttest_la_OBJECTS) +libbugsdisttest_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ + $(libbugsdisttest_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(bugsdist_la_SOURCES) -DIST_SOURCES = $(bugsdist_la_SOURCES) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libbugsdist_la_SOURCES) $(libbugsdisttest_la_SOURCES) +DIST_SOURCES = $(libbugsdist_la_SOURCES) $(libbugsdisttest_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -127,6 +232,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -196,10 +304,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -265,23 +369,30 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -noinst_LTLIBRARIES = bugsdist.la -bugsdist_la_CPPFLAGS = -I$(top_srcdir)/src/include \ +noinst_LTLIBRARIES = libbugsdist.la +libbugsdist_la_CPPFLAGS = -I$(top_srcdir)/src/include \ -I$(top_srcdir)/src/modules/bugs/matrix -bugsdist_la_LDFLAGS = -no-undefined -module -avoid-version -bugsdist_la_SOURCES = DBern.cc DCat.cc DDirch.cc DHyper.cc DLogis.cc \ +libbugsdist_la_SOURCES = DBern.cc DCat.cc DDirch.cc DHyper.cc DLogis.cc \ DMulti.cc DSum.cc DWeib.cc DBeta.cc DChisqr.cc DExp.cc DInterval.cc \ DMNorm.cc DNegBin.cc DPar.cc DT.cc DWish.cc DBin.cc DDexp.cc DGamma.cc \ DLnorm.cc DNorm.cc DPois.cc DUnif.cc DMT.cc DGenGamma.cc \ -RScalarDist.cc DF.cc DBetaBin.cc DNChisqr.cc DRound.cc +DF.cc DNChisqr.cc DRound.cc DNT.cc SumDist.cc noinst_HEADERS = DBern.h DCat.h DDirch.h DHyper.h DLogis.h DMulti.h \ -DSum.h DWeib.h DBeta.h DChisqr.h DExp.h DInterval.h DMNorm.h DNegBin.h \ -DPar.h DT.h DWish.h DBin.h DDexp.h DGamma.h DLnorm.h DNorm.h DPois.h \ -DUnif.h DMT.h DGenGamma.h RScalarDist.h DF.h DBetaBin.h DNChisqr.h \ -DRound.h +DSum.h DWeib.h DBeta.h DChisqr.h DExp.h DInterval.h DMNorm.h \ +DNegBin.h DPar.h DT.h DWish.h DBin.h DDexp.h DGamma.h DLnorm.h \ +DNorm.h DPois.h DUnif.h DMT.h DGenGamma.h DF.h DNChisqr.h DRound.h \ +DNT.h SumDist.h + +### Test library +check_LTLIBRARIES = libbugsdisttest.la +libbugsdisttest_la_SOURCES = testbugsdist.cc testbugsdist.h +libbugsdisttest_la_CPPFLAGS = -I$(top_srcdir)/src/include \ + -I$(top_srcdir)/src/modules/base/rngs + +libbugsdisttest_la_CXXFLAGS = $(CPPUNIT_CFLAGS) all: all-am .SUFFIXES: @@ -298,7 +409,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/bugs/distributions/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/bugs/distributions/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -317,16 +427,33 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): +clean-checkLTLIBRARIES: + -test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES) + @list='$(check_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -bugsdist.la: $(bugsdist_la_OBJECTS) $(bugsdist_la_DEPENDENCIES) $(EXTRA_bugsdist_la_DEPENDENCIES) - $(bugsdist_la_LINK) $(bugsdist_la_OBJECTS) $(bugsdist_la_LIBADD) $(LIBS) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libbugsdist.la: $(libbugsdist_la_OBJECTS) $(libbugsdist_la_DEPENDENCIES) $(EXTRA_libbugsdist_la_DEPENDENCIES) + $(AM_V_CXXLD)$(CXXLINK) $(libbugsdist_la_OBJECTS) $(libbugsdist_la_LIBADD) $(LIBS) + +libbugsdisttest.la: $(libbugsdisttest_la_OBJECTS) $(libbugsdisttest_la_DEPENDENCIES) $(EXTRA_libbugsdisttest_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libbugsdisttest_la_LINK) $(libbugsdisttest_la_OBJECTS) $(libbugsdisttest_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -334,275 +461,286 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DBern.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DBeta.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DBetaBin.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DBin.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DCat.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DChisqr.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DDexp.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DDirch.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DExp.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DF.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DGamma.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DGenGamma.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DHyper.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DInterval.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DLnorm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DLogis.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DMNorm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DMT.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DMulti.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DNChisqr.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DNegBin.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DNorm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DPar.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DPois.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DRound.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DSum.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DT.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DUnif.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DWeib.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-DWish.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsdist_la-RScalarDist.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DBern.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DBeta.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DBin.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DCat.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DChisqr.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DDexp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DDirch.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DExp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DF.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DGamma.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DGenGamma.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DHyper.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DInterval.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DLnorm.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DLogis.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DMNorm.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DMT.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DMulti.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DNChisqr.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DNT.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DNegBin.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DNorm.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DPar.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DPois.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DRound.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DSum.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DT.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DUnif.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DWeib.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-DWish.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdist_la-SumDist.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsdisttest_la-testbugsdist.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< -bugsdist_la-DBern.lo: DBern.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DBern.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DBern.Tpo -c -o bugsdist_la-DBern.lo `test -f 'DBern.cc' || echo '$(srcdir)/'`DBern.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DBern.Tpo $(DEPDIR)/bugsdist_la-DBern.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DBern.cc' object='bugsdist_la-DBern.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DBern.lo: DBern.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DBern.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DBern.Tpo -c -o libbugsdist_la-DBern.lo `test -f 'DBern.cc' || echo '$(srcdir)/'`DBern.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DBern.Tpo $(DEPDIR)/libbugsdist_la-DBern.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DBern.cc' object='libbugsdist_la-DBern.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DBern.lo `test -f 'DBern.cc' || echo '$(srcdir)/'`DBern.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DBern.lo `test -f 'DBern.cc' || echo '$(srcdir)/'`DBern.cc -bugsdist_la-DCat.lo: DCat.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DCat.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DCat.Tpo -c -o bugsdist_la-DCat.lo `test -f 'DCat.cc' || echo '$(srcdir)/'`DCat.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DCat.Tpo $(DEPDIR)/bugsdist_la-DCat.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DCat.cc' object='bugsdist_la-DCat.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DCat.lo: DCat.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DCat.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DCat.Tpo -c -o libbugsdist_la-DCat.lo `test -f 'DCat.cc' || echo '$(srcdir)/'`DCat.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DCat.Tpo $(DEPDIR)/libbugsdist_la-DCat.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DCat.cc' object='libbugsdist_la-DCat.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DCat.lo `test -f 'DCat.cc' || echo '$(srcdir)/'`DCat.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DCat.lo `test -f 'DCat.cc' || echo '$(srcdir)/'`DCat.cc -bugsdist_la-DDirch.lo: DDirch.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DDirch.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DDirch.Tpo -c -o bugsdist_la-DDirch.lo `test -f 'DDirch.cc' || echo '$(srcdir)/'`DDirch.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DDirch.Tpo $(DEPDIR)/bugsdist_la-DDirch.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DDirch.cc' object='bugsdist_la-DDirch.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DDirch.lo: DDirch.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DDirch.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DDirch.Tpo -c -o libbugsdist_la-DDirch.lo `test -f 'DDirch.cc' || echo '$(srcdir)/'`DDirch.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DDirch.Tpo $(DEPDIR)/libbugsdist_la-DDirch.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DDirch.cc' object='libbugsdist_la-DDirch.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DDirch.lo `test -f 'DDirch.cc' || echo '$(srcdir)/'`DDirch.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DDirch.lo `test -f 'DDirch.cc' || echo '$(srcdir)/'`DDirch.cc -bugsdist_la-DHyper.lo: DHyper.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DHyper.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DHyper.Tpo -c -o bugsdist_la-DHyper.lo `test -f 'DHyper.cc' || echo '$(srcdir)/'`DHyper.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DHyper.Tpo $(DEPDIR)/bugsdist_la-DHyper.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DHyper.cc' object='bugsdist_la-DHyper.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DHyper.lo: DHyper.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DHyper.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DHyper.Tpo -c -o libbugsdist_la-DHyper.lo `test -f 'DHyper.cc' || echo '$(srcdir)/'`DHyper.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DHyper.Tpo $(DEPDIR)/libbugsdist_la-DHyper.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DHyper.cc' object='libbugsdist_la-DHyper.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DHyper.lo `test -f 'DHyper.cc' || echo '$(srcdir)/'`DHyper.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DHyper.lo `test -f 'DHyper.cc' || echo '$(srcdir)/'`DHyper.cc -bugsdist_la-DLogis.lo: DLogis.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DLogis.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DLogis.Tpo -c -o bugsdist_la-DLogis.lo `test -f 'DLogis.cc' || echo '$(srcdir)/'`DLogis.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DLogis.Tpo $(DEPDIR)/bugsdist_la-DLogis.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DLogis.cc' object='bugsdist_la-DLogis.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DLogis.lo: DLogis.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DLogis.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DLogis.Tpo -c -o libbugsdist_la-DLogis.lo `test -f 'DLogis.cc' || echo '$(srcdir)/'`DLogis.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DLogis.Tpo $(DEPDIR)/libbugsdist_la-DLogis.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DLogis.cc' object='libbugsdist_la-DLogis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DLogis.lo `test -f 'DLogis.cc' || echo '$(srcdir)/'`DLogis.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DLogis.lo `test -f 'DLogis.cc' || echo '$(srcdir)/'`DLogis.cc -bugsdist_la-DMulti.lo: DMulti.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DMulti.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DMulti.Tpo -c -o bugsdist_la-DMulti.lo `test -f 'DMulti.cc' || echo '$(srcdir)/'`DMulti.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DMulti.Tpo $(DEPDIR)/bugsdist_la-DMulti.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DMulti.cc' object='bugsdist_la-DMulti.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DMulti.lo: DMulti.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DMulti.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DMulti.Tpo -c -o libbugsdist_la-DMulti.lo `test -f 'DMulti.cc' || echo '$(srcdir)/'`DMulti.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DMulti.Tpo $(DEPDIR)/libbugsdist_la-DMulti.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DMulti.cc' object='libbugsdist_la-DMulti.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DMulti.lo `test -f 'DMulti.cc' || echo '$(srcdir)/'`DMulti.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DMulti.lo `test -f 'DMulti.cc' || echo '$(srcdir)/'`DMulti.cc -bugsdist_la-DSum.lo: DSum.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DSum.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DSum.Tpo -c -o bugsdist_la-DSum.lo `test -f 'DSum.cc' || echo '$(srcdir)/'`DSum.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DSum.Tpo $(DEPDIR)/bugsdist_la-DSum.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DSum.cc' object='bugsdist_la-DSum.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DSum.lo: DSum.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DSum.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DSum.Tpo -c -o libbugsdist_la-DSum.lo `test -f 'DSum.cc' || echo '$(srcdir)/'`DSum.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DSum.Tpo $(DEPDIR)/libbugsdist_la-DSum.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DSum.cc' object='libbugsdist_la-DSum.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DSum.lo `test -f 'DSum.cc' || echo '$(srcdir)/'`DSum.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DSum.lo `test -f 'DSum.cc' || echo '$(srcdir)/'`DSum.cc -bugsdist_la-DWeib.lo: DWeib.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DWeib.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DWeib.Tpo -c -o bugsdist_la-DWeib.lo `test -f 'DWeib.cc' || echo '$(srcdir)/'`DWeib.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DWeib.Tpo $(DEPDIR)/bugsdist_la-DWeib.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DWeib.cc' object='bugsdist_la-DWeib.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DWeib.lo: DWeib.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DWeib.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DWeib.Tpo -c -o libbugsdist_la-DWeib.lo `test -f 'DWeib.cc' || echo '$(srcdir)/'`DWeib.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DWeib.Tpo $(DEPDIR)/libbugsdist_la-DWeib.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DWeib.cc' object='libbugsdist_la-DWeib.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DWeib.lo `test -f 'DWeib.cc' || echo '$(srcdir)/'`DWeib.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DWeib.lo `test -f 'DWeib.cc' || echo '$(srcdir)/'`DWeib.cc -bugsdist_la-DBeta.lo: DBeta.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DBeta.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DBeta.Tpo -c -o bugsdist_la-DBeta.lo `test -f 'DBeta.cc' || echo '$(srcdir)/'`DBeta.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DBeta.Tpo $(DEPDIR)/bugsdist_la-DBeta.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DBeta.cc' object='bugsdist_la-DBeta.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DBeta.lo: DBeta.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DBeta.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DBeta.Tpo -c -o libbugsdist_la-DBeta.lo `test -f 'DBeta.cc' || echo '$(srcdir)/'`DBeta.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DBeta.Tpo $(DEPDIR)/libbugsdist_la-DBeta.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DBeta.cc' object='libbugsdist_la-DBeta.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DBeta.lo `test -f 'DBeta.cc' || echo '$(srcdir)/'`DBeta.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DBeta.lo `test -f 'DBeta.cc' || echo '$(srcdir)/'`DBeta.cc -bugsdist_la-DChisqr.lo: DChisqr.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DChisqr.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DChisqr.Tpo -c -o bugsdist_la-DChisqr.lo `test -f 'DChisqr.cc' || echo '$(srcdir)/'`DChisqr.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DChisqr.Tpo $(DEPDIR)/bugsdist_la-DChisqr.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DChisqr.cc' object='bugsdist_la-DChisqr.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DChisqr.lo: DChisqr.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DChisqr.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DChisqr.Tpo -c -o libbugsdist_la-DChisqr.lo `test -f 'DChisqr.cc' || echo '$(srcdir)/'`DChisqr.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DChisqr.Tpo $(DEPDIR)/libbugsdist_la-DChisqr.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DChisqr.cc' object='libbugsdist_la-DChisqr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DChisqr.lo `test -f 'DChisqr.cc' || echo '$(srcdir)/'`DChisqr.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DChisqr.lo `test -f 'DChisqr.cc' || echo '$(srcdir)/'`DChisqr.cc -bugsdist_la-DExp.lo: DExp.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DExp.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DExp.Tpo -c -o bugsdist_la-DExp.lo `test -f 'DExp.cc' || echo '$(srcdir)/'`DExp.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DExp.Tpo $(DEPDIR)/bugsdist_la-DExp.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DExp.cc' object='bugsdist_la-DExp.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DExp.lo: DExp.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DExp.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DExp.Tpo -c -o libbugsdist_la-DExp.lo `test -f 'DExp.cc' || echo '$(srcdir)/'`DExp.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DExp.Tpo $(DEPDIR)/libbugsdist_la-DExp.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DExp.cc' object='libbugsdist_la-DExp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DExp.lo `test -f 'DExp.cc' || echo '$(srcdir)/'`DExp.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DExp.lo `test -f 'DExp.cc' || echo '$(srcdir)/'`DExp.cc -bugsdist_la-DInterval.lo: DInterval.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DInterval.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DInterval.Tpo -c -o bugsdist_la-DInterval.lo `test -f 'DInterval.cc' || echo '$(srcdir)/'`DInterval.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DInterval.Tpo $(DEPDIR)/bugsdist_la-DInterval.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DInterval.cc' object='bugsdist_la-DInterval.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DInterval.lo: DInterval.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DInterval.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DInterval.Tpo -c -o libbugsdist_la-DInterval.lo `test -f 'DInterval.cc' || echo '$(srcdir)/'`DInterval.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DInterval.Tpo $(DEPDIR)/libbugsdist_la-DInterval.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DInterval.cc' object='libbugsdist_la-DInterval.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DInterval.lo `test -f 'DInterval.cc' || echo '$(srcdir)/'`DInterval.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DInterval.lo `test -f 'DInterval.cc' || echo '$(srcdir)/'`DInterval.cc -bugsdist_la-DMNorm.lo: DMNorm.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DMNorm.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DMNorm.Tpo -c -o bugsdist_la-DMNorm.lo `test -f 'DMNorm.cc' || echo '$(srcdir)/'`DMNorm.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DMNorm.Tpo $(DEPDIR)/bugsdist_la-DMNorm.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DMNorm.cc' object='bugsdist_la-DMNorm.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DMNorm.lo: DMNorm.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DMNorm.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DMNorm.Tpo -c -o libbugsdist_la-DMNorm.lo `test -f 'DMNorm.cc' || echo '$(srcdir)/'`DMNorm.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DMNorm.Tpo $(DEPDIR)/libbugsdist_la-DMNorm.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DMNorm.cc' object='libbugsdist_la-DMNorm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DMNorm.lo `test -f 'DMNorm.cc' || echo '$(srcdir)/'`DMNorm.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DMNorm.lo `test -f 'DMNorm.cc' || echo '$(srcdir)/'`DMNorm.cc -bugsdist_la-DNegBin.lo: DNegBin.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DNegBin.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DNegBin.Tpo -c -o bugsdist_la-DNegBin.lo `test -f 'DNegBin.cc' || echo '$(srcdir)/'`DNegBin.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DNegBin.Tpo $(DEPDIR)/bugsdist_la-DNegBin.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DNegBin.cc' object='bugsdist_la-DNegBin.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DNegBin.lo: DNegBin.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DNegBin.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DNegBin.Tpo -c -o libbugsdist_la-DNegBin.lo `test -f 'DNegBin.cc' || echo '$(srcdir)/'`DNegBin.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DNegBin.Tpo $(DEPDIR)/libbugsdist_la-DNegBin.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DNegBin.cc' object='libbugsdist_la-DNegBin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DNegBin.lo `test -f 'DNegBin.cc' || echo '$(srcdir)/'`DNegBin.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DNegBin.lo `test -f 'DNegBin.cc' || echo '$(srcdir)/'`DNegBin.cc -bugsdist_la-DPar.lo: DPar.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DPar.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DPar.Tpo -c -o bugsdist_la-DPar.lo `test -f 'DPar.cc' || echo '$(srcdir)/'`DPar.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DPar.Tpo $(DEPDIR)/bugsdist_la-DPar.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DPar.cc' object='bugsdist_la-DPar.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DPar.lo: DPar.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DPar.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DPar.Tpo -c -o libbugsdist_la-DPar.lo `test -f 'DPar.cc' || echo '$(srcdir)/'`DPar.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DPar.Tpo $(DEPDIR)/libbugsdist_la-DPar.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DPar.cc' object='libbugsdist_la-DPar.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DPar.lo `test -f 'DPar.cc' || echo '$(srcdir)/'`DPar.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DPar.lo `test -f 'DPar.cc' || echo '$(srcdir)/'`DPar.cc -bugsdist_la-DT.lo: DT.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DT.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DT.Tpo -c -o bugsdist_la-DT.lo `test -f 'DT.cc' || echo '$(srcdir)/'`DT.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DT.Tpo $(DEPDIR)/bugsdist_la-DT.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DT.cc' object='bugsdist_la-DT.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DT.lo: DT.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DT.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DT.Tpo -c -o libbugsdist_la-DT.lo `test -f 'DT.cc' || echo '$(srcdir)/'`DT.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DT.Tpo $(DEPDIR)/libbugsdist_la-DT.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DT.cc' object='libbugsdist_la-DT.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DT.lo `test -f 'DT.cc' || echo '$(srcdir)/'`DT.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DT.lo `test -f 'DT.cc' || echo '$(srcdir)/'`DT.cc -bugsdist_la-DWish.lo: DWish.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DWish.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DWish.Tpo -c -o bugsdist_la-DWish.lo `test -f 'DWish.cc' || echo '$(srcdir)/'`DWish.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DWish.Tpo $(DEPDIR)/bugsdist_la-DWish.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DWish.cc' object='bugsdist_la-DWish.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DWish.lo: DWish.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DWish.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DWish.Tpo -c -o libbugsdist_la-DWish.lo `test -f 'DWish.cc' || echo '$(srcdir)/'`DWish.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DWish.Tpo $(DEPDIR)/libbugsdist_la-DWish.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DWish.cc' object='libbugsdist_la-DWish.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DWish.lo `test -f 'DWish.cc' || echo '$(srcdir)/'`DWish.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DWish.lo `test -f 'DWish.cc' || echo '$(srcdir)/'`DWish.cc -bugsdist_la-DBin.lo: DBin.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DBin.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DBin.Tpo -c -o bugsdist_la-DBin.lo `test -f 'DBin.cc' || echo '$(srcdir)/'`DBin.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DBin.Tpo $(DEPDIR)/bugsdist_la-DBin.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DBin.cc' object='bugsdist_la-DBin.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DBin.lo: DBin.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DBin.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DBin.Tpo -c -o libbugsdist_la-DBin.lo `test -f 'DBin.cc' || echo '$(srcdir)/'`DBin.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DBin.Tpo $(DEPDIR)/libbugsdist_la-DBin.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DBin.cc' object='libbugsdist_la-DBin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DBin.lo `test -f 'DBin.cc' || echo '$(srcdir)/'`DBin.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DBin.lo `test -f 'DBin.cc' || echo '$(srcdir)/'`DBin.cc -bugsdist_la-DDexp.lo: DDexp.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DDexp.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DDexp.Tpo -c -o bugsdist_la-DDexp.lo `test -f 'DDexp.cc' || echo '$(srcdir)/'`DDexp.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DDexp.Tpo $(DEPDIR)/bugsdist_la-DDexp.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DDexp.cc' object='bugsdist_la-DDexp.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DDexp.lo: DDexp.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DDexp.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DDexp.Tpo -c -o libbugsdist_la-DDexp.lo `test -f 'DDexp.cc' || echo '$(srcdir)/'`DDexp.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DDexp.Tpo $(DEPDIR)/libbugsdist_la-DDexp.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DDexp.cc' object='libbugsdist_la-DDexp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DDexp.lo `test -f 'DDexp.cc' || echo '$(srcdir)/'`DDexp.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DDexp.lo `test -f 'DDexp.cc' || echo '$(srcdir)/'`DDexp.cc -bugsdist_la-DGamma.lo: DGamma.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DGamma.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DGamma.Tpo -c -o bugsdist_la-DGamma.lo `test -f 'DGamma.cc' || echo '$(srcdir)/'`DGamma.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DGamma.Tpo $(DEPDIR)/bugsdist_la-DGamma.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DGamma.cc' object='bugsdist_la-DGamma.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DGamma.lo: DGamma.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DGamma.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DGamma.Tpo -c -o libbugsdist_la-DGamma.lo `test -f 'DGamma.cc' || echo '$(srcdir)/'`DGamma.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DGamma.Tpo $(DEPDIR)/libbugsdist_la-DGamma.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DGamma.cc' object='libbugsdist_la-DGamma.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DGamma.lo `test -f 'DGamma.cc' || echo '$(srcdir)/'`DGamma.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DGamma.lo `test -f 'DGamma.cc' || echo '$(srcdir)/'`DGamma.cc -bugsdist_la-DLnorm.lo: DLnorm.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DLnorm.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DLnorm.Tpo -c -o bugsdist_la-DLnorm.lo `test -f 'DLnorm.cc' || echo '$(srcdir)/'`DLnorm.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DLnorm.Tpo $(DEPDIR)/bugsdist_la-DLnorm.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DLnorm.cc' object='bugsdist_la-DLnorm.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DLnorm.lo: DLnorm.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DLnorm.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DLnorm.Tpo -c -o libbugsdist_la-DLnorm.lo `test -f 'DLnorm.cc' || echo '$(srcdir)/'`DLnorm.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DLnorm.Tpo $(DEPDIR)/libbugsdist_la-DLnorm.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DLnorm.cc' object='libbugsdist_la-DLnorm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DLnorm.lo `test -f 'DLnorm.cc' || echo '$(srcdir)/'`DLnorm.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DLnorm.lo `test -f 'DLnorm.cc' || echo '$(srcdir)/'`DLnorm.cc -bugsdist_la-DNorm.lo: DNorm.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DNorm.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DNorm.Tpo -c -o bugsdist_la-DNorm.lo `test -f 'DNorm.cc' || echo '$(srcdir)/'`DNorm.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DNorm.Tpo $(DEPDIR)/bugsdist_la-DNorm.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DNorm.cc' object='bugsdist_la-DNorm.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DNorm.lo: DNorm.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DNorm.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DNorm.Tpo -c -o libbugsdist_la-DNorm.lo `test -f 'DNorm.cc' || echo '$(srcdir)/'`DNorm.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DNorm.Tpo $(DEPDIR)/libbugsdist_la-DNorm.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DNorm.cc' object='libbugsdist_la-DNorm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DNorm.lo `test -f 'DNorm.cc' || echo '$(srcdir)/'`DNorm.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DNorm.lo `test -f 'DNorm.cc' || echo '$(srcdir)/'`DNorm.cc -bugsdist_la-DPois.lo: DPois.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DPois.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DPois.Tpo -c -o bugsdist_la-DPois.lo `test -f 'DPois.cc' || echo '$(srcdir)/'`DPois.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DPois.Tpo $(DEPDIR)/bugsdist_la-DPois.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DPois.cc' object='bugsdist_la-DPois.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DPois.lo: DPois.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DPois.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DPois.Tpo -c -o libbugsdist_la-DPois.lo `test -f 'DPois.cc' || echo '$(srcdir)/'`DPois.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DPois.Tpo $(DEPDIR)/libbugsdist_la-DPois.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DPois.cc' object='libbugsdist_la-DPois.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DPois.lo `test -f 'DPois.cc' || echo '$(srcdir)/'`DPois.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DPois.lo `test -f 'DPois.cc' || echo '$(srcdir)/'`DPois.cc -bugsdist_la-DUnif.lo: DUnif.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DUnif.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DUnif.Tpo -c -o bugsdist_la-DUnif.lo `test -f 'DUnif.cc' || echo '$(srcdir)/'`DUnif.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DUnif.Tpo $(DEPDIR)/bugsdist_la-DUnif.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DUnif.cc' object='bugsdist_la-DUnif.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DUnif.lo: DUnif.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DUnif.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DUnif.Tpo -c -o libbugsdist_la-DUnif.lo `test -f 'DUnif.cc' || echo '$(srcdir)/'`DUnif.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DUnif.Tpo $(DEPDIR)/libbugsdist_la-DUnif.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DUnif.cc' object='libbugsdist_la-DUnif.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DUnif.lo `test -f 'DUnif.cc' || echo '$(srcdir)/'`DUnif.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DUnif.lo `test -f 'DUnif.cc' || echo '$(srcdir)/'`DUnif.cc -bugsdist_la-DMT.lo: DMT.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DMT.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DMT.Tpo -c -o bugsdist_la-DMT.lo `test -f 'DMT.cc' || echo '$(srcdir)/'`DMT.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DMT.Tpo $(DEPDIR)/bugsdist_la-DMT.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DMT.cc' object='bugsdist_la-DMT.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DMT.lo: DMT.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DMT.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DMT.Tpo -c -o libbugsdist_la-DMT.lo `test -f 'DMT.cc' || echo '$(srcdir)/'`DMT.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DMT.Tpo $(DEPDIR)/libbugsdist_la-DMT.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DMT.cc' object='libbugsdist_la-DMT.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DMT.lo `test -f 'DMT.cc' || echo '$(srcdir)/'`DMT.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DMT.lo `test -f 'DMT.cc' || echo '$(srcdir)/'`DMT.cc -bugsdist_la-DGenGamma.lo: DGenGamma.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DGenGamma.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DGenGamma.Tpo -c -o bugsdist_la-DGenGamma.lo `test -f 'DGenGamma.cc' || echo '$(srcdir)/'`DGenGamma.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DGenGamma.Tpo $(DEPDIR)/bugsdist_la-DGenGamma.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DGenGamma.cc' object='bugsdist_la-DGenGamma.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DGenGamma.lo: DGenGamma.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DGenGamma.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DGenGamma.Tpo -c -o libbugsdist_la-DGenGamma.lo `test -f 'DGenGamma.cc' || echo '$(srcdir)/'`DGenGamma.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DGenGamma.Tpo $(DEPDIR)/libbugsdist_la-DGenGamma.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DGenGamma.cc' object='libbugsdist_la-DGenGamma.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DGenGamma.lo `test -f 'DGenGamma.cc' || echo '$(srcdir)/'`DGenGamma.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DGenGamma.lo `test -f 'DGenGamma.cc' || echo '$(srcdir)/'`DGenGamma.cc -bugsdist_la-RScalarDist.lo: RScalarDist.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-RScalarDist.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-RScalarDist.Tpo -c -o bugsdist_la-RScalarDist.lo `test -f 'RScalarDist.cc' || echo '$(srcdir)/'`RScalarDist.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-RScalarDist.Tpo $(DEPDIR)/bugsdist_la-RScalarDist.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RScalarDist.cc' object='bugsdist_la-RScalarDist.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DF.lo: DF.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DF.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DF.Tpo -c -o libbugsdist_la-DF.lo `test -f 'DF.cc' || echo '$(srcdir)/'`DF.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DF.Tpo $(DEPDIR)/libbugsdist_la-DF.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DF.cc' object='libbugsdist_la-DF.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-RScalarDist.lo `test -f 'RScalarDist.cc' || echo '$(srcdir)/'`RScalarDist.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DF.lo `test -f 'DF.cc' || echo '$(srcdir)/'`DF.cc -bugsdist_la-DF.lo: DF.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DF.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DF.Tpo -c -o bugsdist_la-DF.lo `test -f 'DF.cc' || echo '$(srcdir)/'`DF.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DF.Tpo $(DEPDIR)/bugsdist_la-DF.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DF.cc' object='bugsdist_la-DF.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DNChisqr.lo: DNChisqr.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DNChisqr.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DNChisqr.Tpo -c -o libbugsdist_la-DNChisqr.lo `test -f 'DNChisqr.cc' || echo '$(srcdir)/'`DNChisqr.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DNChisqr.Tpo $(DEPDIR)/libbugsdist_la-DNChisqr.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DNChisqr.cc' object='libbugsdist_la-DNChisqr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DF.lo `test -f 'DF.cc' || echo '$(srcdir)/'`DF.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DNChisqr.lo `test -f 'DNChisqr.cc' || echo '$(srcdir)/'`DNChisqr.cc -bugsdist_la-DBetaBin.lo: DBetaBin.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DBetaBin.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DBetaBin.Tpo -c -o bugsdist_la-DBetaBin.lo `test -f 'DBetaBin.cc' || echo '$(srcdir)/'`DBetaBin.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DBetaBin.Tpo $(DEPDIR)/bugsdist_la-DBetaBin.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DBetaBin.cc' object='bugsdist_la-DBetaBin.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DRound.lo: DRound.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DRound.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DRound.Tpo -c -o libbugsdist_la-DRound.lo `test -f 'DRound.cc' || echo '$(srcdir)/'`DRound.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DRound.Tpo $(DEPDIR)/libbugsdist_la-DRound.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DRound.cc' object='libbugsdist_la-DRound.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DBetaBin.lo `test -f 'DBetaBin.cc' || echo '$(srcdir)/'`DBetaBin.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DRound.lo `test -f 'DRound.cc' || echo '$(srcdir)/'`DRound.cc -bugsdist_la-DNChisqr.lo: DNChisqr.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DNChisqr.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DNChisqr.Tpo -c -o bugsdist_la-DNChisqr.lo `test -f 'DNChisqr.cc' || echo '$(srcdir)/'`DNChisqr.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DNChisqr.Tpo $(DEPDIR)/bugsdist_la-DNChisqr.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DNChisqr.cc' object='bugsdist_la-DNChisqr.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-DNT.lo: DNT.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-DNT.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-DNT.Tpo -c -o libbugsdist_la-DNT.lo `test -f 'DNT.cc' || echo '$(srcdir)/'`DNT.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-DNT.Tpo $(DEPDIR)/libbugsdist_la-DNT.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DNT.cc' object='libbugsdist_la-DNT.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DNChisqr.lo `test -f 'DNChisqr.cc' || echo '$(srcdir)/'`DNChisqr.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-DNT.lo `test -f 'DNT.cc' || echo '$(srcdir)/'`DNT.cc -bugsdist_la-DRound.lo: DRound.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsdist_la-DRound.lo -MD -MP -MF $(DEPDIR)/bugsdist_la-DRound.Tpo -c -o bugsdist_la-DRound.lo `test -f 'DRound.cc' || echo '$(srcdir)/'`DRound.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsdist_la-DRound.Tpo $(DEPDIR)/bugsdist_la-DRound.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DRound.cc' object='bugsdist_la-DRound.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsdist_la-SumDist.lo: SumDist.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsdist_la-SumDist.lo -MD -MP -MF $(DEPDIR)/libbugsdist_la-SumDist.Tpo -c -o libbugsdist_la-SumDist.lo `test -f 'SumDist.cc' || echo '$(srcdir)/'`SumDist.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdist_la-SumDist.Tpo $(DEPDIR)/libbugsdist_la-SumDist.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SumDist.cc' object='libbugsdist_la-SumDist.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsdist_la-DRound.lo `test -f 'DRound.cc' || echo '$(srcdir)/'`DRound.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdist_la-SumDist.lo `test -f 'SumDist.cc' || echo '$(srcdir)/'`SumDist.cc + +libbugsdisttest_la-testbugsdist.lo: testbugsdist.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdisttest_la_CPPFLAGS) $(CPPFLAGS) $(libbugsdisttest_la_CXXFLAGS) $(CXXFLAGS) -MT libbugsdisttest_la-testbugsdist.lo -MD -MP -MF $(DEPDIR)/libbugsdisttest_la-testbugsdist.Tpo -c -o libbugsdisttest_la-testbugsdist.lo `test -f 'testbugsdist.cc' || echo '$(srcdir)/'`testbugsdist.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsdisttest_la-testbugsdist.Tpo $(DEPDIR)/libbugsdisttest_la-testbugsdist.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='testbugsdist.cc' object='libbugsdisttest_la-testbugsdist.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsdisttest_la_CPPFLAGS) $(CPPFLAGS) $(libbugsdisttest_la_CXXFLAGS) $(CXXFLAGS) -c -o libbugsdisttest_la-testbugsdist.lo `test -f 'testbugsdist.cc' || echo '$(srcdir)/'`testbugsdist.cc mostlyclean-libtool: -rm -f *.lo @@ -610,26 +748,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -641,15 +768,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -658,6 +781,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -693,6 +831,7 @@ fi; \ done check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_LTLIBRARIES) check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: @@ -728,8 +867,8 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ - mostlyclean-am +clean-am: clean-checkLTLIBRARIES clean-generic clean-libtool \ + clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -797,10 +936,11 @@ uninstall-am: -.MAKE: install-am install-strip +.MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-checkLTLIBRARIES clean-generic clean-libtool \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ @@ -810,7 +950,9 @@ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/bugs/distributions/RScalarDist.cc jags-4.0.0/src/modules/bugs/distributions/RScalarDist.cc --- jags-3.4.0/src/modules/bugs/distributions/RScalarDist.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/RScalarDist.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,187 +0,0 @@ -#include -#include "RScalarDist.h" -#include -#include -#include - -#include -#include - -using std::string; -using std::vector; -using std::log; -using std::min; -using std::max; - -namespace bugs { - -double RScalarDist::calPlower(double lower, - vector const ¶meters) const -{ - //P(X < lower) - if (_discrete) { - return p(lower - 1, parameters, true, false); - } - else { - return p(lower, parameters, true, false); - } -} - -double RScalarDist::calPupper(double upper, - vector const ¶meters) const -{ - //P(X <= upper) - return p(upper, parameters, true, false); -} - - -RScalarDist::RScalarDist(string const &name, unsigned int npar, - Support support, bool discrete) - - : ScalarDist(name, npar, support), _support(support), _discrete(discrete), - _npar(npar) -{ -} - -double -RScalarDist::typicalValue(vector const ¶meters, - double const *lower, double const *upper) const -{ - double llimit = l(parameters), ulimit = u(parameters); - double plower = 0, pupper = 1; - - if (lower) { - llimit = max(llimit, *lower); - plower = calPlower(llimit, parameters); - } - - if (upper) { - ulimit = min(ulimit, *upper); - pupper = calPupper(ulimit, parameters); - } - - double pmed = (plower + pupper)/2; - double med = q(pmed, parameters, true, false); - - //Calculate the log densities - double dllimit = d(llimit, PDF_FULL, parameters, true); - double dulimit = d(ulimit, PDF_FULL, parameters, true); - double dmed = d(med, PDF_FULL, parameters, true); - - //Pick the median if it has the highest density, otherwise pick - //a point near to (but not on) the boundary - if (dmed >= dllimit && dmed >= dulimit) { - return med; - } - else if (dulimit > dllimit) { - return q(0.1 * plower + 0.9 * pupper, parameters, true, false); - } - else { - return q(0.9 * plower + 0.1 * pupper, parameters, true, false); - } -} - -double -RScalarDist::logDensity(double x, PDFType type, - vector const ¶meters, - double const *lower, double const *upper) const -{ - if (lower && x < *lower) - return JAGS_NEGINF; - if (upper && x > *upper) - return JAGS_NEGINF; - if (upper && lower && *upper < *lower) - return JAGS_NEGINF; - - double loglik = d(x, type, parameters, true); - - if (type != PDF_PRIOR && (lower || upper)) { - //Normalize truncated distributions - - //Make adjustment for discrete-valued distributions - double ll = 0; - if (lower) { - ll = _discrete ? *lower - 1 : *lower; - } - - /* In theory, we just have to subtract log[P(lower <= X <= - upper)] from the log likelihood. But we need to work around - numerical problems. */ - - bool have_lower = lower && p(ll, parameters, true, false) > 0; - bool have_upper = upper && p(*upper, parameters, false, false) > 0; - - if (have_lower && have_upper) { - if (p(ll, parameters, false, false) < 0.5) { - //Use upper tail - loglik -= log(p(ll, parameters, false, false) - - p(*upper, parameters, false, false)); - } - else { - //Use lower tail - loglik -= log(p(*upper, parameters, true, false) - - p(ll, parameters, true, false)); - } - } - else if (have_lower) { - loglik -= p(ll, parameters, false, true); - } - else if (have_upper) { - loglik -= p(*upper, parameters, true, true); - } - } - - return loglik; -} - - -double -RScalarDist::randomSample(vector const ¶meters, - double const *lower, double const *upper, - RNG *rng) const -{ - if (lower || upper) { - - double plower = 0, pupper = 1; - if (lower) { - plower = calPlower(*lower, parameters); - } - if (upper) { - pupper = calPupper(*upper, parameters); - } - - double u = plower + rng->uniform() * (pupper - plower); - return q(u, parameters, true, false); - } - else { - return r(parameters, rng); - } - -} - -bool RScalarDist::canBound() const -{ - return true; -} - -bool RScalarDist::isDiscreteValued(vector const &mask) const -{ - return _discrete; -} - -bool RScalarDist::discrete() const -{ - return _discrete; -} - -unsigned int RScalarDist::npar() const -{ - return _npar; -} - - double xlog0(double x, bool give_log) { - if (x < 0) return JAGS_POSINF; - else if (x > 0) return give_log ? JAGS_NEGINF : 0; - else return give_log ? 0 : 1; - } -} diff -Nru jags-3.4.0/src/modules/bugs/distributions/RScalarDist.h jags-4.0.0/src/modules/bugs/distributions/RScalarDist.h --- jags-3.4.0/src/modules/bugs/distributions/RScalarDist.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/RScalarDist.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,122 +0,0 @@ -#ifndef R_SCALAR_DIST_H_ -#define R_SCALAR_DIST_H_ - -#include - -struct RNG; - -namespace bugs { - -/** - * @short Scalar Distribution using R math library infrastructure. - * - * A subclass of RScalarDist has to implement the d,p,q, and r virtual - * member functions. These are based on the d-p-q-r functions provided - * by libRmath. - * - * The JAGS versions of most (but not all) scalar distributions extend - * the distribution families in libRmath by allowing the distribution - * to be bounded. - */ -class RScalarDist : public ScalarDist -{ - const Support _support; - const bool _discrete; - unsigned int _npar; - double calPlower(double, std::vector const &) const; - double calPupper(double, std::vector const &) const; -public: - /** - * Constructor - * - * @param name BUGS language name of distribution - * - * @param npar Number of parameters, excluding upper and lower bound - * - * @param support Support of distribution - * - * @param discrete Boolean flag indicating whether the distribution is - * discrete valued. - */ - RScalarDist(std::string const &name, unsigned int npar, Support support, - bool discrete=false); - double logDensity(double x, PDFType type, - std::vector const ¶meters, - double const *lower, double const *upper) const; - double randomSample(std::vector const ¶meters, - double const *lower, double const *upper, - RNG *rng) const; - /** - * Returns the median. Note that this function can be overloaded - * by a subclass if necessary. - */ - double typicalValue(std::vector const ¶meters, - double const *lower, double const *upper) const; - /** - * Density function, ignoring bounds - * @param x value at which to evaluate the density - * @param type Type of density calculation required. - * @param parameters Array of parameters - * @param give_log Indicates whether to return log density. - */ - virtual double d(double x, PDFType type, - std::vector const ¶meters, - bool give_log) const = 0; - /** - * Distribution function, ignoring bounds - * @param x quantile at which to evaluate the distribution function - * @param parameters Array of parameters - * @param lower If true, return value is P[X <= x]. Otherwise - * P[X > x] - * @param give_log Indicates whether to return log probabability - */ - virtual double p(double x, std::vector const ¶meters, - bool lower, bool give_log) const = 0; - /** - * Quantile function, ignoring bounds - * @param p probability for which to evaluate quantile - * @param parameters Array of parameters - * @param log_p Indicates whether p is given as log(p). - */ - virtual double q(double p, std::vector const ¶meters, - bool lower, bool log_p) const = 0; - /** - * Random number generation, ignoring bounds - * @param parameters Array of parameters - */ - virtual double - r(std::vector const ¶meters, RNG *rng) const = 0; - /** - * All RScalarDist distributions can be bounded - */ - bool canBound() const; - /** - * RScalarDist distributions are defined to have support on the integers - * or on the real line by the constructor - */ - bool isDiscreteValued(std::vector const &mask) const; - /** - * Alternative function for determining whether the distribution is - * discrete-valued. - */ - bool discrete() const; - /** - * Returns the number of parameters of the distribution - */ - unsigned int npar() const; -}; - - /** - * Convenience function that calculates x * log(0) as the limit of - * x * log(p) as p tends to zero. This is required for calculation - * of some density functions. - * - * @param x coefficient of log(0) - * @param give_log logical flag. If true then the limit of x*log(p) - * is returned, otherwise the limit of p^x. - */ - double xlog0(double x, bool give_log); -} - -#endif /* SCALAR_DIST_RMATH_H_ */ - diff -Nru jags-3.4.0/src/modules/bugs/distributions/SumDist.cc jags-4.0.0/src/modules/bugs/distributions/SumDist.cc --- jags-3.4.0/src/modules/bugs/distributions/SumDist.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/SumDist.cc 2015-07-17 05:55:21.000000000 +0000 @@ -0,0 +1,117 @@ +#include +#include +#include +#include +#include + +#include "SumDist.h" + +#include +#include +#include + +using std::vector; +using std::fabs; +using std::sqrt; +using std::accumulate; + +namespace jags { +namespace bugs { + + static const double TOL = sqrt(DBL_EPSILON); + + static double evaluate(vector const &args, + vector const &lengths) + { + double value = 0; + for (unsigned int j = 0; j < args.size(); ++j) { + value = accumulate(args[j], args[j] + lengths[j], value); + } + return value; + } + + SumDist::SumDist() + : VectorDist("sum", 0) + { + } + + bool SumDist::isDiscreteValued(vector const &mask) const + { + return allTrue(mask); + } + + double SumDist::logDensity(double const *x, unsigned int length, + PDFType type, + vector const &par, + vector const &lengths, + double const *lower, double const *upper) const + { + return fabs(*x - evaluate(par, lengths)) > TOL ? JAGS_NEGINF : 0; + } + + void SumDist::randomSample(double *x, unsigned int length, + vector const &par, + vector const &lengths, + double const *lower, double const *upper, + RNG *rng) const + { + *x = evaluate(par, lengths); + } + + void SumDist::typicalValue(double *x, unsigned int length, + vector const &par, + vector const &lengths, + double const *lower, double const *upper) const + { + *x = evaluate(par, lengths); + } + + bool SumDist::isSupportFixed(vector const &fixmask) const + { + return allTrue(fixmask); + } + + unsigned int SumDist::df(vector const &lengths) const + { + return 0; + } + + bool SumDist::checkParameterValue(vector const ¶ms, + vector const &lengths) const + { + return true; + } + + bool + SumDist::checkParameterLength (vector const &lengths) const + { + if (lengths.empty()) return false; + for (unsigned int i = 1; i < lengths.size(); ++i) { + if (lengths[i] == 0) + return false; + } + return true; + } + + bool SumDist::checkParameterDiscrete(vector const &mask) const + { + for (unsigned int i = 1; i < mask.size(); ++i) { + if (mask[i] != mask[0]) + return false; + } + return true; + } + + void SumDist::support(double *lower, double *upper, unsigned int length, + vector const &par, + vector const &lengths) const + { + *lower = *upper = evaluate(par, lengths); + } + + unsigned int SumDist::length(vector const &lengths) const + { + return 1; + } + +}} diff -Nru jags-3.4.0/src/modules/bugs/distributions/SumDist.h jags-4.0.0/src/modules/bugs/distributions/SumDist.h --- jags-3.4.0/src/modules/bugs/distributions/SumDist.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/SumDist.h 2015-07-11 07:59:30.000000000 +0000 @@ -0,0 +1,44 @@ +#ifndef SUM_DIST_H_ +#define SUM_DIST_H_ + +#include + +namespace jags { +namespace bugs { + +/** + * @short Sum of 2 or more random variables + */ +class SumDist : public VectorDist { +public: + SumDist(); + + double logDensity(double const *x, unsigned int length, PDFType type, + std::vector const ¶meters, + std::vector const &lengths, + double const *lower, double const *upper) const; + void randomSample(double *x, unsigned int length, + std::vector const ¶meters, + std::vector const &lengths, + double const *lower, double const *upper, + RNG *rng) const; + void typicalValue(double *x, unsigned int length, + std::vector const ¶meters, + std::vector const &lengths, + double const *lower, double const *upper) const; + bool isSupportFixed(std::vector const &fixmask) const; + bool isDiscreteValued(std::vector const &mask) const; + unsigned int df(std::vector const &lengths) const; + bool checkParameterValue(std::vector const ¶ms, + std::vector const &lengths) const; + bool checkParameterLength(std::vector const &lengths) const; + bool checkParameterDiscrete(std::vector const &mask) const; + void support(double *lower, double *upper, unsigned int length, + std::vector const ¶meters, + std::vector const &lengths) const; + unsigned int length(std::vector const &lengths) const; +}; + +}} + +#endif /* SUM_DIST_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/distributions/testbugsdist.cc jags-4.0.0/src/modules/bugs/distributions/testbugsdist.cc --- jags-3.4.0/src/modules/bugs/distributions/testbugsdist.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/testbugsdist.cc 2015-09-27 07:06:19.000000000 +0000 @@ -0,0 +1,623 @@ +#include "testbugsdist.h" + +#include "DBern.h" +#include "DBeta.h" +#include "DBin.h" +#include "DCat.h" +#include "DChisqr.h" +#include "DDexp.h" +#include "DDirch.h" +#include "DExp.h" +#include "DF.h" +#include "DGamma.h" +#include "DGenGamma.h" +#include "DHyper.h" +#include "DInterval.h" +#include "DLnorm.h" +#include "DLogis.h" +#include "DMNorm.h" +#include "DMT.h" +#include "DMulti.h" +#include "DNChisqr.h" +#include "DNegBin.h" +#include "DNorm.h" +#include "DNT.h" +#include "DPar.h" +#include "DPois.h" +#include "DRound.h" +#include "DSum.h" +#include "DT.h" +#include "DUnif.h" +#include "DWeib.h" +#include "DWish.h" + +#include +#include +#include + +#include +#include +#include + +using std::string; +using std::vector; +using std::sqrt; +using std::max; +using std::min; +using std::multiset; +using std::abs; +using std::ostringstream; + +using jags::ScalarDist; +using jags::RScalarDist; + +void BugsDistTest::setUp() { + + _rng = new jags::base::MersenneTwisterRNG(1234567, + jags::KINDERMAN_RAMAGE); + + _dbern = new jags::bugs::DBern(); + _dbeta = new jags::bugs::DBeta(); + _dbin = new jags::bugs::DBin(); + _dcat = new jags::bugs::DCat(); + _dchisqr = new jags::bugs::DChisqr(); + _ddirch = new jags::bugs::DDirch(); + _ddexp = new jags::bugs::DDexp(); + _dexp = new jags::bugs::DExp(); + _df = new jags::bugs::DF(); + _dgamma = new jags::bugs::DGamma(); + _dgengamma = new jags::bugs::DGenGamma(); + _dhyper = new jags::bugs::DHyper(); + _dinterval = new jags::bugs::DInterval(); + _dlnorm = new jags::bugs::DLnorm(); + _dlogis = new jags::bugs::DLogis(); + _dmnorm = new jags::bugs::DMNorm(); + _dmt = new jags::bugs::DMT(); + _dmulti = new jags::bugs::DMulti(); + _dnchisqr = new jags::bugs::DNChisqr(); + _dnegbin = new jags::bugs::DNegBin(); + _dnorm = new jags::bugs::DNorm(); + _dnt = new jags::bugs::DNT(); + _dpar = new jags::bugs::DPar(); + _dpois = new jags::bugs::DPois(); + _dround = new jags::bugs::DRound(); + _dsum = new jags::bugs::DSum(); + _dt = new jags::bugs::DT(); + _dunif = new jags::bugs::DUnif(); + _dweib = new jags::bugs::DWeib(); + _dwish = new jags::bugs::DWish(); + +} + +void BugsDistTest::tearDown() { + + delete _rng; + + delete _dbern; + delete _dbeta; + delete _dbin; + delete _dcat; + delete _dchisqr; + delete _ddirch; + delete _ddexp; + delete _dexp; + delete _df; + delete _dgamma; + delete _dgengamma; + delete _dhyper; + delete _dinterval; + delete _dlnorm; + delete _dlogis; + delete _dmnorm; + delete _dmt; + delete _dmulti; + delete _dnchisqr; + delete _dnegbin; + delete _dnorm; + delete _dnt; + delete _dpar; + delete _dpois; + delete _dround; + delete _dsum; + delete _dt; + delete _dunif; + delete _dweib; + delete _dwish; +} + +void BugsDistTest::npar() +{ + //CPPUNIT_ASSERT_MESSAGE("npar check", false); + + CPPUNIT_ASSERT_EQUAL(_dbern->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_dbeta->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_dbin->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_dcat->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_dchisqr->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_ddirch->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_ddexp->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_dexp->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_df->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_dgamma->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_dgengamma->npar(), 3U); + CPPUNIT_ASSERT_EQUAL(_dhyper->npar(), 4U); + CPPUNIT_ASSERT_EQUAL(_dinterval->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_dlnorm->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_dlogis->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_dmnorm->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_dmt->npar(), 3U); + CPPUNIT_ASSERT_EQUAL(_dmulti->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_dchisqr->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_dnegbin->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_dnorm->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_dnt->npar(), 3U); + CPPUNIT_ASSERT_EQUAL(_dpar->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_dpois->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_dround->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_dsum->npar(), 0U); + CPPUNIT_ASSERT_EQUAL(_dt->npar(), 3U); + CPPUNIT_ASSERT_EQUAL(_dunif->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_dweib->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_dwish->npar(), 2U); + +} + +void BugsDistTest::name() +{ + CPPUNIT_ASSERT_EQUAL(string("dbern"), _dbern->name()); + CPPUNIT_ASSERT_EQUAL(string("dbeta"), _dbeta->name()); + CPPUNIT_ASSERT_EQUAL(string("dbin"), _dbin->name()); + CPPUNIT_ASSERT_EQUAL(string("dcat"), _dcat->name()); + CPPUNIT_ASSERT_EQUAL(string("dchisqr"), _dchisqr->name()); + CPPUNIT_ASSERT_EQUAL(string("ddirch"), _ddirch->name()); + CPPUNIT_ASSERT_EQUAL(string("ddexp"), _ddexp->name()); + CPPUNIT_ASSERT_EQUAL(string("dexp"), _dexp->name()); + CPPUNIT_ASSERT_EQUAL(string("df"), _df->name()); + CPPUNIT_ASSERT_EQUAL(string("dgamma"), _dgamma->name()); + CPPUNIT_ASSERT_EQUAL(string("dgen.gamma"), _dgengamma->name()); + CPPUNIT_ASSERT_EQUAL(string("dhyper"), _dhyper->name()); + CPPUNIT_ASSERT_EQUAL(string("dinterval"), _dinterval->name()); + CPPUNIT_ASSERT_EQUAL(string("dlnorm"), _dlnorm->name()); + CPPUNIT_ASSERT_EQUAL(string("dlogis"), _dlogis->name()); + CPPUNIT_ASSERT_EQUAL(string("dmnorm"), _dmnorm->name()); + CPPUNIT_ASSERT_EQUAL(string("dmt"), _dmt->name()); + CPPUNIT_ASSERT_EQUAL(string("dmulti"), _dmulti->name()); + CPPUNIT_ASSERT_EQUAL(string("dnchisqr"), _dnchisqr->name()); + CPPUNIT_ASSERT_EQUAL(string("dnegbin"), _dnegbin->name()); + CPPUNIT_ASSERT_EQUAL(string("dnorm"), _dnorm->name()); + CPPUNIT_ASSERT_EQUAL(string("dnt"), _dnt->name()); + CPPUNIT_ASSERT_EQUAL(string("dpar"), _dpar->name()); + CPPUNIT_ASSERT_EQUAL(string("dpois"), _dpois->name()); + CPPUNIT_ASSERT_EQUAL(string("dround"), _dround->name()); + CPPUNIT_ASSERT_EQUAL(string("dsum"), _dsum->name()); + CPPUNIT_ASSERT_EQUAL(string("dt"), _dt->name()); + CPPUNIT_ASSERT_EQUAL(string("dunif"), _dunif->name()); + CPPUNIT_ASSERT_EQUAL(string("dweib"), _dweib->name()); + CPPUNIT_ASSERT_EQUAL(string("dwish"), _dwish->name()); + +} + +void BugsDistTest::alias() +{ + CPPUNIT_ASSERT_EQUAL(string(""), _dbern->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dbeta->alias()); + CPPUNIT_ASSERT_EQUAL(string("dbinom"), _dbin->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dcat->alias()); + CPPUNIT_ASSERT_EQUAL(string("dchisq"), _dchisqr->alias()); + CPPUNIT_ASSERT_EQUAL(string("ddirich"), _ddirch->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _ddexp->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dexp->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _df->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dgamma->alias()); + CPPUNIT_ASSERT_EQUAL(string("dggamma"), _dgengamma->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dhyper->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dinterval->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dlnorm->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dlogis->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dmnorm->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dmt->alias()); + CPPUNIT_ASSERT_EQUAL(string("dmultinom"), _dmulti->alias()); + CPPUNIT_ASSERT_EQUAL(string("dnchisq"), _dnchisqr->alias()); + CPPUNIT_ASSERT_EQUAL(string("dnbinom"), _dnegbin->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dnorm->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dnt->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dpar->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dpois->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dround->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dsum->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dt->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dunif->alias()); + CPPUNIT_ASSERT_EQUAL(string("dweibull"), _dweib->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dwish->alias()); +} + +void BugsDistTest::rscalar_rpq(RScalarDist const *dist, + vector const &par) +{ + /* + Simultaneous test of r, p, and q functions for distributions + inheriting from RScalarDist. + */ + unsigned int nsim = 100; + + CPPUNIT_ASSERT_MESSAGE(dist->name(), checkNPar(dist, par.size())); + CPPUNIT_ASSERT_MESSAGE(dist->name(), dist->checkParameterValue(par)); + + for (unsigned int i = 0; i < nsim; ++i) { + //Generate random variable from distribution + double y = dist->r(par, _rng); + //Pass to distribution function and then to distribution function + double p = dist->p(y, par, true, false); + CPPUNIT_ASSERT_MESSAGE(dist->name(), p >= 0 && p <= 1); + double z = dist->q(p, par, true, false); + CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(dist->name(), y, z, tol); + //Now do the same on a log scale + double logp = dist->p(y, par, true, true); + CPPUNIT_ASSERT_MESSAGE(dist->name(), logp <= 0); + z = dist->q(logp, par, true, true); + CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(dist->name(), y, z, tol); + //Using upper tail + p = dist->p(y, par, false, false); + CPPUNIT_ASSERT_MESSAGE(dist->name(), p >= 0 && p <= 1); + z = dist->q(p, par, false, false); + CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(dist->name(), y, z, tol); + //Upper tail on log scale + logp = dist->p(y, par, false, true); + CPPUNIT_ASSERT_MESSAGE(dist->name(), logp <= 0); + z = dist->q(logp, par, false, true); + CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(dist->name(), y, z, tol); + } +} + +static vector mkPar(double const &v1) +{ + vector par; + par.push_back(&v1); + return par; +} + +static vector mkPar(double const &v1, double const &v2) +{ + vector par; + par.push_back(&v1); + par.push_back(&v2); + return par; +} + +static vector mkPar(double const &v1, double const &v2, + double const &v3) +{ + vector par; + par.push_back(&v1); + par.push_back(&v2); + par.push_back(&v3); + return par; +} + +static vector mkPar(double const &v1, double const &v2, + double const &v3, double const &v4) +{ + vector par; + par.push_back(&v1); + par.push_back(&v2); + par.push_back(&v3); + par.push_back(&v4); + return par; +} + +void BugsDistTest::rscalar() +{ + rscalar_rpq(_dbeta, mkPar(0.3, 0.5)); + rscalar_rpq(_dbeta, mkPar(2, 6)); + + rscalar_rpq(_dbin, mkPar(0.1, 10)); + rscalar_rpq(_dbin, mkPar(0.9, 1)); + + rscalar_rpq(_dchisqr, mkPar(1)); + rscalar_rpq(_dchisqr, mkPar(2)); + rscalar_rpq(_dchisqr, mkPar(3)); + rscalar_rpq(_dchisqr, mkPar(10)); + + rscalar_rpq(_ddexp, mkPar(2, 0.1)); + rscalar_rpq(_ddexp, mkPar(-5, 2.8)); + + rscalar_rpq(_dexp, mkPar(0.1)); + rscalar_rpq(_dexp, mkPar(7)); + + rscalar_rpq(_df, mkPar(1, 1)); + rscalar_rpq(_df, mkPar(3, 7)); + + rscalar_rpq(_dgamma, mkPar(1, 0.1)); + rscalar_rpq(_dgamma, mkPar(0.1, 3)); + + rscalar_rpq(_dgengamma, mkPar(1, 0.1, 3)); + rscalar_rpq(_dgengamma, mkPar(0.1, 3, 0.5)); + + for (int i = 1; i <= 10; ++i) { + for (int j = 0; j <= i; ++j ) { + rscalar_rpq(_dhyper, mkPar(i, i, j, 1)); + rscalar_rpq(_dhyper, mkPar(i, i, j, 0.5)); + rscalar_rpq(_dhyper, mkPar(i, i, j, 3)); + } + } + rscalar_rpq(_dhyper, mkPar(10, 8, 7, 0.5)); + + rscalar_rpq(_dlnorm, mkPar(-0.5, 33)); + rscalar_rpq(_dlogis, mkPar(-7, 0.3)); + rscalar_rpq(_dnchisqr, mkPar(5, 1.5)); + rscalar_rpq(_dnorm, mkPar(3, 10)); + rscalar_rpq(_dnt, mkPar(0, 1, 4)); + rscalar_rpq(_dnt, mkPar(-5, 3, 1)); + rscalar_rpq(_dpar, mkPar(1.3, 1)); + + rscalar_rpq(_dpois, mkPar(0.12)); + rscalar_rpq(_dpois, mkPar(10.7)); + rscalar_rpq(_dt, mkPar(18, 1.7, 1)); + rscalar_rpq(_dt, mkPar(0, 1, 4)); + rscalar_rpq(_dweib, mkPar(3, 10)); + rscalar_rpq(_dweib, mkPar(0.9, 0.9)); +} + +void BugsDistTest::kl_scalar(ScalarDist const *dist, + vector const &par0, + vector const &par1) +{ + /* + Test closed form expression for Kullback-Leibler divergence + against Monte Carlo estimate + */ + + //Sanity checks + CPPUNIT_ASSERT_EQUAL_MESSAGE(dist->name(), par0.size(), par1.size()); + CPPUNIT_ASSERT_MESSAGE(dist->name(), checkNPar(dist, par0.size())); + CPPUNIT_ASSERT_MESSAGE(dist->name(), dist->checkParameterValue(par0)); + CPPUNIT_ASSERT_MESSAGE(dist->name(), dist->checkParameterValue(par1)); + + unsigned int nrep = 1000L; + + //Monte Carlo estimate of Kullback-Leibler divergence + + vector y(nrep); + double ysum = 0; + for (unsigned int i = 0; i < nrep; ++i) { + y[i] = dist->KL(par0, par1, 0, 0, _rng, 100); + ysum += y[i]; + } + double ymean = ysum/nrep; + double ysum2 = 0; + for (unsigned int i = 0; i < nrep; ++i) { + ysum2 += (y[i] - ymean) * (y[i] - ymean); + } + double ysd = sqrt(ysum2/(nrep - 1)); //Standard deviation + //Standard error of the mean + double ysem = ysd/sqrt(static_cast(nrep)); + + //Closed form expression for Kullback-Leibler divergence + double z = dist->KL(par0, par1); + CPPUNIT_ASSERT(z != JAGS_NA); + + //Difference between closed-form and Monte Carlo estimates + CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(dist->name(), z, ymean, + max(5*ysem, tol)); +} + +void BugsDistTest::kl() +{ + /* Kullback-Leibler test: see kl_scalar for details */ + + kl_scalar(_dbern, mkPar(0.6), mkPar(0.5)); + kl_scalar(_dbern, mkPar(0.1), mkPar(0.9)); + + kl_scalar(_dbin, mkPar(0.5, 10), mkPar(0.9, 10)); + kl_scalar(_dbin, mkPar(0.1, 5), mkPar(0.2, 5)); + + kl_scalar(_dbeta, mkPar(2, 3), mkPar(2.5, 2.8)); + kl_scalar(_dbeta, mkPar(0.5, 1), mkPar(0.7, 1)); + + kl_scalar(_dchisqr, mkPar(1), mkPar(1.5)); + kl_scalar(_dchisqr, mkPar(5), mkPar(7)); + + kl_scalar(_ddexp, mkPar(0, 1), mkPar(-1, 3)); + kl_scalar(_ddexp, mkPar(5, 0.2), mkPar(7, 0.25)); + + kl_scalar(_dexp, mkPar(10), mkPar(12)); + kl_scalar(_dexp, mkPar(0.5), mkPar(0.7)); + + kl_scalar(_dgamma, mkPar(3,2), mkPar(3.5, 1.8)); + kl_scalar(_dgamma, mkPar(1, 0.5), mkPar(2, 0.1)); + + kl_scalar(_dgengamma, mkPar(2,5,3), mkPar(2.5, 4.8, 2.8)); + kl_scalar(_dgengamma, mkPar(1, 3, 0.5), mkPar(1.1, 2.2, 0.7)); + + kl_scalar(_dhyper, mkPar(5,5,6,0.2), mkPar(5,5,6,0.4)); + kl_scalar(_dhyper, mkPar(20, 10, 12, 0.8), mkPar(20,10, 12, 0.6)); + + kl_scalar(_dlnorm, mkPar(0, 1), mkPar(0.5, 1.5)); + kl_scalar(_dlnorm, mkPar(3, 2), mkPar(5, 2.8)); + + //Can only calculate for negative binomial when sizes are equal + kl_scalar(_dnegbin, mkPar(0.3, 10), mkPar(0.6, 10)); + kl_scalar(_dnegbin, mkPar(0.1, 3), mkPar(0.2, 3)); + + kl_scalar(_dnorm, mkPar(0, 1), mkPar(-3, 2)); + kl_scalar(_dnorm, mkPar(2, 0.3), mkPar(2.5, 0.1)); + + kl_scalar(_dpois, mkPar(3), mkPar(5)); + kl_scalar(_dpois, mkPar(12), mkPar(10)); + + kl_scalar(_dunif, mkPar(-5,10), mkPar(-8, 12)); + kl_scalar(_dunif, mkPar(2,3), mkPar(1,5)); + + /* FIXME + Need tests for DCat, DDirch + Should implemnt DMNorm::KL + */ +} + +static double superror(RScalarDist const *dist, unsigned int N, + vector const &par, jags::RNG *rng) +{ + //Calculate test statistic for DKW test + + multiset xmset; + + for (unsigned int i =0; i < N; ++i) { + double x = dist->r(par, rng); + x = fprec(x, 12); + xmset.insert(x); + } + double fhat=0, delta=0; + for (multiset::const_iterator q = xmset.begin(); + q != xmset.end(); q = xmset.upper_bound(*q)) + { + double f = dist->p(*q, par, true, false); + fhat += static_cast(xmset.count(*q))/N; + delta = max(delta, abs(fhat - f)); + } + return delta; +} + +static double pdkwbound(double n, double t) { + return 2*exp(-2*n*t*t); +} + +static double qdkwbound(double n, double p) { + return sqrt(log(p/2)/(-2*n)); +} + +void BugsDistTest::dkwtest(RScalarDist const *dist, + vector const &par, + unsigned int N, double pthresh) +{ + /* + Test using the Dvoretzky-Kiefer-Wolfowitz (1956) bound on the + difference between the empirical distribution function and the + theoretical one, with a tight constant derived by Massart (1990) + */ + + //Sanity checks + CPPUNIT_ASSERT_MESSAGE(dist->name(), checkNPar(dist, par.size())); + CPPUNIT_ASSERT_MESSAGE(dist->name(), dist->checkParameterValue(par)); + + double s = superror(dist, N, par, _rng); + string msg = dist->name(); + if (s >= qdkwbound(N, pthresh)) { + ostringstream ostr; + ostr << "Distribution " << dist->name() << "("; + for (unsigned int i = 0; i < par.size(); ++i) { + if (i > 0) ostr << ", "; + ostr << *par[i]; + } + ostr << ")\n"; + ostr << "supremum error = " << fprec(s, 2) + << " with p-value=" + << min(1.0, fround(pdkwbound(N,s), 4)); + CPPUNIT_FAIL(ostr.str()); + } + + +} + +void BugsDistTest::dkw() +{ + //DKW test of random number generation and distribution function + //See dkwtest for details + + //CPPUNIT_ASSERT_MESSAGE("dkw check", false); + + dkwtest(_dbeta, mkPar(1,1)); + dkwtest(_dbeta, mkPar(2,1)); + dkwtest(_dbeta, mkPar(1,2)); + dkwtest(_dbeta, mkPar(2,2)); + dkwtest(_dbeta, mkPar(0.2,0.2)); + + dkwtest(_dbin, mkPar(0.2, 1)); + dkwtest(_dbin, mkPar(0.2, 2)); + dkwtest(_dbin, mkPar(0.2, 100)); + dkwtest(_dbin, mkPar(0.2, 1e4)); + dkwtest(_dbin, mkPar(0.8, 1)); + dkwtest(_dbin, mkPar(0.8, 100)); + dkwtest(_dbin, mkPar(0.999, 100)); + + dkwtest(_dchisqr, mkPar(1)); + dkwtest(_dchisqr, mkPar(10)); + + dkwtest(_ddexp, mkPar(0, 1)); + dkwtest(_ddexp, mkPar(0, 2)); + dkwtest(_ddexp, mkPar(-3, 0.5)); + + dkwtest(_dexp, mkPar(1)); + dkwtest(_dexp, mkPar(10)); + dkwtest(_dexp, mkPar(0.01)); + + dkwtest(_df, mkPar(1, 1)); + dkwtest(_df, mkPar(1, 10)); + dkwtest(_df, mkPar(10, 10)); + dkwtest(_df, mkPar(30, 3)); + + dkwtest(_dgamma, mkPar(0.1, 1)); + dkwtest(_dgamma, mkPar(0.2, 1)); + dkwtest(_dgamma, mkPar(10, 1)); + dkwtest(_dgamma, mkPar(20, 1)); + + dkwtest(_dgengamma, mkPar(1, 0.1, 0.5)); + dkwtest(_dgengamma, mkPar(0.1, 7, 2)); + + dkwtest(_dpois, mkPar(0.095)); + dkwtest(_dpois, mkPar(0.95)); + dkwtest(_dpois, mkPar(9.5)); + dkwtest(_dpois, mkPar(95)); + + dkwtest(_dnegbin, mkPar(0.2, 1)); + dkwtest(_dnegbin, mkPar(0.2, 2)); + dkwtest(_dnegbin, mkPar(0.2, 100)); + dkwtest(_dnegbin, mkPar(0.2, 1e4)); + dkwtest(_dnegbin, mkPar(0.8, 1)); + dkwtest(_dnegbin, mkPar(0.8, 100)); + dkwtest(_dnegbin, mkPar(0.999, 100)); + + dkwtest(_dnorm, mkPar(0, 1)); + dkwtest(_dnorm, mkPar(5, 3)); + + //Central hypergeometric + dkwtest(_dhyper, mkPar(40, 30, 10, 1)); + dkwtest(_dhyper, mkPar(40, 3, 20, 1)); + dkwtest(_dhyper, mkPar(40, 3, 20, 1)); + dkwtest(_dhyper, mkPar(6, 3, 2, 1)); + dkwtest(_dhyper, mkPar(5, 3, 2, 1)); + dkwtest(_dhyper, mkPar(4, 3, 2, 1)); + + //Large sample test for central hypergeometric + dkwtest(_dhyper, mkPar(60,100,50, 1)); + dkwtest(_dhyper, mkPar(600, 1000, 500, 1)); + + //Non-central hypergeometric + dkwtest(_dhyper, mkPar(40, 30, 10, 2)); + dkwtest(_dhyper, mkPar(40, 3, 20, 0.5)); + dkwtest(_dhyper, mkPar(40, 3, 20, 0.3)); + dkwtest(_dhyper, mkPar(6, 3, 2, 5)); + dkwtest(_dhyper, mkPar(5, 3, 2, 2)); + dkwtest(_dhyper, mkPar(4, 3, 2, 2.5)); + + dkwtest(_dlnorm, mkPar(0, 1)); + dkwtest(_dlnorm, mkPar(3, 3)); + dkwtest(_dlnorm, mkPar(-8, 0.2)); + + dkwtest(_dlogis, mkPar(0, 1)); + dkwtest(_dlogis, mkPar(4, 0.5)); + + dkwtest(_dnt, mkPar(10, 2, 3)); + dkwtest(_dnt, mkPar(-7, 0.5, 1.5)); + + dkwtest(_dpar, mkPar(5,2)); + + dkwtest(_dt, mkPar(0,1,1)); + dkwtest(_dt, mkPar(-3, 0.4, 1)); + dkwtest(_dt, mkPar(0, 2, 10)); + dkwtest(_dt, mkPar(5, 1, 40)); + + dkwtest(_dweib, mkPar(1, 1)); + dkwtest(_dweib, mkPar(2, 2)); + dkwtest(_dweib, mkPar(0.3, 0.5)); +} + diff -Nru jags-3.4.0/src/modules/bugs/distributions/testbugsdist.h jags-4.0.0/src/modules/bugs/distributions/testbugsdist.h --- jags-3.4.0/src/modules/bugs/distributions/testbugsdist.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/distributions/testbugsdist.h 2015-09-27 07:06:19.000000000 +0000 @@ -0,0 +1,84 @@ +#ifndef BUGS_DIST_TEST_H +#define BUGS_DIST_TEST_H + +namespace jags { + class RScalarDist; + class ScalarDist; + class VectorDist; + class ArrayDist; + struct RNG; +} + +#include +#include + +class BugsDistTest : public CppUnit::TestFixture, public JAGSFixture +{ + + CPPUNIT_TEST_SUITE( BugsDistTest ); + CPPUNIT_TEST( npar ); + CPPUNIT_TEST( name ); + CPPUNIT_TEST( alias ); + CPPUNIT_TEST( rscalar ); + CPPUNIT_TEST( kl ); + CPPUNIT_TEST( dkw ); + CPPUNIT_TEST_SUITE_END( ); + + jags::RNG *_rng; + + jags::ScalarDist *_dbern; + jags::RScalarDist *_dbeta; + jags::RScalarDist *_dbin; + jags::VectorDist *_dcat; + jags::RScalarDist *_dchisqr; + jags::VectorDist *_ddirch; + jags::RScalarDist *_ddexp; + jags::RScalarDist *_dexp; + jags::RScalarDist *_df; + jags::RScalarDist *_dgamma; + jags::RScalarDist *_dgengamma; + jags::RScalarDist *_dhyper; + jags::VectorDist *_dinterval; + jags::RScalarDist *_dlnorm; + jags::RScalarDist *_dlogis; + jags::ArrayDist *_dmnorm; + jags::ArrayDist *_dmt; + jags::VectorDist *_dmulti; + jags::RScalarDist *_dnchisqr; + jags::RScalarDist *_dnegbin; + jags::RScalarDist *_dnorm; + jags::RScalarDist *_dnt; + jags::RScalarDist *_dpar; + jags::RScalarDist *_dpois; + jags::ScalarDist *_dround; + jags::ArrayDist *_dsum; + jags::RScalarDist *_dt; + jags::ScalarDist *_dunif; + jags::RScalarDist *_dweib; + jags::ArrayDist *_dwish; + + void rscalar_rpq(jags::RScalarDist const *dist, + std::vector const &par); + + void kl_scalar(jags::ScalarDist const *dist, + std::vector const &par0, + std::vector const &par1); + + void dkwtest(jags::RScalarDist const *dist, + std::vector const &par, + unsigned int N=10000, double pthresh=0.001); + + public: + void setUp(); + void tearDown(); + + void npar(); + void name(); + void alias(); + void rscalar(); + + void kl(); + void dkw(); +}; + +#endif /* BUGS_DIST_TEST_H */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Abs.cc jags-4.0.0/src/modules/bugs/functions/Abs.cc --- jags-3.4.0/src/modules/bugs/functions/Abs.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Abs.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; using std::fabs; +namespace jags { namespace bugs { Abs::Abs ():ScalarFunction ("abs", 1) @@ -22,4 +23,5 @@ { return mask[0]; } -} + +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Abs.h jags-4.0.0/src/modules/bugs/functions/Abs.h --- jags-3.4.0/src/modules/bugs/functions/Abs.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Abs.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -21,7 +22,7 @@ bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* FUNC_ABS_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/ArcCos.cc jags-4.0.0/src/modules/bugs/functions/ArcCos.cc --- jags-3.4.0/src/modules/bugs/functions/ArcCos.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/ArcCos.cc 2015-02-22 08:33:05.000000000 +0000 @@ -7,6 +7,7 @@ using std::acos; using std::string; +namespace jags { namespace bugs { ArcCos::ArcCos () @@ -28,4 +29,5 @@ { return *args[0] >= -1 && *args[0] <= 1; } -} + +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/ArcCos.h jags-4.0.0/src/modules/bugs/functions/ArcCos.h --- jags-3.4.0/src/modules/bugs/functions/ArcCos.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/ArcCos.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -21,6 +22,6 @@ bool checkParameterValue(std::vector const &args) const; }; -} +}} #endif /* FUNC_ARCCOS_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/ArcCosh.cc jags-4.0.0/src/modules/bugs/functions/ArcCosh.cc --- jags-3.4.0/src/modules/bugs/functions/ArcCosh.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/ArcCosh.cc 2015-02-22 08:33:05.000000000 +0000 @@ -8,6 +8,7 @@ using std::sqrt; using std::string; +namespace jags { namespace bugs { ArcCosh::ArcCosh () @@ -31,4 +32,4 @@ return *args[0] >= 1; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/ArcCosh.h jags-4.0.0/src/modules/bugs/functions/ArcCosh.h --- jags-3.4.0/src/modules/bugs/functions/ArcCosh.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/ArcCosh.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -21,6 +22,6 @@ bool checkParameterValue(std::vector const &args) const; }; -} +}} #endif /* FUNC_ARCCOSH_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/ArcSin.cc jags-4.0.0/src/modules/bugs/functions/ArcSin.cc --- jags-3.4.0/src/modules/bugs/functions/ArcSin.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/ArcSin.cc 2015-02-22 08:33:05.000000000 +0000 @@ -7,6 +7,7 @@ using std::asin; using std::string; +namespace jags { namespace bugs { ArcSin::ArcSin () @@ -28,4 +29,5 @@ { return *args[0] >= -1 && *args[0] <= 1; } -} + +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/ArcSin.h jags-4.0.0/src/modules/bugs/functions/ArcSin.h --- jags-3.4.0/src/modules/bugs/functions/ArcSin.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/ArcSin.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -21,6 +22,6 @@ bool checkParameterValue(std::vector const &args) const; }; -} +}} #endif /* FUNC_ARCSIN_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/ArcSinh.cc jags-4.0.0/src/modules/bugs/functions/ArcSinh.cc --- jags-3.4.0/src/modules/bugs/functions/ArcSinh.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/ArcSinh.cc 2015-02-22 08:33:05.000000000 +0000 @@ -16,6 +16,7 @@ The same issue affects ArcCosh (acosh) and ArcTanh (atanh). */ +namespace jags { namespace bugs { ArcSinh::ArcSinh () @@ -34,4 +35,4 @@ return log(x + sqrt(1 + x*x)); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/ArcSinh.h jags-4.0.0/src/modules/bugs/functions/ArcSinh.h --- jags-3.4.0/src/modules/bugs/functions/ArcSinh.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/ArcSinh.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -20,6 +21,6 @@ double evaluate(std::vector const &args) const; }; -} +}} #endif /* FUNC_ARCSINH_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/ArcTan.cc jags-4.0.0/src/modules/bugs/functions/ArcTan.cc --- jags-3.4.0/src/modules/bugs/functions/ArcTan.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/ArcTan.cc 2015-02-22 08:33:05.000000000 +0000 @@ -7,6 +7,7 @@ using std::atan; using std::string; +namespace jags { namespace bugs { ArcTan::ArcTan () @@ -24,4 +25,4 @@ return atan(*args[0]); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/ArcTan.h jags-4.0.0/src/modules/bugs/functions/ArcTan.h --- jags-3.4.0/src/modules/bugs/functions/ArcTan.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/ArcTan.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -20,6 +21,6 @@ double evaluate(std::vector const &args) const; }; -} +}} #endif /* FUNC_ARCTAN_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/ArcTanh.cc jags-4.0.0/src/modules/bugs/functions/ArcTanh.cc --- jags-3.4.0/src/modules/bugs/functions/ArcTanh.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/ArcTanh.cc 2015-02-22 08:33:05.000000000 +0000 @@ -7,6 +7,7 @@ using std::log; using std::string; +namespace jags { namespace bugs { ArcTanh::ArcTanh () @@ -28,7 +29,7 @@ bool ArcTanh::checkParameterValue(vector const &args) const { - return *args[0] > -1 && *args[0] < 1; + return *args[0] >= -1 && *args[0] <= 1; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/ArcTanh.h jags-4.0.0/src/modules/bugs/functions/ArcTanh.h --- jags-3.4.0/src/modules/bugs/functions/ArcTanh.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/ArcTanh.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -21,6 +22,6 @@ bool checkParameterValue(std::vector const &args) const; }; -} +}} #endif /* FUNC_ARCTANH_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/CLogLog.cc jags-4.0.0/src/modules/bugs/functions/CLogLog.cc --- jags-3.4.0/src/modules/bugs/functions/CLogLog.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/CLogLog.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; using std::log; +namespace jags { namespace bugs { CLogLog::CLogLog ():ScalarFunction ("cloglog", 1) @@ -17,10 +18,10 @@ return log(-log(1 - *args[0])); } - bool CLogLog::checkScalarValue(vector const &args) const + bool CLogLog::checkParameterValue(vector const &args) const { - double arg = *args[0]; - return (arg > 0 && arg < 1); + double p = *args[0]; + return (p >= 0 && p <= 1); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/CLogLog.h jags-4.0.0/src/modules/bugs/functions/CLogLog.h --- jags-3.4.0/src/modules/bugs/functions/CLogLog.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/CLogLog.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -18,9 +19,9 @@ public: CLogLog (); double evaluate(std::vector const &args) const; - bool checkScalarValue (std::vector const &args) const; + bool checkParameterValue (std::vector const &args) const; }; -} +}} #endif /* FUNC_CLOGLOG_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Combine.cc jags-4.0.0/src/modules/bugs/functions/Combine.cc --- jags-3.4.0/src/modules/bugs/functions/Combine.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Combine.cc 2015-07-03 05:53:31.000000000 +0000 @@ -0,0 +1,84 @@ +#include +#include "Combine.h" + +#include +#include + +#include +#include + +using std::vector; +using std::copy; +using std::accumulate; + +namespace jags { + namespace bugs { + + Combine::Combine () + : VectorFunction ("c", 0) + { + } + + void Combine::evaluate (double *value, + vector const &args, + vector const &lengths) const + { + for (unsigned int i = 0; i < args.size(); ++i) { + value = copy(args[i], args[i] + lengths[i], value); + } + } + + unsigned int Combine::length (vector const &lens, + vector const &vals) const + { + return accumulate(lens.begin(), lens.end(), 0U); + } + + bool Combine::isDiscreteValued(vector const &mask) const + { + return allTrue(mask); + } + + bool Combine::isAdditive(vector const &mask, + vector const &fixed) const + { + //The Combine function behaves like an aggregate node + //and so has the same rules for preserving additive functions + //i.e. only one argument may be additive. + bool found = false; + for (unsigned int i = 0; i < mask.size(); ++i) { + if (mask[i]) { + if (found) return false; + else found = true; + } + if (!fixed.empty() && !fixed[i]) { + return false; + } + } + return found; + } + + bool Combine::isScale(vector const &mask, + vector const &fixed) const + { + //The Combine function behaves like an aggregate node + //and so has the same rules for preserving scale functions + return allTrue(mask); + } + + bool Combine::isLinear(vector const &mask, + vector const &fixed) const + { + //The Combine function behaves like an aggregate node + //and so has the same rules for preserving linear functions + return true; + } + + bool Combine::checkParameterLength(vector const &args) + const + { + return true; + } + } + +} diff -Nru jags-3.4.0/src/modules/bugs/functions/Combine.h jags-4.0.0/src/modules/bugs/functions/Combine.h --- jags-3.4.0/src/modules/bugs/functions/Combine.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Combine.h 2015-07-03 05:48:37.000000000 +0000 @@ -0,0 +1,41 @@ +#ifndef FUNC_COMBINE_H_ +#define FUNC_COMBINE_H_ + +#include + +namespace jags { + namespace bugs { + + /** + * @short Combine values into a vector + * + * Concatenates all arguments into a single vector + *
+	 * y <- c(x[],y, z[,])
+	 * 
+ */ + class Combine : public VectorFunction + { + public: + Combine (); + void evaluate(double *value, + std::vector const &args, + std::vector const &lengths) const; + unsigned int + length(std::vector const &parlengths, + std::vector const &parvalues) const; + bool isDiscreteValued(std::vector const &mask) const; + bool isAdditive(std::vector const &mask, + std::vector const &isfixed) const; + bool isScale(std::vector const &mask, + std::vector const &isfixed) const; + bool isLinear(std::vector const &mask, + std::vector const &isfixed) const; + bool checkParameterLength(std::vector const &args) + const; + }; + + } +} + +#endif /* FUNC_COMBINE_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Cos.cc jags-4.0.0/src/modules/bugs/functions/Cos.cc --- jags-3.4.0/src/modules/bugs/functions/Cos.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Cos.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; using std::cos; +namespace jags { namespace bugs { Cos::Cos () @@ -18,4 +19,4 @@ return cos(*args[0]); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Cos.h jags-4.0.0/src/modules/bugs/functions/Cos.h --- jags-3.4.0/src/modules/bugs/functions/Cos.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Cos.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -19,6 +20,6 @@ double evaluate(std::vector const &args) const; }; -} +}} #endif /* FUNC_COS_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Cosh.cc jags-4.0.0/src/modules/bugs/functions/Cosh.cc --- jags-3.4.0/src/modules/bugs/functions/Cosh.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Cosh.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; using std::cosh; +namespace jags { namespace bugs { Cosh::Cosh () @@ -18,4 +19,4 @@ return cosh(*args[0]); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Cosh.h jags-4.0.0/src/modules/bugs/functions/Cosh.h --- jags-3.4.0/src/modules/bugs/functions/Cosh.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Cosh.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -19,6 +20,6 @@ double evaluate(std::vector const &args) const; }; -} +}} #endif /* FUNC_COSH_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/DFunction.cc jags-4.0.0/src/modules/bugs/functions/DFunction.cc --- jags-3.4.0/src/modules/bugs/functions/DFunction.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/DFunction.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -#include -#include "RScalarDist.h" -#include "DFunction.h" - -using std::vector; -using std::string; - -namespace bugs { - - DFunction::DFunction(RScalarDist const *dist) - : DPQFunction(dist->name(), dist) - {} - - double DFunction::evaluate(vector const &args) const - { - double x = *args[0]; - vector param(args.size() - 1); - for (unsigned int i = 1; i < args.size(); ++i) { - param[i-1] = args[i]; - } - - return dist()->d(x, PDF_FULL, param, false); - } - - bool - DFunction::checkParameterValue(vector const &args) const - { - if (dist()->discrete()) { - double x = *args[0]; - if (x != static_cast(x)) - return false; - } - - return checkArgs(args); - } -} diff -Nru jags-3.4.0/src/modules/bugs/functions/DFunction.h jags-4.0.0/src/modules/bugs/functions/DFunction.h --- jags-3.4.0/src/modules/bugs/functions/DFunction.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/DFunction.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#ifndef D_FUNCTION_H_ -#define D_FUNCTION_H_ - -#include "DPQFunction.h" - -namespace bugs { - - class DFunction : public DPQFunction - { - public: - DFunction(RScalarDist const *dist); - bool checkParameterValue(std::vector const &args) const; - double evaluate(std::vector const &args) const; - }; - -} - -#endif /* D_FUNCTION_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/DIntervalFunc.cc jags-4.0.0/src/modules/bugs/functions/DIntervalFunc.cc --- jags-3.4.0/src/modules/bugs/functions/DIntervalFunc.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/DIntervalFunc.cc 2015-09-10 05:42:23.000000000 +0000 @@ -7,33 +7,29 @@ #define T(args) (*args[0]) #define CUTPOINTS(args) (args[1]) -static unsigned int value(vector const &args, unsigned int ncut) -{ - double t = T(args); - for (unsigned int i = 0; i < ncut; ++i) { - if (t <= CUTPOINTS(args)[i]) - return i; - } - return ncut; -} - +namespace jags { namespace bugs { - DIntervalFunc::DIntervalFunc () : VectorFunction ("dinterval", 2) + DIntervalFunc::DIntervalFunc () : ScalarVectorFunction ("dinterval", 2) { } - void - DIntervalFunc::evaluate(double *x, vector const &args, - vector const &lengths) const + double DIntervalFunc::scalarEval(vector const &args, + vector const &lengths) const { - *x = value(args, lengths[1]); + unsigned int ncut = lengths[1]; + double t = T(args); + for (unsigned int i = 0; i < ncut; ++i) { + if (t <= CUTPOINTS(args)[i]) + return i; + } + return ncut; } bool DIntervalFunc::checkParameterLength (vector const &args) const { - return args[0] == 1; + return args[0] == 1 && args[1] >= 1; } bool DIntervalFunc::isDiscreteValued(vector const &mask) const @@ -41,4 +37,4 @@ return true; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/DIntervalFunc.h jags-4.0.0/src/modules/bugs/functions/DIntervalFunc.h --- jags-3.4.0/src/modules/bugs/functions/DIntervalFunc.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/DIntervalFunc.h 2015-09-10 05:42:23.000000000 +0000 @@ -1,24 +1,24 @@ #ifndef FUNC_DINTERVAL_H_ #define FUNC_DINTERVAL_H_ -#include +#include +namespace jags { namespace bugs { /** * @short Function version of dinterval distribution */ - class DIntervalFunc: public VectorFunction + class DIntervalFunc: public ScalarVectorFunction { public: DIntervalFunc (); - void evaluate (double *value, - std::vector const &args, - std::vector const &lengths) const; + double scalarEval (std::vector const &args, + std::vector const &lengths) const; bool checkParameterLength (std::vector const &args) const; bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* FUNC_DINTERVAL_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/DPQFunction.cc jags-4.0.0/src/modules/bugs/functions/DPQFunction.cc --- jags-3.4.0/src/modules/bugs/functions/DPQFunction.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/DPQFunction.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ -#include -#include "DPQFunction.h" -#include "RScalarDist.h" - -using std::vector; -using std::string; - -namespace bugs { - - DPQFunction::DPQFunction(string const &name, RScalarDist const *dist) - : ScalarFunction(name, dist->npar() + 1), _dist(dist) - {} - - RScalarDist const *DPQFunction::dist() const - { - return _dist; - } - - bool DPQFunction::checkArgs(vector const &args) const - { - vector param(_dist->npar()); - for (unsigned int i = 0; i < param.size(); ++i) { - param[i] = args[i+1]; - } - - return _dist->checkParameterValue(param); - } -} diff -Nru jags-3.4.0/src/modules/bugs/functions/DPQFunction.h jags-4.0.0/src/modules/bugs/functions/DPQFunction.h --- jags-3.4.0/src/modules/bugs/functions/DPQFunction.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/DPQFunction.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ -#ifndef DPQ_FUNCTION_H_ -#define DPQ_FUNCTION_H_ - -#include - -namespace bugs { - - class RScalarDist; - - class DPQFunction : public ScalarFunction - { - RScalarDist const *_dist; - public: - DPQFunction(std::string const &name, RScalarDist const *dist); - /** - * Returns the distribution from which the function derives its - * value - */ - RScalarDist const *dist() const; - /** - * Strips off the first argument and then checks that the remaining - * arguments are valid parameters for the distribution - */ - bool checkArgs(std::vector const &args) const; - }; - -} - -#endif /* DPQ_FUNCTION_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/DRoundFunc.cc jags-4.0.0/src/modules/bugs/functions/DRoundFunc.cc --- jags-3.4.0/src/modules/bugs/functions/DRoundFunc.cc 2013-02-04 15:06:20.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/DRoundFunc.cc 2015-02-22 08:33:05.000000000 +0000 @@ -7,6 +7,7 @@ #define T(args) (*args[0]) #define NDIGITS(args) (*args[1]) +namespace jags { namespace bugs { DRoundFunc::DRoundFunc () : ScalarFunction ("dround", 2) @@ -18,4 +19,4 @@ return(fround(T(args), NDIGITS(args))); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/DRoundFunc.h jags-4.0.0/src/modules/bugs/functions/DRoundFunc.h --- jags-3.4.0/src/modules/bugs/functions/DRoundFunc.h 2011-11-14 08:22:13.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/DRoundFunc.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -15,6 +16,6 @@ double evaluate (std::vector const &args) const; }; -} +}} #endif /* FUNC_DROUND_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/DSumFunc.cc jags-4.0.0/src/modules/bugs/functions/DSumFunc.cc --- jags-3.4.0/src/modules/bugs/functions/DSumFunc.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/DSumFunc.cc 2015-02-22 08:33:05.000000000 +0000 @@ -1,10 +1,12 @@ #include #include #include +#include #include "DSumFunc.h" using std::vector; +namespace jags { namespace bugs { DSumFunc::DSumFunc() @@ -33,17 +35,31 @@ bool DSumFunc::checkParameterDim(vector > const &dims) const { - for (unsigned int i = 1; i < dims.size(); ++i) { - if (dims[i] != dims[0]) - return false; + if (dims.empty()) return false; + if (isFlat(dims[0])) return false; + for (unsigned int j = 1; j < dims.size(); ++j) { + if (dims[j] != dims[0]) return false; } return true; } vector - DSumFunc::dim(vector > const &dims) const + DSumFunc::dim(vector > const &dims, + vector const &values) const { return dims[0]; } -} + bool DSumFunc::isLinear(vector const &mask, + vector const &fixed) const + { + return true; + } + + bool DSumFunc::isScale(vector const &mask, + vector const &fixed) const + { + return allTrue(mask); + } + +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/DSumFunc.h jags-4.0.0/src/modules/bugs/functions/DSumFunc.h --- jags-3.4.0/src/modules/bugs/functions/DSumFunc.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/DSumFunc.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -18,10 +19,15 @@ bool checkParameterDim(std::vector > const &dims) const; std::vector - dim(std::vector > const &dims) const; + dim(std::vector > const &dims, + std::vector const &values) const; bool isDiscreteValued(std::vector const &mask) const; + bool isLinear(std::vector const &mask, + std::vector const &fixed) const; + bool isScale(std::vector const &mask, + std::vector const &fixed) const; }; -} +}} #endif /* DSUM_FUNC_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Equals.cc jags-4.0.0/src/modules/bugs/functions/Equals.cc --- jags-3.4.0/src/modules/bugs/functions/Equals.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Equals.cc 2015-02-22 08:33:05.000000000 +0000 @@ -7,6 +7,7 @@ using std::vector; using std::fabs; +namespace jags { namespace bugs { Equals::Equals () : ScalarFunction ("equals",2) @@ -23,4 +24,4 @@ return true; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Equals.h jags-4.0.0/src/modules/bugs/functions/Equals.h --- jags-3.4.0/src/modules/bugs/functions/Equals.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Equals.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -22,6 +23,6 @@ bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* FUNC_EQUALS_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Exp.cc jags-4.0.0/src/modules/bugs/functions/Exp.cc --- jags-3.4.0/src/modules/bugs/functions/Exp.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Exp.cc 2015-02-22 08:33:05.000000000 +0000 @@ -7,6 +7,7 @@ using std::exp; using std::log; +namespace jags { namespace bugs { Exp::Exp () @@ -29,4 +30,4 @@ return exp(eta); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Exp.h jags-4.0.0/src/modules/bugs/functions/Exp.h --- jags-3.4.0/src/modules/bugs/functions/Exp.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Exp.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -21,6 +22,6 @@ double grad(double eta) const; }; -} +}} #endif /* FUNC_EXP_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/ICLogLog.cc jags-4.0.0/src/modules/bugs/functions/ICLogLog.cc --- jags-3.4.0/src/modules/bugs/functions/ICLogLog.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/ICLogLog.cc 2015-02-22 08:33:05.000000000 +0000 @@ -7,6 +7,7 @@ using std::log; using std::exp; +namespace jags { namespace bugs { ICLogLog::ICLogLog(): LinkFunction("icloglog", "cloglog") @@ -27,5 +28,4 @@ { return exp(eta) * exp(-exp(eta)); } - -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/ICLogLog.h jags-4.0.0/src/modules/bugs/functions/ICLogLog.h --- jags-3.4.0/src/modules/bugs/functions/ICLogLog.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/ICLogLog.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -22,6 +23,6 @@ double grad(double eta) const; }; -} +}} #endif /* FUNC_ICLOGLOG_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/IfElse.cc jags-4.0.0/src/modules/bugs/functions/IfElse.cc --- jags-3.4.0/src/modules/bugs/functions/IfElse.cc 2012-04-18 16:25:38.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/IfElse.cc 2015-07-03 20:54:08.000000000 +0000 @@ -3,6 +3,7 @@ using std::vector; +namespace jags { namespace bugs { IfElse::IfElse () : ScalarFunction("ifelse", 3) @@ -19,4 +20,55 @@ return mask[1] && mask[2]; } -} + bool IfElse::isScale(vector const &mask, + vector const &fixed) const + { + //Don't even bother with the case where the predicate is a + //scale function. False negatives are allowed and this is a + //silly case + if (mask[0]) return false; + + if (fixed.empty()) { + //result is a scale function if both arguments are + return mask[1] && mask[2]; + } + else { + //..but is never a fixed scale function + return false; + } + } + + bool IfElse::isLinear(vector const &mask, + vector const &fixed) const + { + if (mask[0]) return false; + + if (fixed.empty()) { + //result is a linear function if either argument is + return mask[1] || mask[2]; + } + else { + //..but is never a fixed scale function + return false; + } + } + + bool IfElse::isAdditive(vector const &mask, + vector const &fixed) const + { + if (mask[0]) return false; + + if (fixed.empty()) { + //result is an addtive function if both arguments are + return mask[1] && mask[2]; + } + else { + //..but it is never fixed + return false; + } + + } + + + +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/IfElse.h jags-4.0.0/src/modules/bugs/functions/IfElse.h --- jags-3.4.0/src/modules/bugs/functions/IfElse.h 2012-04-18 16:25:46.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/IfElse.h 2015-07-03 20:49:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -22,8 +23,14 @@ IfElse (); double evaluate(std::vector const &args) const; bool isDiscreteValued(std::vector const &mask) const; + bool isAdditive(std::vector const &mask, + std::vector const &fixed) const; + bool isScale(std::vector const &mask, + std::vector const &fixed) const; + bool isLinear(std::vector const &mask, + std::vector const &fixed) const; }; -} +}} #endif /* IF_ELSE_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/ILogit.cc jags-4.0.0/src/modules/bugs/functions/ILogit.cc --- jags-3.4.0/src/modules/bugs/functions/ILogit.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/ILogit.cc 2015-02-22 08:33:05.000000000 +0000 @@ -8,6 +8,7 @@ using std::exp; using std::log; +namespace jags { namespace bugs { ILogit::ILogit () @@ -31,4 +32,4 @@ return exp(eta) / (opexp * opexp); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/ILogit.h jags-4.0.0/src/modules/bugs/functions/ILogit.h --- jags-3.4.0/src/modules/bugs/functions/ILogit.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/ILogit.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -23,6 +24,6 @@ double grad(double eta) const; }; -} +}} #endif /* FUNC_ILOGIT_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/InProd.cc jags-4.0.0/src/modules/bugs/functions/InProd.cc --- jags-3.4.0/src/modules/bugs/functions/InProd.cc 2012-03-02 14:51:45.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/InProd.cc 2015-09-10 05:42:23.000000000 +0000 @@ -6,23 +6,24 @@ using std::vector; +namespace jags { namespace bugs { - InProd::InProd () : VectorFunction ("inprod", 2) + InProd::InProd () : ScalarVectorFunction ("inprod", 2) { } - void InProd::evaluate(double *x, vector const &args, - vector const &lengths) const + double InProd::scalarEval(vector const &args, + vector const &lengths) const { int one = 1, N = lengths[0]; - *x = F77_DDOT(&N, args[0], &one, args[1], &one); + return F77_DDOT(&N, args[0], &one, args[1], &one); } bool InProd::checkParameterLength (vector const &lengths) const { - return (lengths[0] == lengths[1]); + return (lengths[0] > 0) && (lengths[0] == lengths[1]); } bool InProd::isDiscreteValued(vector const &mask) const @@ -44,4 +45,5 @@ return (mask[0] || fix[0]) && (mask[1] || fix[1]); } } -} + +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/InProd.h jags-4.0.0/src/modules/bugs/functions/InProd.h --- jags-3.4.0/src/modules/bugs/functions/InProd.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/InProd.h 2015-09-10 05:42:23.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef FUNC_INPROD_H_ #define FUNC_INPROD_H_ -#include +#include +namespace jags { namespace bugs { /** @@ -13,12 +14,12 @@ * y <- inprod(a[],b[]) * */ - class InProd : public VectorFunction + class InProd : public ScalarVectorFunction { public: InProd (); - void evaluate(double *value, std::vector const &args, - std::vector const &lengths) const; + double scalarEval(std::vector const &args, + std::vector const &lengths) const; bool checkParameterLength (std::vector const &len) const; bool isDiscreteValued(std::vector const &mask) const; bool isScale(std::vector const &mask, @@ -27,6 +28,6 @@ std::vector const &fix) const; }; -} +}} #endif /* FUNC_INPROD_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/InterpLin.cc jags-4.0.0/src/modules/bugs/functions/InterpLin.cc --- jags-3.4.0/src/modules/bugs/functions/InterpLin.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/InterpLin.cc 2015-09-10 05:42:23.000000000 +0000 @@ -6,13 +6,14 @@ using std::vector; +namespace jags { namespace bugs { - InterpLin::InterpLin() : VectorFunction("interp.lin", 3) + InterpLin::InterpLin() : ScalarVectorFunction("interp.lin", 3) {} - void InterpLin::evaluate(double *value, vector const &args, - vector const &lengths) const + double InterpLin::scalarEval(vector const &args, + vector const &lengths) const { double const *x = args[1]; double const *y = args[2]; @@ -20,9 +21,9 @@ unsigned int N = lengths[1]; if (xnew < x[0]) - value[0] = y[0]; + return y[0]; else if (xnew >= x[N-1]) - value[0] = y[N-1]; + return y[N-1]; else { unsigned int i = 0; for (; i < N-1; ++i) { @@ -33,10 +34,10 @@ if (i == N-1) { /* This shouldn't happen, but we must guard against an attempt to access an illegal element of x or y */ - value[0] = JAGS_NAN; + return JAGS_NAN; } else { - value[0] = y[i] + + return y[i] + (xnew - x[i]) * (y[i+1] - y[i]) / (x[i+1] - x[i]); } } @@ -45,7 +46,7 @@ bool InterpLin::checkParameterLength(vector const &lengths) const { - return (lengths[0] == 1) && (lengths[1] == lengths[2]); + return lengths[0] == 1 && lengths[1] != 0 && lengths[2] == lengths[1]; } bool @@ -54,13 +55,10 @@ { unsigned int N = lengths[1]; for (unsigned int i = 1; i < N; ++i) { - if (args[1][i] < args[1][i-1]) + if (args[1][i] <= args[1][i-1]) return false; } - if (args[0][0] < args[1][0] || args[0][0] > args[1][N-1]) - return false; - return true; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/InterpLin.h jags-4.0.0/src/modules/bugs/functions/InterpLin.h --- jags-3.4.0/src/modules/bugs/functions/InterpLin.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/InterpLin.h 2015-09-10 05:42:23.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef FUNC_INTERP_LIN_H_ #define FUNC_INTERP_LIN_H_ -#include +#include +namespace jags { namespace bugs { /** @@ -11,18 +12,18 @@ * y <- interp.lin(e,v1,v2) * */ - class InterpLin : public VectorFunction + class InterpLin : public ScalarVectorFunction { public: InterpLin (); - void evaluate(double *value, std::vector const &args, - std::vector const &lengths) const; + double scalarEval(std::vector const &args, + std::vector const &lengths) const; bool checkParameterLength(std::vector const &len) const; bool checkParameterValue(std::vector const &args, std::vector const &lengths) const; }; -} +}} #endif /* FUNC_INTERP_LIN_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Inverse.cc jags-4.0.0/src/modules/bugs/functions/Inverse.cc --- jags-3.4.0/src/modules/bugs/functions/Inverse.cc 2012-01-25 09:02:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Inverse.cc 2015-02-22 08:33:05.000000000 +0000 @@ -5,6 +5,7 @@ using std::vector; +namespace jags { namespace bugs { Inverse::Inverse (): ArrayFunction ("inverse", 1) @@ -32,9 +33,10 @@ } vector - Inverse::dim (vector > const &dims) const + Inverse::dim (vector > const &dims, + vector const &values) const { return dims[0]; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Inverse.h jags-4.0.0/src/modules/bugs/functions/Inverse.h --- jags-3.4.0/src/modules/bugs/functions/Inverse.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Inverse.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -19,12 +20,13 @@ std::vector > const &dims) const; std::vector - dim(std::vector > const &args) const; + dim(std::vector > const &args, + std::vector const &values) const; bool checkParameterDim(std::vector > const &dims) const; bool checkParameterValue(std::vector const &args, std::vector > const &dims) const; }; -} +}} #endif /* INVERSE_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Log.cc jags-4.0.0/src/modules/bugs/functions/Log.cc --- jags-3.4.0/src/modules/bugs/functions/Log.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Log.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; using std::log; +namespace jags { namespace bugs { Log::Log () @@ -18,9 +19,9 @@ return log(*args[0]); } - bool Log::checkScalarValue(vector const &args) const + bool Log::checkParameterValue(vector const &args) const { return *args[0] >= 0; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/LogDet.cc jags-4.0.0/src/modules/bugs/functions/LogDet.cc --- jags-3.4.0/src/modules/bugs/functions/LogDet.cc 2012-01-25 09:03:09.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/LogDet.cc 2015-02-22 08:33:05.000000000 +0000 @@ -8,6 +8,7 @@ using std::vector; +namespace jags { namespace bugs { LogDet::LogDet () @@ -28,7 +29,8 @@ } vector - LogDet::dim(vector > const &dims) const + LogDet::dim(vector > const &dims, + vector const &values) const { return vector(1,1); } @@ -41,5 +43,4 @@ return check_symmetry(args[0], dims[0][0]); } -} - +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/LogDet.h jags-4.0.0/src/modules/bugs/functions/LogDet.h --- jags-3.4.0/src/modules/bugs/functions/LogDet.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/LogDet.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -24,11 +25,12 @@ const; bool checkParameterDim(std::vector > const &dims) const; std::vector - dim(std::vector > const &dims) const; + dim(std::vector > const &dims, + std::vector const &values) const; bool checkParameterValue(std::vector const &args, std::vector > const &dims) const; }; -} +}} #endif /* LOG_DET_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/LogFact.cc jags-4.0.0/src/modules/bugs/functions/LogFact.cc --- jags-3.4.0/src/modules/bugs/functions/LogFact.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/LogFact.cc 2015-02-22 08:33:05.000000000 +0000 @@ -5,6 +5,7 @@ using std::vector; +namespace jags { namespace bugs { LogFact::LogFact () @@ -17,9 +18,9 @@ return lgammafn(*args[0] + 1); } - bool LogFact::checkScalarValue(vector const &args) const + bool LogFact::checkParameterValue(vector const &args) const { return *args[0] > -1; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/LogFact.h jags-4.0.0/src/modules/bugs/functions/LogFact.h --- jags-3.4.0/src/modules/bugs/functions/LogFact.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/LogFact.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -19,9 +20,9 @@ public: LogFact (); double evaluate(std::vector const &args) const; - bool checkScalarValue(std::vector const &args) const; + bool checkParameterValue(std::vector const &args) const; }; -} +}} #endif /* FUNC_LOGFACT_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/LogGam.cc jags-4.0.0/src/modules/bugs/functions/LogGam.cc --- jags-3.4.0/src/modules/bugs/functions/LogGam.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/LogGam.cc 2015-02-22 08:33:05.000000000 +0000 @@ -5,6 +5,7 @@ using std::vector; +namespace jags { namespace bugs { LogGam::LogGam () @@ -17,9 +18,9 @@ return lgammafn (*args[0]); } - bool LogGam::checkScalarValue(vector const &args) const + bool LogGam::checkParameterValue(vector const &args) const { return *args[0] > 0; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/LogGam.h jags-4.0.0/src/modules/bugs/functions/LogGam.h --- jags-3.4.0/src/modules/bugs/functions/LogGam.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/LogGam.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -17,9 +18,9 @@ public: LogGam (); double evaluate(std::vector const &args) const; - bool checkScalarValue(std::vector const &args) const; + bool checkParameterValue(std::vector const &args) const; }; -} +}} #endif /* FUNC_LOGGAM_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Log.h jags-4.0.0/src/modules/bugs/functions/Log.h --- jags-3.4.0/src/modules/bugs/functions/Log.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Log.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -18,9 +19,9 @@ public: Log (); double evaluate(std::vector const &args) const; - bool checkScalarValue(std::vector const &args) const; + bool checkParameterValue(std::vector const &args) const; }; -} +}} #endif /* FUNC_LOG_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Logit.cc jags-4.0.0/src/modules/bugs/functions/Logit.cc --- jags-3.4.0/src/modules/bugs/functions/Logit.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Logit.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; using std::log; +namespace jags { namespace bugs { Logit::Logit ():ScalarFunction ("logit", 1) @@ -18,10 +19,10 @@ return log(arg) - log(1 - arg); } - bool Logit::checkScalarValue (vector const &args) const + bool Logit::checkParameterValue (vector const &args) const { double arg = *args[0]; return (arg >= 0 && arg <= 1); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Logit.h jags-4.0.0/src/modules/bugs/functions/Logit.h --- jags-3.4.0/src/modules/bugs/functions/Logit.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Logit.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -18,9 +19,9 @@ public: Logit(); double evaluate(std::vector const &args) const; - bool checkScalarValue(std::vector const &args) const; + bool checkParameterValue(std::vector const &args) const; }; -} +}} #endif /* FUNC_LOGIT_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Makefile.am jags-4.0.0/src/modules/bugs/functions/Makefile.am --- jags-3.4.0/src/modules/bugs/functions/Makefile.am 2013-02-25 11:36:50.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Makefile.am 2015-09-27 10:18:59.000000000 +0000 @@ -1,25 +1,31 @@ -noinst_LTLIBRARIES = bugsfunc.la +noinst_LTLIBRARIES = libbugsfunc.la -bugsfunc_la_CPPFLAGS = -I$(top_srcdir)/src/include \ +libbugsfunc_la_CPPFLAGS = -I$(top_srcdir)/src/include \ -I$(top_srcdir)/src/modules/bugs/matrix \ -I$(top_srcdir)/src/modules/bugs/distributions -bugsfunc_la_LDFLAGS = -no-undefined -module -avoid-version +libbugsfunc_la_LDFLAGS = -no-undefined -module -avoid-version -bugsfunc_la_SOURCES = Max.cc Probit.cc InProd.cc Mean.cc SD.cc \ +libbugsfunc_la_SOURCES = Max.cc Probit.cc InProd.cc Mean.cc SD.cc \ ICLogLog.cc Min.cc Sqrt.cc CLogLog.cc ILogit.cc Step.cc Log.cc Sum.cc \ Exp.cc LogFact.cc LogGam.cc Phi.cc Logit.cc Inverse.cc LogDet.cc \ Sort.cc Rank.cc Abs.cc Cos.cc Sin.cc Tan.cc Cosh.cc Sinh.cc Tanh.cc \ ArcCos.cc ArcSin.cc ArcTan.cc ArcCosh.cc ArcSinh.cc ArcTanh.cc \ -InterpLin.cc Round.cc Trunc.cc Equals.cc Prod.cc MatMult.cc \ -Transpose.cc DSumFunc.cc DIntervalFunc.cc DPQFunction.cc DFunction.cc \ -PFunction.cc QFunction.cc DRoundFunc.cc IfElse.cc Order.cc - -noinst_HEADERS = LogGam.h Phi.h Sum.h Log.h Logit.h Probit.h CLogLog.h \ -InProd.h Max.h SD.h ICLogLog.h Mean.h Sqrt.h ILogit.h Min.h Step.h \ -Exp.h LogFact.h Inverse.h LogDet.h Sort.h Rank.h Abs.h Cos.h Sin.h \ -Tan.h Cosh.h Sinh.h Tanh.h ArcCos.h ArcSin.h ArcTan.h ArcCosh.h \ -ArcSinh.h ArcTanh.h InterpLin.h Round.h Trunc.h Equals.h Prod.h \ -MatMult.h Transpose.h DSumFunc.h DIntervalFunc.h \ -DPQFunction.h DFunction.h PFunction.h QFunction.h DRoundFunc.h IfElse.h \ -Order.h +InterpLin.cc Round.cc Trunc.cc Equals.cc Prod.cc MatMult.cc \ +Transpose.cc DSumFunc.cc DIntervalFunc.cc DRoundFunc.cc IfElse.cc \ +Order.cc Combine.cc Rep.cc + +noinst_HEADERS = LogGam.h Phi.h Sum.h Log.h Logit.h Probit.h \ +CLogLog.h InProd.h Max.h SD.h ICLogLog.h Mean.h Sqrt.h ILogit.h Min.h \ +Step.h Exp.h LogFact.h Inverse.h LogDet.h Sort.h Rank.h Abs.h Cos.h \ +Sin.h Tan.h Cosh.h Sinh.h Tanh.h ArcCos.h ArcSin.h ArcTan.h ArcCosh.h \ +ArcSinh.h ArcTanh.h InterpLin.h Round.h Trunc.h Equals.h Prod.h \ +MatMult.h Transpose.h DSumFunc.h DIntervalFunc.h DRoundFunc.h \ +IfElse.h Order.h Combine.h Rep.h + +### Test library + +check_LTLIBRARIES = libbugsfuntest.la +libbugsfuntest_la_SOURCES = testbugsfun.cc testbugsfun.h +libbugsfuntest_la_CPPFLAGS = -I$(top_srcdir)/src/include +libbugsfuntest_la_CXXFLAGS = $(CPPUNIT_CFLAGS) diff -Nru jags-3.4.0/src/modules/bugs/functions/Makefile.in jags-4.0.0/src/modules/bugs/functions/Makefile.in --- jags-3.4.0/src/modules/bugs/functions/Makefile.in 2013-08-30 13:23:28.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/bugs/functions -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,64 +99,139 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) -bugsfunc_la_LIBADD = -am_bugsfunc_la_OBJECTS = bugsfunc_la-Max.lo bugsfunc_la-Probit.lo \ - bugsfunc_la-InProd.lo bugsfunc_la-Mean.lo bugsfunc_la-SD.lo \ - bugsfunc_la-ICLogLog.lo bugsfunc_la-Min.lo bugsfunc_la-Sqrt.lo \ - bugsfunc_la-CLogLog.lo bugsfunc_la-ILogit.lo \ - bugsfunc_la-Step.lo bugsfunc_la-Log.lo bugsfunc_la-Sum.lo \ - bugsfunc_la-Exp.lo bugsfunc_la-LogFact.lo \ - bugsfunc_la-LogGam.lo bugsfunc_la-Phi.lo bugsfunc_la-Logit.lo \ - bugsfunc_la-Inverse.lo bugsfunc_la-LogDet.lo \ - bugsfunc_la-Sort.lo bugsfunc_la-Rank.lo bugsfunc_la-Abs.lo \ - bugsfunc_la-Cos.lo bugsfunc_la-Sin.lo bugsfunc_la-Tan.lo \ - bugsfunc_la-Cosh.lo bugsfunc_la-Sinh.lo bugsfunc_la-Tanh.lo \ - bugsfunc_la-ArcCos.lo bugsfunc_la-ArcSin.lo \ - bugsfunc_la-ArcTan.lo bugsfunc_la-ArcCosh.lo \ - bugsfunc_la-ArcSinh.lo bugsfunc_la-ArcTanh.lo \ - bugsfunc_la-InterpLin.lo bugsfunc_la-Round.lo \ - bugsfunc_la-Trunc.lo bugsfunc_la-Equals.lo bugsfunc_la-Prod.lo \ - bugsfunc_la-MatMult.lo bugsfunc_la-Transpose.lo \ - bugsfunc_la-DSumFunc.lo bugsfunc_la-DIntervalFunc.lo \ - bugsfunc_la-DPQFunction.lo bugsfunc_la-DFunction.lo \ - bugsfunc_la-PFunction.lo bugsfunc_la-QFunction.lo \ - bugsfunc_la-DRoundFunc.lo bugsfunc_la-IfElse.lo \ - bugsfunc_la-Order.lo -bugsfunc_la_OBJECTS = $(am_bugsfunc_la_OBJECTS) -bugsfunc_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ - $(CXXFLAGS) $(bugsfunc_la_LDFLAGS) $(LDFLAGS) -o $@ +libbugsfunc_la_LIBADD = +am_libbugsfunc_la_OBJECTS = libbugsfunc_la-Max.lo \ + libbugsfunc_la-Probit.lo libbugsfunc_la-InProd.lo \ + libbugsfunc_la-Mean.lo libbugsfunc_la-SD.lo \ + libbugsfunc_la-ICLogLog.lo libbugsfunc_la-Min.lo \ + libbugsfunc_la-Sqrt.lo libbugsfunc_la-CLogLog.lo \ + libbugsfunc_la-ILogit.lo libbugsfunc_la-Step.lo \ + libbugsfunc_la-Log.lo libbugsfunc_la-Sum.lo \ + libbugsfunc_la-Exp.lo libbugsfunc_la-LogFact.lo \ + libbugsfunc_la-LogGam.lo libbugsfunc_la-Phi.lo \ + libbugsfunc_la-Logit.lo libbugsfunc_la-Inverse.lo \ + libbugsfunc_la-LogDet.lo libbugsfunc_la-Sort.lo \ + libbugsfunc_la-Rank.lo libbugsfunc_la-Abs.lo \ + libbugsfunc_la-Cos.lo libbugsfunc_la-Sin.lo \ + libbugsfunc_la-Tan.lo libbugsfunc_la-Cosh.lo \ + libbugsfunc_la-Sinh.lo libbugsfunc_la-Tanh.lo \ + libbugsfunc_la-ArcCos.lo libbugsfunc_la-ArcSin.lo \ + libbugsfunc_la-ArcTan.lo libbugsfunc_la-ArcCosh.lo \ + libbugsfunc_la-ArcSinh.lo libbugsfunc_la-ArcTanh.lo \ + libbugsfunc_la-InterpLin.lo libbugsfunc_la-Round.lo \ + libbugsfunc_la-Trunc.lo libbugsfunc_la-Equals.lo \ + libbugsfunc_la-Prod.lo libbugsfunc_la-MatMult.lo \ + libbugsfunc_la-Transpose.lo libbugsfunc_la-DSumFunc.lo \ + libbugsfunc_la-DIntervalFunc.lo libbugsfunc_la-DRoundFunc.lo \ + libbugsfunc_la-IfElse.lo libbugsfunc_la-Order.lo \ + libbugsfunc_la-Combine.lo libbugsfunc_la-Rep.lo +libbugsfunc_la_OBJECTS = $(am_libbugsfunc_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libbugsfunc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ + $(AM_CXXFLAGS) $(CXXFLAGS) $(libbugsfunc_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +libbugsfuntest_la_LIBADD = +am_libbugsfuntest_la_OBJECTS = libbugsfuntest_la-testbugsfun.lo +libbugsfuntest_la_OBJECTS = $(am_libbugsfuntest_la_OBJECTS) +libbugsfuntest_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ + $(libbugsfuntest_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(bugsfunc_la_SOURCES) -DIST_SOURCES = $(bugsfunc_la_SOURCES) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libbugsfunc_la_SOURCES) $(libbugsfuntest_la_SOURCES) +DIST_SOURCES = $(libbugsfunc_la_SOURCES) $(libbugsfuntest_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -135,6 +245,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -204,10 +317,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -273,30 +382,35 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -noinst_LTLIBRARIES = bugsfunc.la -bugsfunc_la_CPPFLAGS = -I$(top_srcdir)/src/include \ +noinst_LTLIBRARIES = libbugsfunc.la +libbugsfunc_la_CPPFLAGS = -I$(top_srcdir)/src/include \ -I$(top_srcdir)/src/modules/bugs/matrix \ -I$(top_srcdir)/src/modules/bugs/distributions -bugsfunc_la_LDFLAGS = -no-undefined -module -avoid-version -bugsfunc_la_SOURCES = Max.cc Probit.cc InProd.cc Mean.cc SD.cc \ +libbugsfunc_la_LDFLAGS = -no-undefined -module -avoid-version +libbugsfunc_la_SOURCES = Max.cc Probit.cc InProd.cc Mean.cc SD.cc \ ICLogLog.cc Min.cc Sqrt.cc CLogLog.cc ILogit.cc Step.cc Log.cc Sum.cc \ Exp.cc LogFact.cc LogGam.cc Phi.cc Logit.cc Inverse.cc LogDet.cc \ Sort.cc Rank.cc Abs.cc Cos.cc Sin.cc Tan.cc Cosh.cc Sinh.cc Tanh.cc \ ArcCos.cc ArcSin.cc ArcTan.cc ArcCosh.cc ArcSinh.cc ArcTanh.cc \ -InterpLin.cc Round.cc Trunc.cc Equals.cc Prod.cc MatMult.cc \ -Transpose.cc DSumFunc.cc DIntervalFunc.cc DPQFunction.cc DFunction.cc \ -PFunction.cc QFunction.cc DRoundFunc.cc IfElse.cc Order.cc - -noinst_HEADERS = LogGam.h Phi.h Sum.h Log.h Logit.h Probit.h CLogLog.h \ -InProd.h Max.h SD.h ICLogLog.h Mean.h Sqrt.h ILogit.h Min.h Step.h \ -Exp.h LogFact.h Inverse.h LogDet.h Sort.h Rank.h Abs.h Cos.h Sin.h \ -Tan.h Cosh.h Sinh.h Tanh.h ArcCos.h ArcSin.h ArcTan.h ArcCosh.h \ -ArcSinh.h ArcTanh.h InterpLin.h Round.h Trunc.h Equals.h Prod.h \ -MatMult.h Transpose.h DSumFunc.h DIntervalFunc.h \ -DPQFunction.h DFunction.h PFunction.h QFunction.h DRoundFunc.h IfElse.h \ -Order.h - +InterpLin.cc Round.cc Trunc.cc Equals.cc Prod.cc MatMult.cc \ +Transpose.cc DSumFunc.cc DIntervalFunc.cc DRoundFunc.cc IfElse.cc \ +Order.cc Combine.cc Rep.cc + +noinst_HEADERS = LogGam.h Phi.h Sum.h Log.h Logit.h Probit.h \ +CLogLog.h InProd.h Max.h SD.h ICLogLog.h Mean.h Sqrt.h ILogit.h Min.h \ +Step.h Exp.h LogFact.h Inverse.h LogDet.h Sort.h Rank.h Abs.h Cos.h \ +Sin.h Tan.h Cosh.h Sinh.h Tanh.h ArcCos.h ArcSin.h ArcTan.h ArcCosh.h \ +ArcSinh.h ArcTanh.h InterpLin.h Round.h Trunc.h Equals.h Prod.h \ +MatMult.h Transpose.h DSumFunc.h DIntervalFunc.h DRoundFunc.h \ +IfElse.h Order.h Combine.h Rep.h + + +### Test library +check_LTLIBRARIES = libbugsfuntest.la +libbugsfuntest_la_SOURCES = testbugsfun.cc testbugsfun.h +libbugsfuntest_la_CPPFLAGS = -I$(top_srcdir)/src/include +libbugsfuntest_la_CXXFLAGS = $(CPPUNIT_CFLAGS) all: all-am .SUFFIXES: @@ -313,7 +427,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/bugs/functions/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/bugs/functions/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -332,16 +445,33 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): +clean-checkLTLIBRARIES: + -test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES) + @list='$(check_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -bugsfunc.la: $(bugsfunc_la_OBJECTS) $(bugsfunc_la_DEPENDENCIES) $(EXTRA_bugsfunc_la_DEPENDENCIES) - $(bugsfunc_la_LINK) $(bugsfunc_la_OBJECTS) $(bugsfunc_la_LIBADD) $(LIBS) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libbugsfunc.la: $(libbugsfunc_la_OBJECTS) $(libbugsfunc_la_DEPENDENCIES) $(EXTRA_libbugsfunc_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libbugsfunc_la_LINK) $(libbugsfunc_la_OBJECTS) $(libbugsfunc_la_LIBADD) $(LIBS) + +libbugsfuntest.la: $(libbugsfuntest_la_OBJECTS) $(libbugsfuntest_la_DEPENDENCIES) $(EXTRA_libbugsfuntest_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libbugsfuntest_la_LINK) $(libbugsfuntest_la_OBJECTS) $(libbugsfuntest_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -349,435 +479,430 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Abs.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-ArcCos.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-ArcCosh.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-ArcSin.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-ArcSinh.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-ArcTan.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-ArcTanh.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-CLogLog.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Cos.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Cosh.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-DFunction.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-DIntervalFunc.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-DPQFunction.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-DRoundFunc.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-DSumFunc.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Equals.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Exp.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-ICLogLog.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-ILogit.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-IfElse.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-InProd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-InterpLin.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Inverse.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Log.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-LogDet.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-LogFact.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-LogGam.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Logit.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-MatMult.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Max.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Mean.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Min.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Order.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-PFunction.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Phi.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Probit.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Prod.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-QFunction.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Rank.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Round.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-SD.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Sin.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Sinh.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Sort.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Sqrt.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Step.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Sum.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Tan.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Tanh.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Transpose.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsfunc_la-Trunc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Abs.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-ArcCos.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-ArcCosh.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-ArcSin.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-ArcSinh.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-ArcTan.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-ArcTanh.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-CLogLog.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Combine.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Cos.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Cosh.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-DIntervalFunc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-DRoundFunc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-DSumFunc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Equals.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Exp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-ICLogLog.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-ILogit.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-IfElse.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-InProd.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-InterpLin.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Inverse.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Log.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-LogDet.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-LogFact.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-LogGam.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Logit.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-MatMult.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Max.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Mean.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Min.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Order.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Phi.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Probit.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Prod.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Rank.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Rep.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Round.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-SD.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Sin.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Sinh.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Sort.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Sqrt.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Step.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Sum.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Tan.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Tanh.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Transpose.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfunc_la-Trunc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsfuntest_la-testbugsfun.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< -bugsfunc_la-Max.lo: Max.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Max.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Max.Tpo -c -o bugsfunc_la-Max.lo `test -f 'Max.cc' || echo '$(srcdir)/'`Max.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Max.Tpo $(DEPDIR)/bugsfunc_la-Max.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Max.cc' object='bugsfunc_la-Max.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Max.lo: Max.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Max.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Max.Tpo -c -o libbugsfunc_la-Max.lo `test -f 'Max.cc' || echo '$(srcdir)/'`Max.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Max.Tpo $(DEPDIR)/libbugsfunc_la-Max.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Max.cc' object='libbugsfunc_la-Max.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Max.lo `test -f 'Max.cc' || echo '$(srcdir)/'`Max.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Max.lo `test -f 'Max.cc' || echo '$(srcdir)/'`Max.cc -bugsfunc_la-Probit.lo: Probit.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Probit.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Probit.Tpo -c -o bugsfunc_la-Probit.lo `test -f 'Probit.cc' || echo '$(srcdir)/'`Probit.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Probit.Tpo $(DEPDIR)/bugsfunc_la-Probit.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Probit.cc' object='bugsfunc_la-Probit.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Probit.lo: Probit.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Probit.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Probit.Tpo -c -o libbugsfunc_la-Probit.lo `test -f 'Probit.cc' || echo '$(srcdir)/'`Probit.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Probit.Tpo $(DEPDIR)/libbugsfunc_la-Probit.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Probit.cc' object='libbugsfunc_la-Probit.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Probit.lo `test -f 'Probit.cc' || echo '$(srcdir)/'`Probit.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Probit.lo `test -f 'Probit.cc' || echo '$(srcdir)/'`Probit.cc -bugsfunc_la-InProd.lo: InProd.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-InProd.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-InProd.Tpo -c -o bugsfunc_la-InProd.lo `test -f 'InProd.cc' || echo '$(srcdir)/'`InProd.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-InProd.Tpo $(DEPDIR)/bugsfunc_la-InProd.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='InProd.cc' object='bugsfunc_la-InProd.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-InProd.lo: InProd.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-InProd.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-InProd.Tpo -c -o libbugsfunc_la-InProd.lo `test -f 'InProd.cc' || echo '$(srcdir)/'`InProd.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-InProd.Tpo $(DEPDIR)/libbugsfunc_la-InProd.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='InProd.cc' object='libbugsfunc_la-InProd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-InProd.lo `test -f 'InProd.cc' || echo '$(srcdir)/'`InProd.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-InProd.lo `test -f 'InProd.cc' || echo '$(srcdir)/'`InProd.cc -bugsfunc_la-Mean.lo: Mean.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Mean.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Mean.Tpo -c -o bugsfunc_la-Mean.lo `test -f 'Mean.cc' || echo '$(srcdir)/'`Mean.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Mean.Tpo $(DEPDIR)/bugsfunc_la-Mean.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Mean.cc' object='bugsfunc_la-Mean.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Mean.lo: Mean.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Mean.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Mean.Tpo -c -o libbugsfunc_la-Mean.lo `test -f 'Mean.cc' || echo '$(srcdir)/'`Mean.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Mean.Tpo $(DEPDIR)/libbugsfunc_la-Mean.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Mean.cc' object='libbugsfunc_la-Mean.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Mean.lo `test -f 'Mean.cc' || echo '$(srcdir)/'`Mean.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Mean.lo `test -f 'Mean.cc' || echo '$(srcdir)/'`Mean.cc -bugsfunc_la-SD.lo: SD.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-SD.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-SD.Tpo -c -o bugsfunc_la-SD.lo `test -f 'SD.cc' || echo '$(srcdir)/'`SD.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-SD.Tpo $(DEPDIR)/bugsfunc_la-SD.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SD.cc' object='bugsfunc_la-SD.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-SD.lo: SD.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-SD.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-SD.Tpo -c -o libbugsfunc_la-SD.lo `test -f 'SD.cc' || echo '$(srcdir)/'`SD.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-SD.Tpo $(DEPDIR)/libbugsfunc_la-SD.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SD.cc' object='libbugsfunc_la-SD.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-SD.lo `test -f 'SD.cc' || echo '$(srcdir)/'`SD.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-SD.lo `test -f 'SD.cc' || echo '$(srcdir)/'`SD.cc -bugsfunc_la-ICLogLog.lo: ICLogLog.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-ICLogLog.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-ICLogLog.Tpo -c -o bugsfunc_la-ICLogLog.lo `test -f 'ICLogLog.cc' || echo '$(srcdir)/'`ICLogLog.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-ICLogLog.Tpo $(DEPDIR)/bugsfunc_la-ICLogLog.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ICLogLog.cc' object='bugsfunc_la-ICLogLog.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-ICLogLog.lo: ICLogLog.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-ICLogLog.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-ICLogLog.Tpo -c -o libbugsfunc_la-ICLogLog.lo `test -f 'ICLogLog.cc' || echo '$(srcdir)/'`ICLogLog.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-ICLogLog.Tpo $(DEPDIR)/libbugsfunc_la-ICLogLog.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ICLogLog.cc' object='libbugsfunc_la-ICLogLog.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-ICLogLog.lo `test -f 'ICLogLog.cc' || echo '$(srcdir)/'`ICLogLog.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-ICLogLog.lo `test -f 'ICLogLog.cc' || echo '$(srcdir)/'`ICLogLog.cc -bugsfunc_la-Min.lo: Min.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Min.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Min.Tpo -c -o bugsfunc_la-Min.lo `test -f 'Min.cc' || echo '$(srcdir)/'`Min.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Min.Tpo $(DEPDIR)/bugsfunc_la-Min.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Min.cc' object='bugsfunc_la-Min.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Min.lo: Min.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Min.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Min.Tpo -c -o libbugsfunc_la-Min.lo `test -f 'Min.cc' || echo '$(srcdir)/'`Min.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Min.Tpo $(DEPDIR)/libbugsfunc_la-Min.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Min.cc' object='libbugsfunc_la-Min.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Min.lo `test -f 'Min.cc' || echo '$(srcdir)/'`Min.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Min.lo `test -f 'Min.cc' || echo '$(srcdir)/'`Min.cc -bugsfunc_la-Sqrt.lo: Sqrt.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Sqrt.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Sqrt.Tpo -c -o bugsfunc_la-Sqrt.lo `test -f 'Sqrt.cc' || echo '$(srcdir)/'`Sqrt.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Sqrt.Tpo $(DEPDIR)/bugsfunc_la-Sqrt.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Sqrt.cc' object='bugsfunc_la-Sqrt.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Sqrt.lo: Sqrt.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Sqrt.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Sqrt.Tpo -c -o libbugsfunc_la-Sqrt.lo `test -f 'Sqrt.cc' || echo '$(srcdir)/'`Sqrt.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Sqrt.Tpo $(DEPDIR)/libbugsfunc_la-Sqrt.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Sqrt.cc' object='libbugsfunc_la-Sqrt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Sqrt.lo `test -f 'Sqrt.cc' || echo '$(srcdir)/'`Sqrt.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Sqrt.lo `test -f 'Sqrt.cc' || echo '$(srcdir)/'`Sqrt.cc -bugsfunc_la-CLogLog.lo: CLogLog.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-CLogLog.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-CLogLog.Tpo -c -o bugsfunc_la-CLogLog.lo `test -f 'CLogLog.cc' || echo '$(srcdir)/'`CLogLog.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-CLogLog.Tpo $(DEPDIR)/bugsfunc_la-CLogLog.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CLogLog.cc' object='bugsfunc_la-CLogLog.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-CLogLog.lo: CLogLog.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-CLogLog.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-CLogLog.Tpo -c -o libbugsfunc_la-CLogLog.lo `test -f 'CLogLog.cc' || echo '$(srcdir)/'`CLogLog.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-CLogLog.Tpo $(DEPDIR)/libbugsfunc_la-CLogLog.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CLogLog.cc' object='libbugsfunc_la-CLogLog.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-CLogLog.lo `test -f 'CLogLog.cc' || echo '$(srcdir)/'`CLogLog.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-CLogLog.lo `test -f 'CLogLog.cc' || echo '$(srcdir)/'`CLogLog.cc -bugsfunc_la-ILogit.lo: ILogit.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-ILogit.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-ILogit.Tpo -c -o bugsfunc_la-ILogit.lo `test -f 'ILogit.cc' || echo '$(srcdir)/'`ILogit.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-ILogit.Tpo $(DEPDIR)/bugsfunc_la-ILogit.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ILogit.cc' object='bugsfunc_la-ILogit.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-ILogit.lo: ILogit.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-ILogit.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-ILogit.Tpo -c -o libbugsfunc_la-ILogit.lo `test -f 'ILogit.cc' || echo '$(srcdir)/'`ILogit.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-ILogit.Tpo $(DEPDIR)/libbugsfunc_la-ILogit.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ILogit.cc' object='libbugsfunc_la-ILogit.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-ILogit.lo `test -f 'ILogit.cc' || echo '$(srcdir)/'`ILogit.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-ILogit.lo `test -f 'ILogit.cc' || echo '$(srcdir)/'`ILogit.cc -bugsfunc_la-Step.lo: Step.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Step.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Step.Tpo -c -o bugsfunc_la-Step.lo `test -f 'Step.cc' || echo '$(srcdir)/'`Step.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Step.Tpo $(DEPDIR)/bugsfunc_la-Step.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Step.cc' object='bugsfunc_la-Step.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Step.lo: Step.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Step.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Step.Tpo -c -o libbugsfunc_la-Step.lo `test -f 'Step.cc' || echo '$(srcdir)/'`Step.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Step.Tpo $(DEPDIR)/libbugsfunc_la-Step.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Step.cc' object='libbugsfunc_la-Step.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Step.lo `test -f 'Step.cc' || echo '$(srcdir)/'`Step.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Step.lo `test -f 'Step.cc' || echo '$(srcdir)/'`Step.cc -bugsfunc_la-Log.lo: Log.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Log.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Log.Tpo -c -o bugsfunc_la-Log.lo `test -f 'Log.cc' || echo '$(srcdir)/'`Log.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Log.Tpo $(DEPDIR)/bugsfunc_la-Log.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Log.cc' object='bugsfunc_la-Log.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Log.lo: Log.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Log.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Log.Tpo -c -o libbugsfunc_la-Log.lo `test -f 'Log.cc' || echo '$(srcdir)/'`Log.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Log.Tpo $(DEPDIR)/libbugsfunc_la-Log.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Log.cc' object='libbugsfunc_la-Log.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Log.lo `test -f 'Log.cc' || echo '$(srcdir)/'`Log.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Log.lo `test -f 'Log.cc' || echo '$(srcdir)/'`Log.cc -bugsfunc_la-Sum.lo: Sum.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Sum.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Sum.Tpo -c -o bugsfunc_la-Sum.lo `test -f 'Sum.cc' || echo '$(srcdir)/'`Sum.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Sum.Tpo $(DEPDIR)/bugsfunc_la-Sum.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Sum.cc' object='bugsfunc_la-Sum.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Sum.lo: Sum.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Sum.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Sum.Tpo -c -o libbugsfunc_la-Sum.lo `test -f 'Sum.cc' || echo '$(srcdir)/'`Sum.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Sum.Tpo $(DEPDIR)/libbugsfunc_la-Sum.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Sum.cc' object='libbugsfunc_la-Sum.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Sum.lo `test -f 'Sum.cc' || echo '$(srcdir)/'`Sum.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Sum.lo `test -f 'Sum.cc' || echo '$(srcdir)/'`Sum.cc -bugsfunc_la-Exp.lo: Exp.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Exp.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Exp.Tpo -c -o bugsfunc_la-Exp.lo `test -f 'Exp.cc' || echo '$(srcdir)/'`Exp.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Exp.Tpo $(DEPDIR)/bugsfunc_la-Exp.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Exp.cc' object='bugsfunc_la-Exp.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Exp.lo: Exp.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Exp.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Exp.Tpo -c -o libbugsfunc_la-Exp.lo `test -f 'Exp.cc' || echo '$(srcdir)/'`Exp.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Exp.Tpo $(DEPDIR)/libbugsfunc_la-Exp.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Exp.cc' object='libbugsfunc_la-Exp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Exp.lo `test -f 'Exp.cc' || echo '$(srcdir)/'`Exp.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Exp.lo `test -f 'Exp.cc' || echo '$(srcdir)/'`Exp.cc -bugsfunc_la-LogFact.lo: LogFact.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-LogFact.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-LogFact.Tpo -c -o bugsfunc_la-LogFact.lo `test -f 'LogFact.cc' || echo '$(srcdir)/'`LogFact.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-LogFact.Tpo $(DEPDIR)/bugsfunc_la-LogFact.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='LogFact.cc' object='bugsfunc_la-LogFact.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-LogFact.lo: LogFact.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-LogFact.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-LogFact.Tpo -c -o libbugsfunc_la-LogFact.lo `test -f 'LogFact.cc' || echo '$(srcdir)/'`LogFact.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-LogFact.Tpo $(DEPDIR)/libbugsfunc_la-LogFact.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='LogFact.cc' object='libbugsfunc_la-LogFact.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-LogFact.lo `test -f 'LogFact.cc' || echo '$(srcdir)/'`LogFact.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-LogFact.lo `test -f 'LogFact.cc' || echo '$(srcdir)/'`LogFact.cc -bugsfunc_la-LogGam.lo: LogGam.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-LogGam.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-LogGam.Tpo -c -o bugsfunc_la-LogGam.lo `test -f 'LogGam.cc' || echo '$(srcdir)/'`LogGam.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-LogGam.Tpo $(DEPDIR)/bugsfunc_la-LogGam.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='LogGam.cc' object='bugsfunc_la-LogGam.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-LogGam.lo: LogGam.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-LogGam.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-LogGam.Tpo -c -o libbugsfunc_la-LogGam.lo `test -f 'LogGam.cc' || echo '$(srcdir)/'`LogGam.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-LogGam.Tpo $(DEPDIR)/libbugsfunc_la-LogGam.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='LogGam.cc' object='libbugsfunc_la-LogGam.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-LogGam.lo `test -f 'LogGam.cc' || echo '$(srcdir)/'`LogGam.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-LogGam.lo `test -f 'LogGam.cc' || echo '$(srcdir)/'`LogGam.cc -bugsfunc_la-Phi.lo: Phi.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Phi.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Phi.Tpo -c -o bugsfunc_la-Phi.lo `test -f 'Phi.cc' || echo '$(srcdir)/'`Phi.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Phi.Tpo $(DEPDIR)/bugsfunc_la-Phi.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Phi.cc' object='bugsfunc_la-Phi.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Phi.lo: Phi.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Phi.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Phi.Tpo -c -o libbugsfunc_la-Phi.lo `test -f 'Phi.cc' || echo '$(srcdir)/'`Phi.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Phi.Tpo $(DEPDIR)/libbugsfunc_la-Phi.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Phi.cc' object='libbugsfunc_la-Phi.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Phi.lo `test -f 'Phi.cc' || echo '$(srcdir)/'`Phi.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Phi.lo `test -f 'Phi.cc' || echo '$(srcdir)/'`Phi.cc -bugsfunc_la-Logit.lo: Logit.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Logit.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Logit.Tpo -c -o bugsfunc_la-Logit.lo `test -f 'Logit.cc' || echo '$(srcdir)/'`Logit.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Logit.Tpo $(DEPDIR)/bugsfunc_la-Logit.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Logit.cc' object='bugsfunc_la-Logit.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Logit.lo: Logit.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Logit.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Logit.Tpo -c -o libbugsfunc_la-Logit.lo `test -f 'Logit.cc' || echo '$(srcdir)/'`Logit.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Logit.Tpo $(DEPDIR)/libbugsfunc_la-Logit.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Logit.cc' object='libbugsfunc_la-Logit.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Logit.lo `test -f 'Logit.cc' || echo '$(srcdir)/'`Logit.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Logit.lo `test -f 'Logit.cc' || echo '$(srcdir)/'`Logit.cc -bugsfunc_la-Inverse.lo: Inverse.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Inverse.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Inverse.Tpo -c -o bugsfunc_la-Inverse.lo `test -f 'Inverse.cc' || echo '$(srcdir)/'`Inverse.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Inverse.Tpo $(DEPDIR)/bugsfunc_la-Inverse.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Inverse.cc' object='bugsfunc_la-Inverse.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Inverse.lo: Inverse.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Inverse.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Inverse.Tpo -c -o libbugsfunc_la-Inverse.lo `test -f 'Inverse.cc' || echo '$(srcdir)/'`Inverse.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Inverse.Tpo $(DEPDIR)/libbugsfunc_la-Inverse.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Inverse.cc' object='libbugsfunc_la-Inverse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Inverse.lo `test -f 'Inverse.cc' || echo '$(srcdir)/'`Inverse.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Inverse.lo `test -f 'Inverse.cc' || echo '$(srcdir)/'`Inverse.cc -bugsfunc_la-LogDet.lo: LogDet.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-LogDet.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-LogDet.Tpo -c -o bugsfunc_la-LogDet.lo `test -f 'LogDet.cc' || echo '$(srcdir)/'`LogDet.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-LogDet.Tpo $(DEPDIR)/bugsfunc_la-LogDet.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='LogDet.cc' object='bugsfunc_la-LogDet.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-LogDet.lo: LogDet.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-LogDet.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-LogDet.Tpo -c -o libbugsfunc_la-LogDet.lo `test -f 'LogDet.cc' || echo '$(srcdir)/'`LogDet.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-LogDet.Tpo $(DEPDIR)/libbugsfunc_la-LogDet.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='LogDet.cc' object='libbugsfunc_la-LogDet.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-LogDet.lo `test -f 'LogDet.cc' || echo '$(srcdir)/'`LogDet.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-LogDet.lo `test -f 'LogDet.cc' || echo '$(srcdir)/'`LogDet.cc -bugsfunc_la-Sort.lo: Sort.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Sort.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Sort.Tpo -c -o bugsfunc_la-Sort.lo `test -f 'Sort.cc' || echo '$(srcdir)/'`Sort.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Sort.Tpo $(DEPDIR)/bugsfunc_la-Sort.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Sort.cc' object='bugsfunc_la-Sort.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Sort.lo: Sort.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Sort.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Sort.Tpo -c -o libbugsfunc_la-Sort.lo `test -f 'Sort.cc' || echo '$(srcdir)/'`Sort.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Sort.Tpo $(DEPDIR)/libbugsfunc_la-Sort.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Sort.cc' object='libbugsfunc_la-Sort.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Sort.lo `test -f 'Sort.cc' || echo '$(srcdir)/'`Sort.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Sort.lo `test -f 'Sort.cc' || echo '$(srcdir)/'`Sort.cc -bugsfunc_la-Rank.lo: Rank.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Rank.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Rank.Tpo -c -o bugsfunc_la-Rank.lo `test -f 'Rank.cc' || echo '$(srcdir)/'`Rank.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Rank.Tpo $(DEPDIR)/bugsfunc_la-Rank.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Rank.cc' object='bugsfunc_la-Rank.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Rank.lo: Rank.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Rank.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Rank.Tpo -c -o libbugsfunc_la-Rank.lo `test -f 'Rank.cc' || echo '$(srcdir)/'`Rank.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Rank.Tpo $(DEPDIR)/libbugsfunc_la-Rank.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rank.cc' object='libbugsfunc_la-Rank.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Rank.lo `test -f 'Rank.cc' || echo '$(srcdir)/'`Rank.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Rank.lo `test -f 'Rank.cc' || echo '$(srcdir)/'`Rank.cc -bugsfunc_la-Abs.lo: Abs.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Abs.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Abs.Tpo -c -o bugsfunc_la-Abs.lo `test -f 'Abs.cc' || echo '$(srcdir)/'`Abs.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Abs.Tpo $(DEPDIR)/bugsfunc_la-Abs.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Abs.cc' object='bugsfunc_la-Abs.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Abs.lo: Abs.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Abs.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Abs.Tpo -c -o libbugsfunc_la-Abs.lo `test -f 'Abs.cc' || echo '$(srcdir)/'`Abs.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Abs.Tpo $(DEPDIR)/libbugsfunc_la-Abs.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Abs.cc' object='libbugsfunc_la-Abs.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Abs.lo `test -f 'Abs.cc' || echo '$(srcdir)/'`Abs.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Abs.lo `test -f 'Abs.cc' || echo '$(srcdir)/'`Abs.cc -bugsfunc_la-Cos.lo: Cos.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Cos.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Cos.Tpo -c -o bugsfunc_la-Cos.lo `test -f 'Cos.cc' || echo '$(srcdir)/'`Cos.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Cos.Tpo $(DEPDIR)/bugsfunc_la-Cos.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Cos.cc' object='bugsfunc_la-Cos.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Cos.lo: Cos.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Cos.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Cos.Tpo -c -o libbugsfunc_la-Cos.lo `test -f 'Cos.cc' || echo '$(srcdir)/'`Cos.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Cos.Tpo $(DEPDIR)/libbugsfunc_la-Cos.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Cos.cc' object='libbugsfunc_la-Cos.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Cos.lo `test -f 'Cos.cc' || echo '$(srcdir)/'`Cos.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Cos.lo `test -f 'Cos.cc' || echo '$(srcdir)/'`Cos.cc -bugsfunc_la-Sin.lo: Sin.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Sin.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Sin.Tpo -c -o bugsfunc_la-Sin.lo `test -f 'Sin.cc' || echo '$(srcdir)/'`Sin.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Sin.Tpo $(DEPDIR)/bugsfunc_la-Sin.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Sin.cc' object='bugsfunc_la-Sin.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Sin.lo: Sin.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Sin.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Sin.Tpo -c -o libbugsfunc_la-Sin.lo `test -f 'Sin.cc' || echo '$(srcdir)/'`Sin.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Sin.Tpo $(DEPDIR)/libbugsfunc_la-Sin.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Sin.cc' object='libbugsfunc_la-Sin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Sin.lo `test -f 'Sin.cc' || echo '$(srcdir)/'`Sin.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Sin.lo `test -f 'Sin.cc' || echo '$(srcdir)/'`Sin.cc -bugsfunc_la-Tan.lo: Tan.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Tan.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Tan.Tpo -c -o bugsfunc_la-Tan.lo `test -f 'Tan.cc' || echo '$(srcdir)/'`Tan.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Tan.Tpo $(DEPDIR)/bugsfunc_la-Tan.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tan.cc' object='bugsfunc_la-Tan.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Tan.lo: Tan.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Tan.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Tan.Tpo -c -o libbugsfunc_la-Tan.lo `test -f 'Tan.cc' || echo '$(srcdir)/'`Tan.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Tan.Tpo $(DEPDIR)/libbugsfunc_la-Tan.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tan.cc' object='libbugsfunc_la-Tan.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Tan.lo `test -f 'Tan.cc' || echo '$(srcdir)/'`Tan.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Tan.lo `test -f 'Tan.cc' || echo '$(srcdir)/'`Tan.cc -bugsfunc_la-Cosh.lo: Cosh.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Cosh.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Cosh.Tpo -c -o bugsfunc_la-Cosh.lo `test -f 'Cosh.cc' || echo '$(srcdir)/'`Cosh.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Cosh.Tpo $(DEPDIR)/bugsfunc_la-Cosh.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Cosh.cc' object='bugsfunc_la-Cosh.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Cosh.lo: Cosh.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Cosh.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Cosh.Tpo -c -o libbugsfunc_la-Cosh.lo `test -f 'Cosh.cc' || echo '$(srcdir)/'`Cosh.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Cosh.Tpo $(DEPDIR)/libbugsfunc_la-Cosh.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Cosh.cc' object='libbugsfunc_la-Cosh.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Cosh.lo `test -f 'Cosh.cc' || echo '$(srcdir)/'`Cosh.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Cosh.lo `test -f 'Cosh.cc' || echo '$(srcdir)/'`Cosh.cc -bugsfunc_la-Sinh.lo: Sinh.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Sinh.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Sinh.Tpo -c -o bugsfunc_la-Sinh.lo `test -f 'Sinh.cc' || echo '$(srcdir)/'`Sinh.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Sinh.Tpo $(DEPDIR)/bugsfunc_la-Sinh.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Sinh.cc' object='bugsfunc_la-Sinh.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Sinh.lo: Sinh.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Sinh.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Sinh.Tpo -c -o libbugsfunc_la-Sinh.lo `test -f 'Sinh.cc' || echo '$(srcdir)/'`Sinh.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Sinh.Tpo $(DEPDIR)/libbugsfunc_la-Sinh.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Sinh.cc' object='libbugsfunc_la-Sinh.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Sinh.lo `test -f 'Sinh.cc' || echo '$(srcdir)/'`Sinh.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Sinh.lo `test -f 'Sinh.cc' || echo '$(srcdir)/'`Sinh.cc -bugsfunc_la-Tanh.lo: Tanh.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Tanh.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Tanh.Tpo -c -o bugsfunc_la-Tanh.lo `test -f 'Tanh.cc' || echo '$(srcdir)/'`Tanh.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Tanh.Tpo $(DEPDIR)/bugsfunc_la-Tanh.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tanh.cc' object='bugsfunc_la-Tanh.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Tanh.lo: Tanh.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Tanh.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Tanh.Tpo -c -o libbugsfunc_la-Tanh.lo `test -f 'Tanh.cc' || echo '$(srcdir)/'`Tanh.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Tanh.Tpo $(DEPDIR)/libbugsfunc_la-Tanh.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tanh.cc' object='libbugsfunc_la-Tanh.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Tanh.lo `test -f 'Tanh.cc' || echo '$(srcdir)/'`Tanh.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Tanh.lo `test -f 'Tanh.cc' || echo '$(srcdir)/'`Tanh.cc -bugsfunc_la-ArcCos.lo: ArcCos.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-ArcCos.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-ArcCos.Tpo -c -o bugsfunc_la-ArcCos.lo `test -f 'ArcCos.cc' || echo '$(srcdir)/'`ArcCos.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-ArcCos.Tpo $(DEPDIR)/bugsfunc_la-ArcCos.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ArcCos.cc' object='bugsfunc_la-ArcCos.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-ArcCos.lo: ArcCos.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-ArcCos.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-ArcCos.Tpo -c -o libbugsfunc_la-ArcCos.lo `test -f 'ArcCos.cc' || echo '$(srcdir)/'`ArcCos.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-ArcCos.Tpo $(DEPDIR)/libbugsfunc_la-ArcCos.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ArcCos.cc' object='libbugsfunc_la-ArcCos.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-ArcCos.lo `test -f 'ArcCos.cc' || echo '$(srcdir)/'`ArcCos.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-ArcCos.lo `test -f 'ArcCos.cc' || echo '$(srcdir)/'`ArcCos.cc -bugsfunc_la-ArcSin.lo: ArcSin.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-ArcSin.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-ArcSin.Tpo -c -o bugsfunc_la-ArcSin.lo `test -f 'ArcSin.cc' || echo '$(srcdir)/'`ArcSin.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-ArcSin.Tpo $(DEPDIR)/bugsfunc_la-ArcSin.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ArcSin.cc' object='bugsfunc_la-ArcSin.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-ArcSin.lo: ArcSin.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-ArcSin.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-ArcSin.Tpo -c -o libbugsfunc_la-ArcSin.lo `test -f 'ArcSin.cc' || echo '$(srcdir)/'`ArcSin.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-ArcSin.Tpo $(DEPDIR)/libbugsfunc_la-ArcSin.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ArcSin.cc' object='libbugsfunc_la-ArcSin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-ArcSin.lo `test -f 'ArcSin.cc' || echo '$(srcdir)/'`ArcSin.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-ArcSin.lo `test -f 'ArcSin.cc' || echo '$(srcdir)/'`ArcSin.cc -bugsfunc_la-ArcTan.lo: ArcTan.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-ArcTan.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-ArcTan.Tpo -c -o bugsfunc_la-ArcTan.lo `test -f 'ArcTan.cc' || echo '$(srcdir)/'`ArcTan.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-ArcTan.Tpo $(DEPDIR)/bugsfunc_la-ArcTan.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ArcTan.cc' object='bugsfunc_la-ArcTan.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-ArcTan.lo: ArcTan.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-ArcTan.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-ArcTan.Tpo -c -o libbugsfunc_la-ArcTan.lo `test -f 'ArcTan.cc' || echo '$(srcdir)/'`ArcTan.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-ArcTan.Tpo $(DEPDIR)/libbugsfunc_la-ArcTan.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ArcTan.cc' object='libbugsfunc_la-ArcTan.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-ArcTan.lo `test -f 'ArcTan.cc' || echo '$(srcdir)/'`ArcTan.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-ArcTan.lo `test -f 'ArcTan.cc' || echo '$(srcdir)/'`ArcTan.cc -bugsfunc_la-ArcCosh.lo: ArcCosh.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-ArcCosh.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-ArcCosh.Tpo -c -o bugsfunc_la-ArcCosh.lo `test -f 'ArcCosh.cc' || echo '$(srcdir)/'`ArcCosh.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-ArcCosh.Tpo $(DEPDIR)/bugsfunc_la-ArcCosh.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ArcCosh.cc' object='bugsfunc_la-ArcCosh.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-ArcCosh.lo: ArcCosh.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-ArcCosh.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-ArcCosh.Tpo -c -o libbugsfunc_la-ArcCosh.lo `test -f 'ArcCosh.cc' || echo '$(srcdir)/'`ArcCosh.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-ArcCosh.Tpo $(DEPDIR)/libbugsfunc_la-ArcCosh.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ArcCosh.cc' object='libbugsfunc_la-ArcCosh.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-ArcCosh.lo `test -f 'ArcCosh.cc' || echo '$(srcdir)/'`ArcCosh.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-ArcCosh.lo `test -f 'ArcCosh.cc' || echo '$(srcdir)/'`ArcCosh.cc -bugsfunc_la-ArcSinh.lo: ArcSinh.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-ArcSinh.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-ArcSinh.Tpo -c -o bugsfunc_la-ArcSinh.lo `test -f 'ArcSinh.cc' || echo '$(srcdir)/'`ArcSinh.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-ArcSinh.Tpo $(DEPDIR)/bugsfunc_la-ArcSinh.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ArcSinh.cc' object='bugsfunc_la-ArcSinh.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-ArcSinh.lo: ArcSinh.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-ArcSinh.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-ArcSinh.Tpo -c -o libbugsfunc_la-ArcSinh.lo `test -f 'ArcSinh.cc' || echo '$(srcdir)/'`ArcSinh.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-ArcSinh.Tpo $(DEPDIR)/libbugsfunc_la-ArcSinh.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ArcSinh.cc' object='libbugsfunc_la-ArcSinh.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-ArcSinh.lo `test -f 'ArcSinh.cc' || echo '$(srcdir)/'`ArcSinh.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-ArcSinh.lo `test -f 'ArcSinh.cc' || echo '$(srcdir)/'`ArcSinh.cc -bugsfunc_la-ArcTanh.lo: ArcTanh.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-ArcTanh.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-ArcTanh.Tpo -c -o bugsfunc_la-ArcTanh.lo `test -f 'ArcTanh.cc' || echo '$(srcdir)/'`ArcTanh.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-ArcTanh.Tpo $(DEPDIR)/bugsfunc_la-ArcTanh.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ArcTanh.cc' object='bugsfunc_la-ArcTanh.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-ArcTanh.lo: ArcTanh.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-ArcTanh.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-ArcTanh.Tpo -c -o libbugsfunc_la-ArcTanh.lo `test -f 'ArcTanh.cc' || echo '$(srcdir)/'`ArcTanh.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-ArcTanh.Tpo $(DEPDIR)/libbugsfunc_la-ArcTanh.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ArcTanh.cc' object='libbugsfunc_la-ArcTanh.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-ArcTanh.lo `test -f 'ArcTanh.cc' || echo '$(srcdir)/'`ArcTanh.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-ArcTanh.lo `test -f 'ArcTanh.cc' || echo '$(srcdir)/'`ArcTanh.cc -bugsfunc_la-InterpLin.lo: InterpLin.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-InterpLin.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-InterpLin.Tpo -c -o bugsfunc_la-InterpLin.lo `test -f 'InterpLin.cc' || echo '$(srcdir)/'`InterpLin.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-InterpLin.Tpo $(DEPDIR)/bugsfunc_la-InterpLin.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='InterpLin.cc' object='bugsfunc_la-InterpLin.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-InterpLin.lo: InterpLin.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-InterpLin.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-InterpLin.Tpo -c -o libbugsfunc_la-InterpLin.lo `test -f 'InterpLin.cc' || echo '$(srcdir)/'`InterpLin.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-InterpLin.Tpo $(DEPDIR)/libbugsfunc_la-InterpLin.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='InterpLin.cc' object='libbugsfunc_la-InterpLin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-InterpLin.lo `test -f 'InterpLin.cc' || echo '$(srcdir)/'`InterpLin.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-InterpLin.lo `test -f 'InterpLin.cc' || echo '$(srcdir)/'`InterpLin.cc -bugsfunc_la-Round.lo: Round.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Round.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Round.Tpo -c -o bugsfunc_la-Round.lo `test -f 'Round.cc' || echo '$(srcdir)/'`Round.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Round.Tpo $(DEPDIR)/bugsfunc_la-Round.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Round.cc' object='bugsfunc_la-Round.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Round.lo: Round.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Round.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Round.Tpo -c -o libbugsfunc_la-Round.lo `test -f 'Round.cc' || echo '$(srcdir)/'`Round.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Round.Tpo $(DEPDIR)/libbugsfunc_la-Round.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Round.cc' object='libbugsfunc_la-Round.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Round.lo `test -f 'Round.cc' || echo '$(srcdir)/'`Round.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Round.lo `test -f 'Round.cc' || echo '$(srcdir)/'`Round.cc -bugsfunc_la-Trunc.lo: Trunc.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Trunc.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Trunc.Tpo -c -o bugsfunc_la-Trunc.lo `test -f 'Trunc.cc' || echo '$(srcdir)/'`Trunc.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Trunc.Tpo $(DEPDIR)/bugsfunc_la-Trunc.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Trunc.cc' object='bugsfunc_la-Trunc.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Trunc.lo: Trunc.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Trunc.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Trunc.Tpo -c -o libbugsfunc_la-Trunc.lo `test -f 'Trunc.cc' || echo '$(srcdir)/'`Trunc.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Trunc.Tpo $(DEPDIR)/libbugsfunc_la-Trunc.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Trunc.cc' object='libbugsfunc_la-Trunc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Trunc.lo `test -f 'Trunc.cc' || echo '$(srcdir)/'`Trunc.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Trunc.lo `test -f 'Trunc.cc' || echo '$(srcdir)/'`Trunc.cc -bugsfunc_la-Equals.lo: Equals.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Equals.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Equals.Tpo -c -o bugsfunc_la-Equals.lo `test -f 'Equals.cc' || echo '$(srcdir)/'`Equals.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Equals.Tpo $(DEPDIR)/bugsfunc_la-Equals.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Equals.cc' object='bugsfunc_la-Equals.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Equals.lo: Equals.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Equals.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Equals.Tpo -c -o libbugsfunc_la-Equals.lo `test -f 'Equals.cc' || echo '$(srcdir)/'`Equals.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Equals.Tpo $(DEPDIR)/libbugsfunc_la-Equals.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Equals.cc' object='libbugsfunc_la-Equals.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Equals.lo `test -f 'Equals.cc' || echo '$(srcdir)/'`Equals.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Equals.lo `test -f 'Equals.cc' || echo '$(srcdir)/'`Equals.cc -bugsfunc_la-Prod.lo: Prod.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Prod.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Prod.Tpo -c -o bugsfunc_la-Prod.lo `test -f 'Prod.cc' || echo '$(srcdir)/'`Prod.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Prod.Tpo $(DEPDIR)/bugsfunc_la-Prod.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Prod.cc' object='bugsfunc_la-Prod.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Prod.lo: Prod.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Prod.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Prod.Tpo -c -o libbugsfunc_la-Prod.lo `test -f 'Prod.cc' || echo '$(srcdir)/'`Prod.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Prod.Tpo $(DEPDIR)/libbugsfunc_la-Prod.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Prod.cc' object='libbugsfunc_la-Prod.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Prod.lo `test -f 'Prod.cc' || echo '$(srcdir)/'`Prod.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Prod.lo `test -f 'Prod.cc' || echo '$(srcdir)/'`Prod.cc -bugsfunc_la-MatMult.lo: MatMult.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-MatMult.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-MatMult.Tpo -c -o bugsfunc_la-MatMult.lo `test -f 'MatMult.cc' || echo '$(srcdir)/'`MatMult.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-MatMult.Tpo $(DEPDIR)/bugsfunc_la-MatMult.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MatMult.cc' object='bugsfunc_la-MatMult.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-MatMult.lo: MatMult.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-MatMult.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-MatMult.Tpo -c -o libbugsfunc_la-MatMult.lo `test -f 'MatMult.cc' || echo '$(srcdir)/'`MatMult.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-MatMult.Tpo $(DEPDIR)/libbugsfunc_la-MatMult.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MatMult.cc' object='libbugsfunc_la-MatMult.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-MatMult.lo `test -f 'MatMult.cc' || echo '$(srcdir)/'`MatMult.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-MatMult.lo `test -f 'MatMult.cc' || echo '$(srcdir)/'`MatMult.cc -bugsfunc_la-Transpose.lo: Transpose.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Transpose.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Transpose.Tpo -c -o bugsfunc_la-Transpose.lo `test -f 'Transpose.cc' || echo '$(srcdir)/'`Transpose.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Transpose.Tpo $(DEPDIR)/bugsfunc_la-Transpose.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Transpose.cc' object='bugsfunc_la-Transpose.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Transpose.lo: Transpose.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Transpose.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Transpose.Tpo -c -o libbugsfunc_la-Transpose.lo `test -f 'Transpose.cc' || echo '$(srcdir)/'`Transpose.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Transpose.Tpo $(DEPDIR)/libbugsfunc_la-Transpose.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Transpose.cc' object='libbugsfunc_la-Transpose.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Transpose.lo `test -f 'Transpose.cc' || echo '$(srcdir)/'`Transpose.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Transpose.lo `test -f 'Transpose.cc' || echo '$(srcdir)/'`Transpose.cc -bugsfunc_la-DSumFunc.lo: DSumFunc.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-DSumFunc.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-DSumFunc.Tpo -c -o bugsfunc_la-DSumFunc.lo `test -f 'DSumFunc.cc' || echo '$(srcdir)/'`DSumFunc.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-DSumFunc.Tpo $(DEPDIR)/bugsfunc_la-DSumFunc.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DSumFunc.cc' object='bugsfunc_la-DSumFunc.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-DSumFunc.lo: DSumFunc.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-DSumFunc.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-DSumFunc.Tpo -c -o libbugsfunc_la-DSumFunc.lo `test -f 'DSumFunc.cc' || echo '$(srcdir)/'`DSumFunc.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-DSumFunc.Tpo $(DEPDIR)/libbugsfunc_la-DSumFunc.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DSumFunc.cc' object='libbugsfunc_la-DSumFunc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-DSumFunc.lo `test -f 'DSumFunc.cc' || echo '$(srcdir)/'`DSumFunc.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-DSumFunc.lo `test -f 'DSumFunc.cc' || echo '$(srcdir)/'`DSumFunc.cc -bugsfunc_la-DIntervalFunc.lo: DIntervalFunc.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-DIntervalFunc.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-DIntervalFunc.Tpo -c -o bugsfunc_la-DIntervalFunc.lo `test -f 'DIntervalFunc.cc' || echo '$(srcdir)/'`DIntervalFunc.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-DIntervalFunc.Tpo $(DEPDIR)/bugsfunc_la-DIntervalFunc.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DIntervalFunc.cc' object='bugsfunc_la-DIntervalFunc.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-DIntervalFunc.lo: DIntervalFunc.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-DIntervalFunc.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-DIntervalFunc.Tpo -c -o libbugsfunc_la-DIntervalFunc.lo `test -f 'DIntervalFunc.cc' || echo '$(srcdir)/'`DIntervalFunc.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-DIntervalFunc.Tpo $(DEPDIR)/libbugsfunc_la-DIntervalFunc.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DIntervalFunc.cc' object='libbugsfunc_la-DIntervalFunc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-DIntervalFunc.lo `test -f 'DIntervalFunc.cc' || echo '$(srcdir)/'`DIntervalFunc.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-DIntervalFunc.lo `test -f 'DIntervalFunc.cc' || echo '$(srcdir)/'`DIntervalFunc.cc -bugsfunc_la-DPQFunction.lo: DPQFunction.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-DPQFunction.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-DPQFunction.Tpo -c -o bugsfunc_la-DPQFunction.lo `test -f 'DPQFunction.cc' || echo '$(srcdir)/'`DPQFunction.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-DPQFunction.Tpo $(DEPDIR)/bugsfunc_la-DPQFunction.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DPQFunction.cc' object='bugsfunc_la-DPQFunction.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-DRoundFunc.lo: DRoundFunc.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-DRoundFunc.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-DRoundFunc.Tpo -c -o libbugsfunc_la-DRoundFunc.lo `test -f 'DRoundFunc.cc' || echo '$(srcdir)/'`DRoundFunc.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-DRoundFunc.Tpo $(DEPDIR)/libbugsfunc_la-DRoundFunc.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DRoundFunc.cc' object='libbugsfunc_la-DRoundFunc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-DPQFunction.lo `test -f 'DPQFunction.cc' || echo '$(srcdir)/'`DPQFunction.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-DRoundFunc.lo `test -f 'DRoundFunc.cc' || echo '$(srcdir)/'`DRoundFunc.cc -bugsfunc_la-DFunction.lo: DFunction.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-DFunction.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-DFunction.Tpo -c -o bugsfunc_la-DFunction.lo `test -f 'DFunction.cc' || echo '$(srcdir)/'`DFunction.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-DFunction.Tpo $(DEPDIR)/bugsfunc_la-DFunction.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DFunction.cc' object='bugsfunc_la-DFunction.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-IfElse.lo: IfElse.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-IfElse.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-IfElse.Tpo -c -o libbugsfunc_la-IfElse.lo `test -f 'IfElse.cc' || echo '$(srcdir)/'`IfElse.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-IfElse.Tpo $(DEPDIR)/libbugsfunc_la-IfElse.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IfElse.cc' object='libbugsfunc_la-IfElse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-DFunction.lo `test -f 'DFunction.cc' || echo '$(srcdir)/'`DFunction.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-IfElse.lo `test -f 'IfElse.cc' || echo '$(srcdir)/'`IfElse.cc -bugsfunc_la-PFunction.lo: PFunction.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-PFunction.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-PFunction.Tpo -c -o bugsfunc_la-PFunction.lo `test -f 'PFunction.cc' || echo '$(srcdir)/'`PFunction.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-PFunction.Tpo $(DEPDIR)/bugsfunc_la-PFunction.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='PFunction.cc' object='bugsfunc_la-PFunction.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Order.lo: Order.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Order.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Order.Tpo -c -o libbugsfunc_la-Order.lo `test -f 'Order.cc' || echo '$(srcdir)/'`Order.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Order.Tpo $(DEPDIR)/libbugsfunc_la-Order.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Order.cc' object='libbugsfunc_la-Order.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-PFunction.lo `test -f 'PFunction.cc' || echo '$(srcdir)/'`PFunction.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Order.lo `test -f 'Order.cc' || echo '$(srcdir)/'`Order.cc -bugsfunc_la-QFunction.lo: QFunction.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-QFunction.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-QFunction.Tpo -c -o bugsfunc_la-QFunction.lo `test -f 'QFunction.cc' || echo '$(srcdir)/'`QFunction.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-QFunction.Tpo $(DEPDIR)/bugsfunc_la-QFunction.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='QFunction.cc' object='bugsfunc_la-QFunction.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Combine.lo: Combine.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Combine.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Combine.Tpo -c -o libbugsfunc_la-Combine.lo `test -f 'Combine.cc' || echo '$(srcdir)/'`Combine.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Combine.Tpo $(DEPDIR)/libbugsfunc_la-Combine.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Combine.cc' object='libbugsfunc_la-Combine.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-QFunction.lo `test -f 'QFunction.cc' || echo '$(srcdir)/'`QFunction.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Combine.lo `test -f 'Combine.cc' || echo '$(srcdir)/'`Combine.cc -bugsfunc_la-DRoundFunc.lo: DRoundFunc.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-DRoundFunc.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-DRoundFunc.Tpo -c -o bugsfunc_la-DRoundFunc.lo `test -f 'DRoundFunc.cc' || echo '$(srcdir)/'`DRoundFunc.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-DRoundFunc.Tpo $(DEPDIR)/bugsfunc_la-DRoundFunc.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DRoundFunc.cc' object='bugsfunc_la-DRoundFunc.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfunc_la-Rep.lo: Rep.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsfunc_la-Rep.lo -MD -MP -MF $(DEPDIR)/libbugsfunc_la-Rep.Tpo -c -o libbugsfunc_la-Rep.lo `test -f 'Rep.cc' || echo '$(srcdir)/'`Rep.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfunc_la-Rep.Tpo $(DEPDIR)/libbugsfunc_la-Rep.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rep.cc' object='libbugsfunc_la-Rep.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-DRoundFunc.lo `test -f 'DRoundFunc.cc' || echo '$(srcdir)/'`DRoundFunc.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfunc_la-Rep.lo `test -f 'Rep.cc' || echo '$(srcdir)/'`Rep.cc -bugsfunc_la-IfElse.lo: IfElse.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-IfElse.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-IfElse.Tpo -c -o bugsfunc_la-IfElse.lo `test -f 'IfElse.cc' || echo '$(srcdir)/'`IfElse.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-IfElse.Tpo $(DEPDIR)/bugsfunc_la-IfElse.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='IfElse.cc' object='bugsfunc_la-IfElse.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsfuntest_la-testbugsfun.lo: testbugsfun.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfuntest_la_CPPFLAGS) $(CPPFLAGS) $(libbugsfuntest_la_CXXFLAGS) $(CXXFLAGS) -MT libbugsfuntest_la-testbugsfun.lo -MD -MP -MF $(DEPDIR)/libbugsfuntest_la-testbugsfun.Tpo -c -o libbugsfuntest_la-testbugsfun.lo `test -f 'testbugsfun.cc' || echo '$(srcdir)/'`testbugsfun.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsfuntest_la-testbugsfun.Tpo $(DEPDIR)/libbugsfuntest_la-testbugsfun.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='testbugsfun.cc' object='libbugsfuntest_la-testbugsfun.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-IfElse.lo `test -f 'IfElse.cc' || echo '$(srcdir)/'`IfElse.cc - -bugsfunc_la-Order.lo: Order.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsfunc_la-Order.lo -MD -MP -MF $(DEPDIR)/bugsfunc_la-Order.Tpo -c -o bugsfunc_la-Order.lo `test -f 'Order.cc' || echo '$(srcdir)/'`Order.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsfunc_la-Order.Tpo $(DEPDIR)/bugsfunc_la-Order.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Order.cc' object='bugsfunc_la-Order.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsfunc_la-Order.lo `test -f 'Order.cc' || echo '$(srcdir)/'`Order.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsfuntest_la_CPPFLAGS) $(CPPFLAGS) $(libbugsfuntest_la_CXXFLAGS) $(CXXFLAGS) -c -o libbugsfuntest_la-testbugsfun.lo `test -f 'testbugsfun.cc' || echo '$(srcdir)/'`testbugsfun.cc mostlyclean-libtool: -rm -f *.lo @@ -785,26 +910,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -816,15 +930,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -833,6 +943,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -868,6 +993,7 @@ fi; \ done check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_LTLIBRARIES) check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: @@ -903,8 +1029,8 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ - mostlyclean-am +clean-am: clean-checkLTLIBRARIES clean-generic clean-libtool \ + clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -972,10 +1098,11 @@ uninstall-am: -.MAKE: install-am install-strip +.MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-checkLTLIBRARIES clean-generic clean-libtool \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ @@ -985,7 +1112,9 @@ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/bugs/functions/MatMult.cc jags-4.0.0/src/modules/bugs/functions/MatMult.cc --- jags-3.4.0/src/modules/bugs/functions/MatMult.cc 2012-03-02 16:01:20.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/MatMult.cc 2015-02-22 08:33:05.000000000 +0000 @@ -7,6 +7,7 @@ using std::vector; +namespace jags { namespace bugs { //FIXME: deparse? @@ -43,7 +44,8 @@ } vector - MatMult::dim (vector > const &dims) const + MatMult::dim (vector > const &dims, + vector const &values) const { vector ans(2,1); @@ -88,4 +90,9 @@ return (mask[0] || fix[0]) && (mask[1] || fix[1]); } } -} + + bool MatMult::isDiscreteValued(vector const &mask) const + { + return mask[0] && mask[1]; + } +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/MatMult.h jags-4.0.0/src/modules/bugs/functions/MatMult.h --- jags-3.4.0/src/modules/bugs/functions/MatMult.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/MatMult.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { class MatMult : public ArrayFunction @@ -13,12 +14,14 @@ std::vector > const &dims) const; std::vector - dim(std::vector > const &dims) const; + dim(std::vector > const &dims, + std::vector const &values) const; bool checkParameterDim(std::vector > const &dims) const; bool isScale(std::vector const &mask, std::vector const &fix) const; + bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* MAT_MULT_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Max.cc jags-4.0.0/src/modules/bugs/functions/Max.cc --- jags-3.4.0/src/modules/bugs/functions/Max.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Max.cc 2015-09-10 05:42:23.000000000 +0000 @@ -8,27 +8,23 @@ using std::max_element; using std::max; +namespace jags { namespace bugs { Max::Max () - : VectorFunction("max", 0) + : ScalarVectorFunction("max", 0) { } - void Max::evaluate(double *value, vector const &args, - vector const &lengths) const + double Max::scalarEval(vector const &args, + vector const &lengths) const { double ans = *max_element(args[0], args[0] + lengths[0]); for (unsigned int i = 1; i < args.size(); ++i) { double maxi = *max_element(args[i], args[i] + lengths[i]); ans = max(ans, maxi); } - *value = ans; - } - - bool Max::checkParameterLength (vector const &lengths) const - { - return true; + return ans; } bool Max::isDiscreteValued(vector const &mask) const @@ -36,4 +32,4 @@ return allTrue(mask); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Max.h jags-4.0.0/src/modules/bugs/functions/Max.h --- jags-3.4.0/src/modules/bugs/functions/Max.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Max.h 2015-09-10 05:42:23.000000000 +0000 @@ -1,25 +1,25 @@ #ifndef FUNC_MAX_H_ #define FUNC_MAX_H_ -#include +#include +namespace jags { namespace bugs { /** * @short Maximum element of a vector * @see Min */ - class Max: public VectorFunction + class Max: public ScalarVectorFunction { public: Max (); - void evaluate(double *x, std::vector const &args, - std::vector const &lengths) const; - bool checkParameterLength (std::vector const &len) const; + double scalarEval(std::vector const &args, + std::vector const &lengths) const; /** Returns true if all arguments are true */ bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* FUNC_MAX_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Mean.cc jags-4.0.0/src/modules/bugs/functions/Mean.cc --- jags-3.4.0/src/modules/bugs/functions/Mean.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Mean.cc 2015-09-10 05:42:23.000000000 +0000 @@ -3,32 +3,28 @@ using std::vector; +namespace jags { namespace bugs { Mean::Mean () - : VectorFunction ("mean", 1) + : ScalarVectorFunction ("mean", 1) { } - void Mean::evaluate (double *x, vector const &args, - vector const &lengths) const + double Mean::scalarEval (vector const &args, + vector const &lengths) const { double svalue = 0; for (unsigned int i = 0; i < lengths[0]; i++) { svalue += args[0][i]; } svalue /= lengths[0]; - *x = svalue; - } - - bool Mean::checkParameterLength (vector const &lengths) const - { - return true; + return svalue; } bool Mean::isScale(vector const &mask, vector const &fix) const { return true; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Mean.h jags-4.0.0/src/modules/bugs/functions/Mean.h --- jags-3.4.0/src/modules/bugs/functions/Mean.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Mean.h 2015-09-10 05:42:23.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef FUNC_MEAN_H_ #define FUNC_MEAN_H_ -#include +#include +namespace jags { namespace bugs { /** @@ -13,16 +14,16 @@ * y <- mean(x[]) * */ - class Mean : public VectorFunction + class Mean : public ScalarVectorFunction { public: Mean (); - void evaluate(double *x, std::vector const &args, - std::vector const &dims) const; - bool checkParameterLength (std::vector const &len) const; + double scalarEval(std::vector const &args, + std::vector const &dims) const; bool isScale(std::vector const &mask, std::vector const &fix) const; }; -} + +}} #endif /* FUNC_MEAN_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Min.cc jags-4.0.0/src/modules/bugs/functions/Min.cc --- jags-3.4.0/src/modules/bugs/functions/Min.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Min.cc 2015-09-10 05:42:23.000000000 +0000 @@ -8,27 +8,23 @@ using std::min; using std::vector; +namespace jags { namespace bugs { Min::Min () - : VectorFunction ("min", 0) + : ScalarVectorFunction ("min", 0) { } - void Min::evaluate(double *value, vector const &args, - vector const &lengths) const + double Min::scalarEval(vector const &args, + vector const &lengths) const { double ans = *min_element(args[0], args[0] + lengths[0]); for (unsigned int i = 1; i < args.size(); ++i) { double mini = *min_element(args[i], args[i] + lengths[i]); ans = min(ans, mini); } - *value = ans; - } - - bool Min::checkParameterLength (vector const &args) const - { - return true; + return ans; } bool Min::isDiscreteValued(vector const &mask) const @@ -36,4 +32,4 @@ return allTrue(mask); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Min.h jags-4.0.0/src/modules/bugs/functions/Min.h --- jags-3.4.0/src/modules/bugs/functions/Min.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Min.h 2015-09-10 05:42:23.000000000 +0000 @@ -1,24 +1,25 @@ #ifndef FUNC_MIN_H_ #define FUNC_MIN_H_ -#include +#include +namespace jags { namespace bugs { /** * @short Minimum element of a vector * @see Max */ - class Min: public VectorFunction + class Min: public ScalarVectorFunction { public: Min (); - void evaluate(double *x, std::vector const &args, - std::vector const &lengths) const; - bool checkParameterLength (std::vector const &len) const; + double scalarEval (std::vector const &args, + std::vector const &lengths) const; /** Returns true if all arguments are true */ bool isDiscreteValued(std::vector const &mask) const; }; -} + +}} #endif /* FUNC_MIN_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Order.cc jags-4.0.0/src/modules/bugs/functions/Order.cc --- jags-3.4.0/src/modules/bugs/functions/Order.cc 2013-02-25 11:39:31.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Order.cc 2015-02-22 08:33:05.000000000 +0000 @@ -11,6 +11,7 @@ return *arg1 < *arg2; } +namespace jags { namespace bugs { Order::Order () @@ -37,7 +38,8 @@ delete [] argptrs; } - unsigned int Order::length (vector const &lengths) const + unsigned int Order::length (vector const &lengths, + vector const &parvalues) const { return lengths[0]; } @@ -47,4 +49,4 @@ return true; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Order.h jags-4.0.0/src/modules/bugs/functions/Order.h --- jags-3.4.0/src/modules/bugs/functions/Order.h 2013-02-25 12:48:15.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Order.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -25,10 +26,11 @@ void evaluate(double *value, std::vector const &args, std::vector const &lengths) const; - unsigned int length(std::vector const &args) const; + unsigned int length(std::vector const &parlengths, + std::vector const &parvalues) const; bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* FUNC_ORDER_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/PFunction.cc jags-4.0.0/src/modules/bugs/functions/PFunction.cc --- jags-3.4.0/src/modules/bugs/functions/PFunction.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/PFunction.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -#include -#include "PFunction.h" -#include "RScalarDist.h" - -using std::vector; -using std::string; - -namespace bugs { - - PFunction::PFunction(RScalarDist const *dist) - : DPQFunction(string("p") + dist->name().substr(1), dist) - {} - - double PFunction::evaluate(vector const &args) const - { - double x = *args[0]; - vector param(args.size() - 1); - for (unsigned int i = 1; i < args.size(); ++i) { - param[i-1] = args[i]; - } - - return dist()->p(x, param, true, false); - } - - bool - PFunction::checkParameterValue(vector const &args) const - { - if (dist()->discrete()) { - double x = *args[0]; - if (x != static_cast(x)) - return false; - } - - return checkArgs(args); - } -} diff -Nru jags-3.4.0/src/modules/bugs/functions/PFunction.h jags-4.0.0/src/modules/bugs/functions/PFunction.h --- jags-3.4.0/src/modules/bugs/functions/PFunction.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/PFunction.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#ifndef P_FUNCTION_H_ -#define P_FUNCTION_H_ - -#include "DPQFunction.h" - -namespace bugs { - - class PFunction : public DPQFunction - { - public: - PFunction(RScalarDist const *dist); - bool checkParameterValue(std::vector const &args) const; - double evaluate(std::vector const &args) const; - }; - -} - -#endif /* P_FUNCTION_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Phi.cc jags-4.0.0/src/modules/bugs/functions/Phi.cc --- jags-3.4.0/src/modules/bugs/functions/Phi.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Phi.cc 2015-02-23 21:47:25.000000000 +0000 @@ -3,8 +3,11 @@ #include +#include + using std::vector; +namespace jags { namespace bugs { Phi::Phi () : LinkFunction ("phi", "probit") @@ -35,4 +38,4 @@ return dnorm (eta, 0, 1, 0); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Phi.h jags-4.0.0/src/modules/bugs/functions/Phi.h --- jags-3.4.0/src/modules/bugs/functions/Phi.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Phi.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -23,6 +24,6 @@ double grad(double eta) const; }; -} +}} #endif /* FUNC_PHI_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Probit.cc jags-4.0.0/src/modules/bugs/functions/Probit.cc --- jags-3.4.0/src/modules/bugs/functions/Probit.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Probit.cc 2015-02-22 08:33:05.000000000 +0000 @@ -5,6 +5,7 @@ using std::vector; +namespace jags { namespace bugs { Probit::Probit () @@ -17,10 +18,10 @@ return qnorm (*args[0], 0, 1, 1, 0); } - bool Probit::checkScalarValue (vector const &args) const + bool Probit::checkParameterValue (vector const &args) const { double p = *args[0]; - return (p > 0 && p < 1); + return (p >= 0 && p <= 1); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Probit.h jags-4.0.0/src/modules/bugs/functions/Probit.h --- jags-3.4.0/src/modules/bugs/functions/Probit.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Probit.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -18,9 +19,9 @@ public: Probit (); double evaluate(std::vector const &args) const; - bool checkScalarValue(std::vector const &args) const; + bool checkParameterValue(std::vector const &args) const; }; -} +}} #endif /* FUNC_PROBIT_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Prod.cc jags-4.0.0/src/modules/bugs/functions/Prod.cc --- jags-3.4.0/src/modules/bugs/functions/Prod.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Prod.cc 2015-09-10 05:42:23.000000000 +0000 @@ -4,25 +4,23 @@ using std::vector; +namespace jags { namespace bugs { - Prod::Prod () : VectorFunction("prod", 1) + Prod::Prod () : ScalarVectorFunction("prod", 0) { } - void Prod::evaluate(double *x, vector const &args, - vector const &lengths) const + double Prod::scalarEval(vector const &args, + vector const &lengths) const { - double value = args[0][0]; - for (unsigned int i = 1; i < lengths[0]; ++i) { - value *= args[0][i]; + double value = 1; + for (unsigned int j = 0; j < args.size(); ++j) { + for (unsigned int i = 0; i < lengths[j]; ++i) { + value *= args[j][i]; + } } - *x = value; - } - - bool Prod::checkParameterLength (vector const &args) const - { - return true; + return value; } bool Prod::isDiscreteValued(vector const &mask) const @@ -30,4 +28,4 @@ return allTrue(mask); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Prod.h jags-4.0.0/src/modules/bugs/functions/Prod.h --- jags-3.4.0/src/modules/bugs/functions/Prod.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Prod.h 2015-09-10 05:42:23.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef FUNC_PROD_H_ #define FUNC_PROD_H_ -#include +#include +namespace jags { namespace bugs { /** @@ -13,16 +14,15 @@ * y <- prod(x[]) * */ - class Prod : public VectorFunction + class Prod : public ScalarVectorFunction { public: Prod (); - void evaluate(double *x, std::vector const &args, - std::vector const &lengths) const; - bool checkParameterLength(std::vector const &len) const; + double scalarEval(std::vector const &args, + std::vector const &lengths) const; bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* FUNC_PROD_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/QFunction.cc jags-4.0.0/src/modules/bugs/functions/QFunction.cc --- jags-3.4.0/src/modules/bugs/functions/QFunction.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/QFunction.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -#include -#include "QFunction.h" -#include "RScalarDist.h" - -using std::vector; -using std::string; - -namespace bugs { - - QFunction::QFunction(RScalarDist const *dist) - : DPQFunction(string("q") + dist->name().substr(1), dist) - {} - - double QFunction::evaluate(vector const &args) const - { - double x = *args[0]; - vector param(args.size() - 1); - for (unsigned int i = 1; i < args.size(); ++i) { - param[i-1] = args[i]; - } - - return dist()->q(x, param, true, false); - } - - bool QFunction::checkParameterValue(vector const &args) const - { - return checkArgs(args); - } - -} diff -Nru jags-3.4.0/src/modules/bugs/functions/QFunction.h jags-4.0.0/src/modules/bugs/functions/QFunction.h --- jags-3.4.0/src/modules/bugs/functions/QFunction.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/QFunction.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#ifndef Q_FUNCTION_H_ -#define Q_FUNCTION_H_ - -#include "DPQFunction.h" - -namespace bugs { - - class QFunction : public DPQFunction - { - public: - QFunction(RScalarDist const *dist); - bool checkParameterValue(std::vector const &args) const; - double evaluate(std::vector const &args) const; - }; - -} - -#endif /* Q_FUNCTION_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Rank.cc jags-4.0.0/src/modules/bugs/functions/Rank.cc --- jags-3.4.0/src/modules/bugs/functions/Rank.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Rank.cc 2015-02-22 08:33:05.000000000 +0000 @@ -7,10 +7,11 @@ using std::vector; using std::stable_sort; -static bool lt_doubleptr (double const *arg1, double const *arg2) { +static inline bool lt_doubleptr (double const *arg1, double const *arg2) { return *arg1 < *arg2; } +namespace jags { namespace bugs { Rank::Rank () @@ -24,20 +25,20 @@ int N = lengths[0]; //Create a vector of pointers to the elements of arg and sort it - double const **argptrs = new double const *[N]; + vector argptrs(N); for (int i = 0; i < N; ++i) { argptrs[i] = args[0] + i; } - stable_sort(argptrs, argptrs + N, lt_doubleptr); + stable_sort(argptrs.begin(), argptrs.end(), lt_doubleptr); //Ranks can be inferred from the sorted vector of pointers for (int i = 0; i < N; ++i) { value[argptrs[i] - args[0]] = i + 1; } - delete [] argptrs; } - unsigned int Rank::length (vector const &lengths) const + unsigned int Rank::length (vector const &lengths, + vector const &parvalues) const { return lengths[0]; } @@ -47,4 +48,4 @@ return true; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Rank.h jags-4.0.0/src/modules/bugs/functions/Rank.h --- jags-3.4.0/src/modules/bugs/functions/Rank.h 2013-02-25 12:48:26.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Rank.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -25,10 +26,11 @@ void evaluate(double *value, std::vector const &args, std::vector const &lengths) const; - unsigned int length(std::vector const &args) const; + unsigned int length(std::vector const &parlengths, + std::vector const &parvalues) const; bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* FUNC_RANK_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Rep.cc jags-4.0.0/src/modules/bugs/functions/Rep.cc --- jags-3.4.0/src/modules/bugs/functions/Rep.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Rep.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,102 @@ +#include +#include "Rep.h" + +#include +#include + +using std::vector; +using std::string; +using std::fill; +using std::copy; +using std::accumulate; + +namespace jags { + namespace bugs { + + Rep::Rep() : VectorFunction("rep", 2) + { + } + + void Rep::evaluate(double *value, + vector const &args, + vector const &lengths) const + { + double const *x = args[0]; //Vector to be replicated + double const *times = args[1]; //Number of times to replicate + + unsigned int len_x = lengths[0]; //Length of x vector + unsigned int len_times = lengths[1]; //Length of times vector + + if (len_times == 1) { + //Replicate whole vector + unsigned int ntimes = static_cast(times[0]); + for (unsigned int j = 0; j < ntimes; ++j) { + value = copy(x, x + len_x, value); + } + } + else { + //Replicate vector element-wise + for (unsigned int i = 0; i < len_x; ++i) { + unsigned int ntimes = static_cast(times[i]); + fill(value, value + ntimes, x[i]); + value += ntimes; + } + } + } + + unsigned int Rep::length(vector const &lengths, + vector const &args) const + { + double const *times = args[1]; + unsigned int len_times = lengths[1]; + unsigned int len_x = lengths[0]; + + double y = 0; + if (len_x == 0) { + y = 0; + } + else if (len_times == 1) { + y = len_x * times[0]; + } + else if (len_x > 0){ + y = accumulate(times, times + len_times, 0); + } + + return static_cast(y); + } + + bool Rep::checkParameterLength(vector const &len) const + { + return (len[0] == 0) || (len[1] == 1) || (len[1] == len[0]); + } + + bool Rep::isDiscreteValued(vector const &mask) const + { + //Output is discrete-valued if the first argument is discrete + return mask[0]; + } + + bool Rep::checkParameterDiscrete(vector const &mask) const + { + //Times vector must be discrete + return mask[1]; + } + + bool Rep::checkParameterFixed(vector const &mask) const + { + //Times vector must be fixed + return mask[1]; + } + + bool Rep::checkParameterValue(vector const &args, + vector const &lens) const + { + //Times vector must be non-negative + for (unsigned int i = 0; i < lens[1]; ++i) { + if (args[1][i] < 0) return false; + } + return true; + } + + } /* namespace bugs */ +} /* namespace jags */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Rep.h jags-4.0.0/src/modules/bugs/functions/Rep.h --- jags-3.4.0/src/modules/bugs/functions/Rep.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Rep.h 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,37 @@ +#ifndef REP_H_ +#define REP_H_ + +#include + +namespace jags { + namespace bugs { + + /** + * @short Replicate elements of a vector + * + *
+     * y <- rep(x, times)
+     * 
+ * + */ + class Rep : public VectorFunction + { + public: + Rep(); + void evaluate(double *value, + std::vector const &values, + std::vector const &lengths) const; + unsigned int length(std::vector const &lengths, + std::vector const &values) const; + bool checkParameterLength(std::vector const &args) const; + bool isDiscreteValued(std::vector const &mask) const; + bool checkParameterDiscrete(std::vector const &mask) const; + bool checkParameterFixed(std::vector const &mask) const; + bool checkParameterValue(std::vector const &args, + std::vector const &lens) const; + }; + + } /* namespace bugs */ +} /* namespace jags */ + +#endif /* REP_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Round.cc jags-4.0.0/src/modules/bugs/functions/Round.cc --- jags-3.4.0/src/modules/bugs/functions/Round.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Round.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; using std::floor; +namespace jags { namespace bugs { Round::Round ():ScalarFunction ("round", 1) @@ -22,4 +23,5 @@ { return true; } -} + +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Round.h jags-4.0.0/src/modules/bugs/functions/Round.h --- jags-3.4.0/src/modules/bugs/functions/Round.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Round.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -18,6 +19,7 @@ double evaluate(std::vector const &args) const; bool isDiscreteValued(std::vector const &mask) const; }; -} + +}} #endif /* FUNC_ROUND_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/SD.cc jags-4.0.0/src/modules/bugs/functions/SD.cc --- jags-3.4.0/src/modules/bugs/functions/SD.cc 2013-02-25 10:50:41.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/SD.cc 2015-09-10 05:42:23.000000000 +0000 @@ -6,15 +6,16 @@ using std::vector; using std::sqrt; +namespace jags { namespace bugs { SD::SD () - : VectorFunction ("sd", 1) + : ScalarVectorFunction ("sd", 1) { } - void SD::evaluate (double *x, vectorconst &args, - vector const &lengths) const + double SD::scalarEval (vectorconst &args, + vector const &lengths) const { double svalue = 0; if (lengths[0] > 1) { @@ -31,7 +32,7 @@ } svalue = sqrt (var / (lengths[0] - 1)); } - *x = svalue; + return svalue; } bool SD::checkParameterLength (vector const &lengths) const @@ -39,4 +40,4 @@ return lengths[0] >= 2; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/SD.h jags-4.0.0/src/modules/bugs/functions/SD.h --- jags-3.4.0/src/modules/bugs/functions/SD.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/SD.h 2015-09-10 05:42:23.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef FUNC_SD_H_ #define FUNC_SD_H_ -#include +#include +namespace jags { namespace bugs { /** @@ -14,14 +15,15 @@ * y <- sd(x[]) * */ - class SD : public VectorFunction + class SD : public ScalarVectorFunction { public: SD (); - void evaluate (double *x, std::vector const &args, - std::vector const &lengths) const; + double scalarEval (std::vector const &args, + std::vector const &lengths) const; bool checkParameterLength (std::vector const &len) const; }; -} + +}} #endif /* FUNC_SD_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Sin.cc jags-4.0.0/src/modules/bugs/functions/Sin.cc --- jags-3.4.0/src/modules/bugs/functions/Sin.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Sin.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; using std::sin; +namespace jags { namespace bugs { @@ -19,4 +20,4 @@ return sin(*args[0]); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Sin.h jags-4.0.0/src/modules/bugs/functions/Sin.h --- jags-3.4.0/src/modules/bugs/functions/Sin.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Sin.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -18,6 +19,7 @@ Sin (); double evaluate(std::vector const &args) const; }; -} + +}} #endif /* FUNC_SIN_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Sinh.cc jags-4.0.0/src/modules/bugs/functions/Sinh.cc --- jags-3.4.0/src/modules/bugs/functions/Sinh.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Sinh.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; using std::sinh; +namespace jags { namespace bugs { Sinh::Sinh () @@ -18,4 +19,4 @@ return sinh(*args[0]); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Sinh.h jags-4.0.0/src/modules/bugs/functions/Sinh.h --- jags-3.4.0/src/modules/bugs/functions/Sinh.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Sinh.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -19,6 +20,6 @@ double evaluate(std::vector const &args) const; }; -} +}} #endif /* FUNC_SINH_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Sort.cc jags-4.0.0/src/modules/bugs/functions/Sort.cc --- jags-3.4.0/src/modules/bugs/functions/Sort.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Sort.cc 2015-02-22 08:33:05.000000000 +0000 @@ -4,10 +4,12 @@ #include #include +#include using std::vector; using std::sort; +namespace jags { namespace bugs { Sort::Sort () @@ -24,21 +26,15 @@ sort(value, value + lengths[0]); } - unsigned int Sort::length (vector const &parlengths) const + unsigned int Sort::length (vector const &parlengths, + vector const &parvalues) const { return parlengths[0]; } bool Sort::isDiscreteValued(vector const &mask) const { -#ifdef _RWSTD_NO_CLASS_PARTIAL_SPEC -//workaround for Solaris libCstd - int n = 0; - count(mask.begin(), mask.end(), false, n); - return n == 0; -#else - return count(mask.begin(), mask.end(), false) == 0; -#endif + return allTrue(mask); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Sort.h jags-4.0.0/src/modules/bugs/functions/Sort.h --- jags-3.4.0/src/modules/bugs/functions/Sort.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Sort.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -18,9 +19,11 @@ Sort (); void evaluate(double *value, std::vector const &args, std::vector const &lengths) const; - unsigned int length(std::vector const &parlengths) const; + unsigned int length(std::vector const &parlengths, + std::vector const &parvalues) const; bool isDiscreteValued(std::vector const &mask) const; }; -} + +}} #endif /* FUNC_SORT_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Sqrt.cc jags-4.0.0/src/modules/bugs/functions/Sqrt.cc --- jags-3.4.0/src/modules/bugs/functions/Sqrt.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Sqrt.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; using std::sqrt; +namespace jags { namespace bugs { Sqrt::Sqrt ():ScalarFunction ("sqrt", 1) @@ -17,7 +18,7 @@ return sqrt(*args[0]); } - bool Sqrt::checkScalarValue(vector const &args) const + bool Sqrt::checkParameterValue(vector const &args) const { return *args[0] >= 0; } @@ -27,5 +28,4 @@ return true; } - -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Sqrt.h jags-4.0.0/src/modules/bugs/functions/Sqrt.h --- jags-3.4.0/src/modules/bugs/functions/Sqrt.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Sqrt.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -17,10 +18,11 @@ public: Sqrt (); double evaluate(std::vector const &args) const; - bool checkScalarValue(std::vector const &args) const; + bool checkParameterValue(std::vector const &args) const; bool isPower(std::vector const &mask, std::vector const &fix) const; }; -} + +}} #endif /* FUNC_SQRT_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Step.cc jags-4.0.0/src/modules/bugs/functions/Step.cc --- jags-3.4.0/src/modules/bugs/functions/Step.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Step.cc 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ using std::vector; +namespace jags { namespace bugs { Step::Step () @@ -21,4 +22,4 @@ return true; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Step.h jags-4.0.0/src/modules/bugs/functions/Step.h --- jags-3.4.0/src/modules/bugs/functions/Step.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Step.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -21,6 +22,6 @@ bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* FUNC_STEP_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Sum.cc jags-4.0.0/src/modules/bugs/functions/Sum.cc --- jags-3.4.0/src/modules/bugs/functions/Sum.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Sum.cc 2015-09-10 05:42:23.000000000 +0000 @@ -1,36 +1,53 @@ #include #include "Sum.h" +#include using std::vector; +namespace jags { namespace bugs { - Sum::Sum () : VectorFunction("sum", 1) + Sum::Sum () : ScalarVectorFunction("sum", 0) { } - void Sum::evaluate(double *x, vector const &args, - vector const &lengths) const + double Sum::scalarEval(vector const &args, + vector const &lengths) const { - double value = args[0][0]; - for (unsigned long i = 1; i < lengths[0]; ++i) { - value += args[0][i]; + double value = 0; + for (unsigned int j = 0; j < args.size(); ++j) { + for (unsigned int i = 0; i < lengths[j]; ++i) { + value += args[j][i]; + } } - *x = value; + return value; } - bool Sum::checkParameterLength (vector const &args) const + bool Sum::isDiscreteValued(vector const &mask) const { - return true; + return allTrue(mask); } - bool Sum::isDiscreteValued(vector const &mask) const + bool + Sum::isAdditive(vector const &mask, vector const &fixed) const { - return mask[0]; + //Only one argument may be additive. + bool found = false; + for (unsigned int i = 0; i < mask.size(); ++i) { + if (mask[i]) { + if (found) return false; + else found = true; + } + if (!fixed.empty() && !fixed[i]) { + return false; + } + } + return found; } - + bool Sum::isScale(vector const &mask, vector const &fix) const { return true; } -} + +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Sum.h jags-4.0.0/src/modules/bugs/functions/Sum.h --- jags-3.4.0/src/modules/bugs/functions/Sum.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Sum.h 2015-09-10 05:42:23.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef FUNC_SUM_H_ #define FUNC_SUM_H_ -#include +#include +namespace jags { namespace bugs { /** @@ -13,18 +14,19 @@ * y <- sum(x[]) * */ - class Sum : public VectorFunction + class Sum : public ScalarVectorFunction { public: Sum (); - void evaluate(double *x, std::vector const &args, - std::vector const &lengths) const; - bool checkParameterLength(std::vector const &args) const; + double scalarEval(std::vector const &args, + std::vector const &lengths) const; bool isDiscreteValued(std::vector const &mask) const; + bool isAdditive(std::vector const &mask, + std::vector const &isfixed) const; bool isScale(std::vector const &mask, std::vector const &isfixed) const; }; -} +}} #endif /* FUNC_SUM_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Tan.cc jags-4.0.0/src/modules/bugs/functions/Tan.cc --- jags-3.4.0/src/modules/bugs/functions/Tan.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Tan.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; using std::tan; +namespace jags { namespace bugs { @@ -19,4 +20,4 @@ return tan(*args[0]); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Tan.h jags-4.0.0/src/modules/bugs/functions/Tan.h --- jags-3.4.0/src/modules/bugs/functions/Tan.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Tan.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -18,6 +19,7 @@ Tan (); double evaluate(std::vector const &args) const; }; -} + +}} #endif /* FUNC_TAN_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Tanh.cc jags-4.0.0/src/modules/bugs/functions/Tanh.cc --- jags-3.4.0/src/modules/bugs/functions/Tanh.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Tanh.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ using std::vector; using std::tanh; +namespace jags { namespace bugs { Tanh::Tanh () @@ -18,4 +19,4 @@ return tanh(*args[0]); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Tanh.h jags-4.0.0/src/modules/bugs/functions/Tanh.h --- jags-3.4.0/src/modules/bugs/functions/Tanh.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Tanh.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -19,6 +20,6 @@ double evaluate(std::vector const &args) const; }; -} +}} #endif /* FUNC_TANH_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/testbugsfun.cc jags-4.0.0/src/modules/bugs/functions/testbugsfun.cc --- jags-3.4.0/src/modules/bugs/functions/testbugsfun.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/testbugsfun.cc 2015-09-27 07:06:19.000000000 +0000 @@ -0,0 +1,1262 @@ +#include "testbugsfun.h" + +#include "Abs.h" +#include "ArcCos.h" +#include "ArcCosh.h" +#include "ArcSin.h" +#include "ArcSinh.h" +#include "ArcTan.h" +#include "ArcTanh.h" +#include "CLogLog.h" +#include "Combine.h" +#include "Cos.h" +#include "Cosh.h" +#include "DIntervalFunc.h" +#include "DRoundFunc.h" +#include "DSumFunc.h" +#include "Exp.h" +#include "ICLogLog.h" +#include "IfElse.h" +#include "ILogit.h" +#include "InProd.h" +#include "InterpLin.h" +#include "Inverse.h" +#include "LogDet.h" +#include "LogFact.h" +#include "LogGam.h" +#include "Log.h" +#include "Logit.h" +#include "MatMult.h" +#include "Max.h" +#include "Mean.h" +#include "Min.h" +#include "Order.h" +#include "Phi.h" +#include "Probit.h" +#include "Prod.h" +#include "Rank.h" +#include "Rep.h" +#include "Round.h" +#include "SD.h" +#include "Sin.h" +#include "Sinh.h" +#include "Sort.h" +#include "Sqrt.h" +#include "Step.h" +#include "Sum.h" +#include "Tan.h" +#include "Tanh.h" +#include "Transpose.h" +#include "Trunc.h" + +#include + +#include +#include +#include + +#include + +using jags::checkInteger; +using jags::LinkFunction; +using jags::ScalarFunction; +using jags::VectorFunction; +using jags::Function; + +using std::vector; +using std::string; +using std::equal; +using std::copy; + +#include +#include + +void BugsFunTest::setUp() +{ + //Trigonometric functions and their inverses + _sin = new jags::bugs::Sin; + _cos = new jags::bugs::Cos; + _tan = new jags::bugs::Tan; + _arccos = new jags::bugs::ArcCos; + _arcsin = new jags::bugs::ArcSin; + _arctan = new jags::bugs::ArcTan; + + //Hyperbolic functions and their inverses + _sinh = new jags::bugs::Sinh; + _cosh = new jags::bugs::Cosh; + _tanh = new jags::bugs::Tanh; + _arcsinh = new jags::bugs::ArcSinh; + _arccosh = new jags::bugs::ArcCosh; + _arctanh = new jags::bugs::ArcTanh; + + //Link functions and their inverses + _cloglog = new jags::bugs::CLogLog; + _log = new jags::bugs::Log; + _logit = new jags::bugs::Logit; + _probit = new jags::bugs::Probit; + _icloglog = new jags::bugs::ICLogLog; + _exp = new jags::bugs::Exp; + _ilogit = new jags::bugs::ILogit; + _phi = new jags::bugs::Phi; + + //Scalar summaries of vectors + _max = new jags::bugs::Max; + _mean = new jags::bugs::Mean; + _min = new jags::bugs::Min; + _sum = new jags::bugs::Sum; + _sd = new jags::bugs::SD; + _prod = new jags::bugs::Prod; + + //Mathematical functions + _logfact = new jags::bugs::LogFact; + _loggam = new jags::bugs::LogGam; + _sqrt = new jags::bugs::Sqrt; + + //Lossy scalar functions + _round = new jags::bugs::Round; + _step = new jags::bugs::Step; + _trunc = new jags::bugs::Trunc; + _abs = new jags::bugs::Abs; + + //Observable functions + _dinterval = new jags::bugs::DIntervalFunc; + _dround = new jags::bugs::DRoundFunc; + _dsum = new jags::bugs::DSumFunc; + + //Sorting functions + _order = new jags::bugs::Order; + _rank = new jags::bugs::Rank; + _sort = new jags::bugs::Sort; + + //Matrix functions + _inverse = new jags::bugs::Inverse; + _logdet = new jags::bugs::LogDet; + _matmult = new jags::bugs::MatMult; + _transpose = new jags::bugs::Transpose; + _inprod = new jags::bugs::InProd; + + //Odds and sods + _ifelse = new jags::bugs::IfElse; + _interplin = new jags::bugs::InterpLin; + _combine = new jags::bugs::Combine; + _rep = new jags::bugs::Rep; +} + +void BugsFunTest::tearDown() +{ + //Trigonometric functions and their inverses + delete _sin; + delete _cos; + delete _tan; + delete _arccos; + delete _arcsin; + delete _arctan; + + //Hyperbolic functions and their inverses + delete _sinh; + delete _cosh; + delete _tanh; + delete _arcsinh; + delete _arccosh; + delete _arctanh; + + //Link functions and their inverses + delete _cloglog; + delete _log; + delete _logit; + delete _probit; + delete _icloglog; + delete _exp; + delete _ilogit; + delete _phi; + + //Scalar summaries of vectors + delete _max; + delete _mean; + delete _min; + delete _sum; + delete _sd; + delete _prod; + + //Mathematical functions + delete _logfact; + delete _loggam; + delete _sqrt; + + //Lossy scalar functions + delete _round; + delete _step; + delete _trunc; + delete _abs; + + //Observable functions + delete _dinterval; + delete _dround; + delete _dsum; + + //Sorting functions + delete _order; + delete _rank; + delete _sort; + + //Matrix functions + delete _inverse; + delete _logdet; + delete _matmult; + delete _transpose; + delete _inprod; + + //Odds and sods + delete _ifelse; + delete _interplin; + delete _combine; + delete _rep; +} + +void BugsFunTest::npar() +{ + //Trigonometric functions and their inverses + CPPUNIT_ASSERT_EQUAL(_sin->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_cos->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_tan->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_arccos->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_arcsin->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_arctan->npar(), 1U); + + //Hyperbolic functions and their inverses + CPPUNIT_ASSERT_EQUAL(_sinh->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_cosh->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_tanh->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_arcsinh->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_arccosh->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_arctanh->npar(), 1U); + + //Link functions and their inverses + CPPUNIT_ASSERT_EQUAL(_cloglog->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_log->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_logit->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_probit->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_icloglog->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_exp->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_ilogit->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_phi->npar(), 1U); + + //Scalar summaries of vectors + CPPUNIT_ASSERT_EQUAL(_max->npar(), 0U); + CPPUNIT_ASSERT_EQUAL(_min->npar(), 0U); + CPPUNIT_ASSERT_EQUAL(_sum->npar(), 0U); + CPPUNIT_ASSERT_EQUAL(_prod->npar(), 0U); + CPPUNIT_ASSERT_EQUAL(_sd->npar(), 1U); + + //Mathematical functions + CPPUNIT_ASSERT_EQUAL(_logfact->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_loggam->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_sqrt->npar(), 1U); + + //Lossy scalar functions + CPPUNIT_ASSERT_EQUAL(_round->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_step->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_trunc->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_abs->npar(), 1U); + + //Observable functions + CPPUNIT_ASSERT_EQUAL(_dinterval->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_dround->npar(), 2U); + CPPUNIT_ASSERT(checkNPar(_dsum, 1)); + + //Sorting functions + CPPUNIT_ASSERT_EQUAL(_order->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_rank->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_sort->npar(), 1U); + + //Matrix functions + CPPUNIT_ASSERT_EQUAL(_inverse->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_logdet->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_matmult->npar(), 2U); + CPPUNIT_ASSERT_EQUAL(_transpose->npar(), 1U); + CPPUNIT_ASSERT_EQUAL(_inprod->npar(), 2U); + + //Odds and sods + CPPUNIT_ASSERT_EQUAL(_ifelse->npar(), 3U); + CPPUNIT_ASSERT_EQUAL(_interplin->npar(), 3U); + CPPUNIT_ASSERT(checkNPar(_combine, 1)); + CPPUNIT_ASSERT(checkNPar(_combine, 2)); + CPPUNIT_ASSERT(checkNPar(_combine, 3)); + CPPUNIT_ASSERT_EQUAL(_rep->npar(), 2U); +} + +void BugsFunTest::name() +{ + //Trigonometric functions + CPPUNIT_ASSERT_EQUAL(string("sin"), _sin->name()); + CPPUNIT_ASSERT_EQUAL(string("cos"), _cos->name()); + CPPUNIT_ASSERT_EQUAL(string("tan"), _tan->name()); + CPPUNIT_ASSERT_EQUAL(string("arcsin"), _arcsin->name()); + CPPUNIT_ASSERT_EQUAL(string("arccos"), _arccos->name()); + CPPUNIT_ASSERT_EQUAL(string("arctan"), _arctan->name()); + + //Hyperbolic functions + CPPUNIT_ASSERT_EQUAL(string("sinh"), _sinh->name()); + CPPUNIT_ASSERT_EQUAL(string("cosh"), _cosh->name()); + CPPUNIT_ASSERT_EQUAL(string("tanh"), _tanh->name()); + CPPUNIT_ASSERT_EQUAL(string("arcsinh"), _arcsinh->name()); + CPPUNIT_ASSERT_EQUAL(string("arccosh"), _arccosh->name()); + CPPUNIT_ASSERT_EQUAL(string("arctanh"), _arctanh->name()); + + //Link functions + CPPUNIT_ASSERT_EQUAL(string("cloglog"), _cloglog->name()); + CPPUNIT_ASSERT_EQUAL(string("log"), _log->name()); + CPPUNIT_ASSERT_EQUAL(string("logit"), _logit->name()); + CPPUNIT_ASSERT_EQUAL(string("probit"), _probit->name()); + CPPUNIT_ASSERT_EQUAL(string("icloglog"), _icloglog->name()); + CPPUNIT_ASSERT_EQUAL(string("exp"), _exp->name()); + CPPUNIT_ASSERT_EQUAL(string("ilogit"), _ilogit->name()); + CPPUNIT_ASSERT_EQUAL(string("phi"), _phi->name()); + + //Scalar summaries of vectors + CPPUNIT_ASSERT_EQUAL(string("max"), _max->name()); + CPPUNIT_ASSERT_EQUAL(string("mean"), _mean->name()); + CPPUNIT_ASSERT_EQUAL(string("min"), _min->name()); + CPPUNIT_ASSERT_EQUAL(string("sum"), _sum->name()); + CPPUNIT_ASSERT_EQUAL(string("sd"), _sd->name()); + CPPUNIT_ASSERT_EQUAL(string("prod"), _prod->name()); + + //Mathematical functions + CPPUNIT_ASSERT_EQUAL(string("logfact"), _logfact->name()); + CPPUNIT_ASSERT_EQUAL(string("loggam"), _loggam->name()); + CPPUNIT_ASSERT_EQUAL(string("sqrt"), _sqrt->name()); + + //Lossy scalar functions + CPPUNIT_ASSERT_EQUAL(string("round"), _round->name()); + CPPUNIT_ASSERT_EQUAL(string("step"), _step->name()); + CPPUNIT_ASSERT_EQUAL(string("trunc"), _trunc->name()); + CPPUNIT_ASSERT_EQUAL(string("abs"), _abs->name()); + + //Observable functions + CPPUNIT_ASSERT_EQUAL(string("dinterval"), _dinterval->name()); + CPPUNIT_ASSERT_EQUAL(string("dround"), _dround->name()); + CPPUNIT_ASSERT_EQUAL(string("dsum"), _dsum->name()); + + CPPUNIT_ASSERT_EQUAL(string("order"), _order->name()); + CPPUNIT_ASSERT_EQUAL(string("rank"), _rank->name()); + CPPUNIT_ASSERT_EQUAL(string("sort"), _sort->name()); + + //Matrix functions + CPPUNIT_ASSERT_EQUAL(string("inverse"), _inverse->name()); + CPPUNIT_ASSERT_EQUAL(string("logdet"), _logdet->name()); + CPPUNIT_ASSERT_EQUAL(string("%*%"), _matmult->name()); + CPPUNIT_ASSERT_EQUAL(string("t"), _transpose->name()); + + //odds and ends + CPPUNIT_ASSERT_EQUAL(string("ifelse"), _ifelse->name()); + CPPUNIT_ASSERT_EQUAL(string("inprod"), _inprod->name()); + CPPUNIT_ASSERT_EQUAL(string("interp.lin"), _interplin->name()); + CPPUNIT_ASSERT_EQUAL(string("c"), _combine->name()); + CPPUNIT_ASSERT_EQUAL(string("rep"), _rep->name()); +} + +void BugsFunTest::alias() +{ + //Trigonometric functions + CPPUNIT_ASSERT_EQUAL(string(""), _sin->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _cos->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _tan->alias()); + CPPUNIT_ASSERT_EQUAL(string("asin"), _arcsin->alias()); + CPPUNIT_ASSERT_EQUAL(string("acos"), _arccos->alias()); + CPPUNIT_ASSERT_EQUAL(string("atan"), _arctan->alias()); + + //Hyperbolic functions + CPPUNIT_ASSERT_EQUAL(string(""), _sinh->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _cosh->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _tanh->alias()); + CPPUNIT_ASSERT_EQUAL(string("asinh"), _arcsinh->alias()); + CPPUNIT_ASSERT_EQUAL(string("acosh"), _arccosh->alias()); + CPPUNIT_ASSERT_EQUAL(string("atanh"), _arctanh->alias()); + + //Link functions + CPPUNIT_ASSERT_EQUAL(string(""), _cloglog->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _log->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _logit->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _probit->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _icloglog->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _exp->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _ilogit->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _phi->alias()); + + //Scalar summaries of vectors + CPPUNIT_ASSERT_EQUAL(string(""), _max->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _mean->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _min->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _sum->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _sd->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _prod->alias()); + + //Mathematical functions + CPPUNIT_ASSERT_EQUAL(string(""), _logfact->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _loggam->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _sqrt->alias()); + + //Lossy scalar functions + CPPUNIT_ASSERT_EQUAL(string(""), _round->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _step->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _trunc->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _abs->alias()); + + //Observable functions + CPPUNIT_ASSERT_EQUAL(string(""), _dinterval->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dround->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _dsum->alias()); + + CPPUNIT_ASSERT_EQUAL(string(""), _order->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _rank->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _sort->alias()); + + //Matrix functions + CPPUNIT_ASSERT_EQUAL(string(""), _inverse->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _logdet->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _matmult->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _transpose->alias()); + + //odds and ends + CPPUNIT_ASSERT_EQUAL(string(""), _ifelse->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _inprod->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _interplin->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _combine->alias()); + CPPUNIT_ASSERT_EQUAL(string(""), _rep->alias()); +} + +void BugsFunTest::trig(double const v) +{ + double sinv = eval(_sin, v); + double cosv = eval(_cos, v); + double tanv = eval(_tan, v); + + CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, sinv*sinv + cosv*cosv, tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(tanv, sinv/cosv, tol); + + //Test consistency of inverse functions by inverting twice + CPPUNIT_ASSERT_DOUBLES_EQUAL(sinv, eval(_sin, eval(_arcsin, sinv)), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(cosv, eval(_cos, eval(_arccos, cosv)), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(tanv, eval(_tan, eval(_arctan, tanv)), tol); +} + +void BugsFunTest::trig() +{ + //Check reference values + CPPUNIT_ASSERT_EQUAL(0.0, eval(_sin, 0)); + CPPUNIT_ASSERT_EQUAL(1.0, eval(_cos, 0)); + CPPUNIT_ASSERT_EQUAL(0.0, eval(_tan, 0)); + + CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, eval(_sin, M_PI_2), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, eval(_cos, M_PI_2), tol); + + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, eval(_sin, M_PI), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(-1.0, eval(_cos, M_PI), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, eval(_tan, M_PI), tol); + + CPPUNIT_ASSERT_DOUBLES_EQUAL(-1.0, eval(_sin, 3 * M_PI_2), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, eval(_cos, 3 * M_PI_2), tol); + + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, eval(_sin, M_2PI), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, eval(_cos, M_2PI), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, eval(_tan, M_2PI), tol); + + //Check limits of inverse functions + checkLimits(_arcsin, -1, 1); + checkLimits(_arccos, -1, 1); + + CPPUNIT_ASSERT_DOUBLES_EQUAL(-M_PI_2, eval(_arcsin, -1), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL( M_PI_2, eval(_arcsin, 1), tol); + + CPPUNIT_ASSERT_DOUBLES_EQUAL(M_PI, eval(_arccos, -1), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0, eval(_arccos, 1), tol); + + //Test consistency of sin, cos, tan for a range of values + for (double v = -10; v < 10; v = v + 0.1) { + trig(v); + } +} + +void BugsFunTest::hyper(const double v) +{ + double sinhv = eval(_sinh, v); + double coshv = eval(_cosh, v); + double tanhv = eval(_tanh, v); + + CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, coshv*coshv - sinhv*sinhv, tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(tanhv, sinhv/coshv, tol); + + //Test consistency of inverse functions + CPPUNIT_ASSERT_DOUBLES_EQUAL(v, eval(_arcsinh, sinhv), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fabs(v), eval(_arccosh, coshv), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(v, eval(_arctanh, tanhv), tol); +} + +void BugsFunTest::hyper() +{ + //Check reference values + CPPUNIT_ASSERT_EQUAL(0.0, eval(_sinh, 0)); + CPPUNIT_ASSERT_EQUAL(1.0, eval(_cosh, 0)); + CPPUNIT_ASSERT_EQUAL(0.0, eval(_tanh, 0)); + + //Check limits of inverse functions + checkLimits(_arccosh, 1, JAGS_POSINF); + checkLimits(_arctanh, -1, 1); + + //Check consistency across a range of values + for (double v = -5; v < 5; v = v + 0.1) { + hyper(v); + } +} + +void BugsFunTest::link(ScalarFunction const *f, LinkFunction const *l, + double lower, double upper, int N) +{ + //Check that names of f and l match + CPPUNIT_ASSERT_EQUAL(f->name(), l->linkName()); + + //f only takes one argument (no need to check l) + CPPUNIT_ASSERT_EQUAL(f->npar(), 1U); + + //Test link function over a range of values + double delta = (upper - lower)/(N - 1); + double yold = l->inverseLink(lower); + + for (int i = 0; i < N; ++i) { + + const double x = lower + i * delta; + const double y = l->inverseLink(x); + + //Inverse link function is strictlying increasing + CPPUNIT_ASSERT(l->grad(x) > 0); + if (i > 0) { + CPPUNIT_ASSERT(y > yold); + } + yold = y; + + //Inverting the link function puts us back where we were. + CPPUNIT_ASSERT_DOUBLES_EQUAL(x, eval(f, y), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(x, l->link(y), tol); + } +} + +void BugsFunTest::link() +{ + //Check reference values for link functions + CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, _exp->inverseLink(0), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.5, _ilogit->inverseLink(0), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.5, _phi->inverseLink(0), tol); + + //Check range of link functions + checkLimits(_log, 0, JAGS_POSINF); + checkLimits(_logit, 0, 1); + checkLimits(_probit, 0, 1); + checkLimits(_cloglog, 0, 1); + + //Check that the limits of the range map to -Inf, +Inf + CPPUNIT_ASSERT_EQUAL(JAGS_NEGINF, eval(_log, 0)); + CPPUNIT_ASSERT_EQUAL(JAGS_NEGINF, eval(_logit, 0)); + CPPUNIT_ASSERT_EQUAL(JAGS_NEGINF, eval(_probit, 0)); + CPPUNIT_ASSERT_EQUAL(JAGS_NEGINF, eval(_cloglog, 0)); + + CPPUNIT_ASSERT_EQUAL(JAGS_POSINF, eval(_logit, 1)); + CPPUNIT_ASSERT_EQUAL(JAGS_POSINF, eval(_probit, 1)); + CPPUNIT_ASSERT_EQUAL(JAGS_POSINF, eval(_cloglog, 1)); + + //Complementary log log link is only invertible up to around 3 + link(_cloglog, _icloglog, -5.0, 3.0, 13); + //For the rest, we test the range [-5,5] + link(_log, _exp, -5.0, 5.0, 13); + link(_logit, _ilogit, -5.0, 5.0, 13); + link(_probit, _phi, -5.0, 5.0, 13); +} + +void BugsFunTest::summary(vector const &v) +{ + //Test scalar summaries of vector values; + unsigned int N = v.size(); + + //Calculate summaries + double vmax = eval(_max, v); + double vmin = eval(_min, v); + double vmean = eval(_mean, v); + double vsum = eval(_sum, v); + + //Check consistency of min, max, mean, sum + CPPUNIT_ASSERT(vmax >= vmean); + CPPUNIT_ASSERT(vmean >= vmin); + CPPUNIT_ASSERT_DOUBLES_EQUAL(vsum, vmean * N, tol); + + //Negate argument and recalculate + vector negv(N); + for (unsigned int i = 0; i < N; ++i) { + negv[i] = -v[i]; + } + + double negvmax = eval(_max, negv); + double negvmin = eval(_min, negv); + double negvmean = eval(_mean, negv); + double negvsum = eval(_sum, negv); + + //Check consistency of results for positive and negative args + CPPUNIT_ASSERT_EQUAL(negvmax, -vmin); + CPPUNIT_ASSERT_EQUAL(negvmin, -vmax); + CPPUNIT_ASSERT_EQUAL(negvmean, -vmean); + CPPUNIT_ASSERT_EQUAL(negvsum, -vsum); + + //Check consistency of sd, sum, mean + if (N > 1) { + double vsd = eval(_sd, v); + vector v2(N); + for (unsigned int i = 0; i < N; ++i) v2[i] = v[i]*v[i]; + + double v2sum = eval(_sum, v2); + double sd = sqrt((v2sum - vsum*vmean)/(N-1)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(sd, vsd, tol); + } + + //Check consistency of prod and sum on log scale + vector vexp(N); + for (unsigned int i = 0; i < N; ++i) { + vexp[i] = exp(v[i]); + } + CPPUNIT_ASSERT_DOUBLES_EQUAL(vsum, log(eval(_prod, vexp)), tol); + +} + + +void BugsFunTest::summary(vector const &v1, + vector const &v2) +{ + //Test variadic summary functions taking two arguments; + + unsigned int N1 = v1.size(); + unsigned int N2 = v2.size(); + + //Calculate summaries + double vmax = eval(_max, v1, v2); + double vmin = eval(_min, v1, v2); + double vsum = eval(_sum, v1, v2); + + //Check consistency of min, max + CPPUNIT_ASSERT(vmax >= vmin); + + //Check consistency of prod and sum on log scale + vector v1exp(N1); + for (unsigned int i = 0; i < N1; ++i) { + v1exp[i] = exp(v1[i]); + } + vector v2exp(N2); + for (unsigned int i = 0; i < N2; ++i) { + v2exp[i] = exp(v2[i]); + } + + CPPUNIT_ASSERT_DOUBLES_EQUAL(vsum, log(eval(_prod, v1exp, v2exp)), tol); +} + +void BugsFunTest::summary() +{ + double v0[1] = {0}; + double v1[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; + double v2[5] = {1, 3, 5, 9, 11}; + double v3[2] = {-M_PI, M_PI}; + double v4[6] = {-1, 1, 2, 2, -3, -2.5}; + + //All summary functions should fail when given an empty vector + vector x0(0); + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_max, x0)); + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_min, x0)); + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_mean, x0)); + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_sd, x0)); + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_sum, x0)); + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_prod, x0)); + //Standard deviation requires at least two elements + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_sd, v0)); + + summary(v0); + summary(v1); + summary(v2); + summary(v3); + summary(v4); + + summary(v1, v1); + summary(v1, v2); + summary(v1, v3); + summary(v1, v4); + + summary(v2, v2); + summary(v2, v3); + summary(v2, v4); + + summary(v3, v3); + summary(v3, v4); + + summary(v4, v4); +} + +void BugsFunTest::math() +{ + //Check that bad arguments are caught + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_logfact, -1)); + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_logfact, -1)); + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_loggam, -1)); + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_sqrt, -1)); + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_loggam, 0)); + + CPPUNIT_ASSERT_EQUAL(0.0, eval(_logfact, 0)); + CPPUNIT_ASSERT_EQUAL(0.0, eval(_sqrt, 0)); + + CPPUNIT_ASSERT_DOUBLES_EQUAL(log(M_PI)/2, eval(_loggam, 0.5), tol); + + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, eval(_logfact, 1), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, eval(_loggam, 1), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, eval(_sqrt, 1), tol); + + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, eval(_loggam, 2), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(log(2.0), eval(_logfact, 2), tol); + + CPPUNIT_ASSERT_DOUBLES_EQUAL(log(2.0), eval(_loggam, 3), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(log(6.0), eval(_logfact, 3), tol); + + CPPUNIT_ASSERT_DOUBLES_EQUAL(log(6.0), eval(_loggam, 4), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(log(24.0), eval(_logfact, 4), tol); + CPPUNIT_ASSERT_DOUBLES_EQUAL(2.0, eval(_sqrt, 4), tol); +} + +void BugsFunTest::lossy() +{ + //round moves towards the nearest integer + CPPUNIT_ASSERT_EQUAL(0.0, eval(_round, 0.5 - DBL_EPSILON)); + CPPUNIT_ASSERT_EQUAL(1.0, eval(_round, 0.5 + DBL_EPSILON)); + CPPUNIT_ASSERT_EQUAL(1.0, eval(_round, 1.1)); + CPPUNIT_ASSERT_EQUAL(0.0, eval(_round, -0.4)); + CPPUNIT_ASSERT_EQUAL(-1.0, eval(_round, -0.9)); + + //step moves from 0 to 1 at 0 + CPPUNIT_ASSERT_EQUAL(0.0, eval(_step, -DBL_EPSILON)); + CPPUNIT_ASSERT_EQUAL(1.0, eval(_step, 0)); + CPPUNIT_ASSERT_EQUAL(1.0, eval(_step, DBL_EPSILON)); + + //trunc moves towards the nearest integer that is smaller in + //absolute value + CPPUNIT_ASSERT_EQUAL(0.0, eval(_trunc, 0)); + CPPUNIT_ASSERT_EQUAL(0.0, eval(_trunc, 0.5)); + CPPUNIT_ASSERT_EQUAL(0.0, eval(_trunc, 1 - DBL_EPSILON)); + CPPUNIT_ASSERT_EQUAL(1.0, eval(_trunc, 1)); + CPPUNIT_ASSERT_EQUAL(1.0, eval(_trunc, 1 + DBL_EPSILON)); + CPPUNIT_ASSERT_EQUAL(0.0, eval(_trunc, -0.9)); + CPPUNIT_ASSERT_EQUAL(-1.0, eval(_trunc, -1.9999)); + + //abs makes negative numbers positive, + //leaves non-negative numbers unchanged + const double x = M_PI; + CPPUNIT_ASSERT_EQUAL(x, eval(_abs, -x)); + CPPUNIT_ASSERT_EQUAL(x, eval(_abs, x)); + CPPUNIT_ASSERT_EQUAL(0.0, eval(_abs, 0.0)); +} + +/* + +void BUGSFunTest::observable() +{ + const double c1[1] = {1}; + const double c2[2] = {-5.4, 2.3}; + const double badc1[3] = {1.7, 2.7, 2.6}; + const double badc2[2] = {-1, -1}; + + vector cut1 = mkVec(c1, 1); + vector cut2 = mkVec(c2, 2); + vector cutbad1 = mkVec(badc1, 3); + vector cutbad1 = mkVec(badc2, 2); + + CPPUNIT_ASSERT_EQUAL(0, eval(_interval, -1, 1)); + CPPUNIT_ASSERT_EQUAL(0, eval(_interval, -0.1, 1); + CPPUNIT_ASSERT_EQUAL(1, eval(_interval, vector(1, 0.1), cut1)); + CPPUNIT_ASSERT_EQUAL(1, eval(_interval, vector(1, -1), cut1)); + + CPPUNIT_ASSERT_EQUAL(0, eval(_interval, vector(1, -1), cut1)); + CPPUNIT_ASSERT_EQUAL(0, eval(_interval, vector(1, -0.1), cut1)); + CPPUNIT_ASSERT_EQUAL(1, eval(_interval, vector(1, 0.1), cut1)); + CPPUNIT_ASSERT_EQUAL(1, eval(_interval, vector(1, -1), cut1)); + + //Observable functions + _dinterval = new jags::bugs::DIntervalFunc; + _dround = new jags::bugs::DRoundFunc; + _dsum = new jags::bugs::DSumFunc; +} +*/ + +void BugsFunTest::slap() +{ + //Functions that are never Scale, Linear, Additive, or Power functions + + CPPUNIT_ASSERT(neverclosed(_sin, 1)); + CPPUNIT_ASSERT(neverclosed(_cos, 1)); + CPPUNIT_ASSERT(neverclosed(_tan, 1)); + CPPUNIT_ASSERT(neverclosed(_arccos, 1)); + CPPUNIT_ASSERT(neverclosed(_arcsin, 1)); + CPPUNIT_ASSERT(neverclosed(_arctan, 1)); + + CPPUNIT_ASSERT(neverclosed(_sinh, 1)); + CPPUNIT_ASSERT(neverclosed(_cosh, 1)); + CPPUNIT_ASSERT(neverclosed(_tanh, 1)); + CPPUNIT_ASSERT(neverclosed(_arccosh, 1)); + CPPUNIT_ASSERT(neverclosed(_arcsinh, 1)); + CPPUNIT_ASSERT(neverclosed(_arctanh, 1)); + + CPPUNIT_ASSERT(neverclosed(_cloglog, 1)); + CPPUNIT_ASSERT(neverclosed(_log, 1)); + CPPUNIT_ASSERT(neverclosed(_logit, 1)); + CPPUNIT_ASSERT(neverclosed(_probit, 1)); + CPPUNIT_ASSERT(neverclosed(_icloglog, 1)); + CPPUNIT_ASSERT(neverclosed(_exp, 1)); + CPPUNIT_ASSERT(neverclosed(_ilogit, 1)); + CPPUNIT_ASSERT(neverclosed(_phi, 1)); + + CPPUNIT_ASSERT(neverclosed(_max, 1)); + CPPUNIT_ASSERT(neverclosed(_min, 1)); + CPPUNIT_ASSERT(neverclosed(_sd, 1)); + + CPPUNIT_ASSERT(neverclosed(_logfact, 1)); + CPPUNIT_ASSERT(neverclosed(_loggam, 1)); + + CPPUNIT_ASSERT(neverclosed(_round, 1)); + CPPUNIT_ASSERT(neverclosed(_step, 1)); + CPPUNIT_ASSERT(neverclosed(_trunc, 1)); + CPPUNIT_ASSERT(neverclosed(_abs, 1)); + + CPPUNIT_ASSERT(neverclosed(_dinterval, 2)); + CPPUNIT_ASSERT(neverclosed(_dround, 2)); + + CPPUNIT_ASSERT(neverclosed(_order, 1)); + CPPUNIT_ASSERT(neverclosed(_rank, 1)); + CPPUNIT_ASSERT(neverclosed(_sort, 1)); + + CPPUNIT_ASSERT(neverclosed(_inverse, 1)); + CPPUNIT_ASSERT(neverclosed(_logdet, 1)); + + CPPUNIT_ASSERT(neverclosed(_interplin, 3)); + CPPUNIT_ASSERT(neverclosed(_rep, 2)); +} + +void BugsFunTest::additive() +{ + CPPUNIT_ASSERT(neveradditive(_mean, 1)); + CPPUNIT_ASSERT(_sum->isAdditive(T, vector())); + CPPUNIT_ASSERT(neveradditive(_prod, 2)); + CPPUNIT_ASSERT(neveradditive(_sqrt, 1)); + CPPUNIT_ASSERT(_transpose->isAdditive(T, vector())); + + //CPPUNIT_ASSERT(_dsum->isLinear(TF, vector())); + //CPPUNIT_ASSERT(_dsum->isLinear(FT, vector())); + //CPPUNIT_ASSERT(_dsum->isLinear(TT, vector())); + + CPPUNIT_ASSERT(neveradditive(_matmult, 2)); + CPPUNIT_ASSERT(neveradditive(_inprod, 2)); + + //Ifelse is only additive if + //a) The first argument is not additive + //b) Both the second and third arguments are true + CPPUNIT_ASSERT(!_ifelse->isAdditive(FFF, vector())); + CPPUNIT_ASSERT(!_ifelse->isAdditive(FFT, vector())); + CPPUNIT_ASSERT(!_ifelse->isAdditive(FTF, vector())); + CPPUNIT_ASSERT(_ifelse->isAdditive(FTT, vector())); + CPPUNIT_ASSERT(!_ifelse->isAdditive(TFF, vector())); + CPPUNIT_ASSERT(!_ifelse->isAdditive(TFT, vector())); + CPPUNIT_ASSERT(!_ifelse->isAdditive(TTF, vector())); + CPPUNIT_ASSERT(!_ifelse->isAdditive(TTT, vector())); + + CPPUNIT_ASSERT(!_ifelse->isAdditive(FTT, FFF)); + CPPUNIT_ASSERT(!_ifelse->isAdditive(FTT, FFT)); + CPPUNIT_ASSERT(!_ifelse->isAdditive(FTT, FTF)); + CPPUNIT_ASSERT(!_ifelse->isAdditive(FTT, FTT)); + CPPUNIT_ASSERT(!_ifelse->isAdditive(FTT, TFF)); + CPPUNIT_ASSERT(!_ifelse->isAdditive(FTT, TFT)); + CPPUNIT_ASSERT(!_ifelse->isAdditive(FTT, TTF)); + CPPUNIT_ASSERT(!_ifelse->isAdditive(FTT, TTT)); + + //Combine is only additive if one argument is additive + CPPUNIT_ASSERT(_combine->isAdditive(FFT, vector())); + CPPUNIT_ASSERT(_combine->isAdditive(FTF, vector())); + CPPUNIT_ASSERT(!_combine->isAdditive(FTT, vector())); + CPPUNIT_ASSERT(_combine->isAdditive(TFF, vector())); + CPPUNIT_ASSERT(!_combine->isAdditive(TFT, vector())); + CPPUNIT_ASSERT(!_combine->isAdditive(TTF, vector())); + CPPUNIT_ASSERT(!_combine->isAdditive(TTT, vector())); +} + +void BugsFunTest::linear() +{ + CPPUNIT_ASSERT(_mean->isLinear(T, vector())); + CPPUNIT_ASSERT(_sum->isLinear(T, vector())); + CPPUNIT_ASSERT(neverlinear(_prod, 1)); + CPPUNIT_ASSERT(neverlinear(_sqrt, 1)); + CPPUNIT_ASSERT(_transpose->isLinear(T, vector())); + + CPPUNIT_ASSERT(_dsum->isLinear(TF, vector())); + CPPUNIT_ASSERT(_dsum->isLinear(FT, vector())); + CPPUNIT_ASSERT(_dsum->isLinear(TT, vector())); + + CPPUNIT_ASSERT(_matmult->isLinear(TF, vector())); + CPPUNIT_ASSERT(_matmult->isLinear(FT, vector())); + CPPUNIT_ASSERT(!_matmult->isLinear(TT, vector())); + + CPPUNIT_ASSERT(_inprod->isLinear(TF, vector())); + CPPUNIT_ASSERT(_inprod->isLinear(FT, vector())); + CPPUNIT_ASSERT(!_inprod->isLinear(TT, vector())); + + CPPUNIT_ASSERT(_ifelse->isLinear(FTT, vector())); + CPPUNIT_ASSERT(_ifelse->isLinear(FTF, vector())); + CPPUNIT_ASSERT(_ifelse->isLinear(FFT, vector())); + CPPUNIT_ASSERT(!_ifelse->isLinear(TFF, vector())); + CPPUNIT_ASSERT(!_ifelse->isLinear(TFT, vector())); + CPPUNIT_ASSERT(!_ifelse->isLinear(TTF, vector())); + CPPUNIT_ASSERT(!_ifelse->isLinear(TTT, vector())); + + CPPUNIT_ASSERT(!_ifelse->isLinear(FTF, FFT)); + CPPUNIT_ASSERT(!_ifelse->isLinear(FTF, TFF)); + CPPUNIT_ASSERT(!_ifelse->isLinear(FTF, TFT)); + + CPPUNIT_ASSERT(!_ifelse->isLinear(FFT, FTF)); + CPPUNIT_ASSERT(!_ifelse->isLinear(FFT, TFF)); + CPPUNIT_ASSERT(!_ifelse->isLinear(FFT, TTF)); + + CPPUNIT_ASSERT(_combine->isLinear(FFT, vector())); + CPPUNIT_ASSERT(_combine->isLinear(FTF, vector())); + CPPUNIT_ASSERT(_combine->isLinear(FTT, vector())); + CPPUNIT_ASSERT(_combine->isLinear(TFF, vector())); + CPPUNIT_ASSERT(_combine->isLinear(TFT, vector())); + CPPUNIT_ASSERT(_combine->isLinear(TTF, vector())); + CPPUNIT_ASSERT(_combine->isLinear(TTT, vector())); +} + +void BugsFunTest::scale() +{ + CPPUNIT_ASSERT(_mean->isScale(T, vector())); + CPPUNIT_ASSERT(_sum->isScale(T, vector())); + CPPUNIT_ASSERT(neverscale(_prod, 1)); + CPPUNIT_ASSERT(neverscale(_sqrt, 1)); + CPPUNIT_ASSERT(_transpose->isScale(T, vector())); + + CPPUNIT_ASSERT(!_dsum->isScale(TF, vector())); + CPPUNIT_ASSERT(!_dsum->isScale(FT, vector())); + CPPUNIT_ASSERT(_dsum->isScale(TT, vector())); + + CPPUNIT_ASSERT(_matmult->isScale(TF, vector())); + CPPUNIT_ASSERT(_matmult->isScale(FT, vector())); + CPPUNIT_ASSERT(!_matmult->isScale(TT, vector())); + + CPPUNIT_ASSERT(_inprod->isScale(TF, vector())); + CPPUNIT_ASSERT(_inprod->isScale(FT, vector())); + CPPUNIT_ASSERT(!_inprod->isScale(TT, vector())); + + CPPUNIT_ASSERT(_ifelse->isScale(FTT, vector())); + CPPUNIT_ASSERT(!_ifelse->isScale(FTF, vector())); + CPPUNIT_ASSERT(!_ifelse->isScale(FFT, vector())); + + CPPUNIT_ASSERT(_combine->isScale(TTT, vector())); + CPPUNIT_ASSERT(!_combine->isScale(TTF, vector())); + CPPUNIT_ASSERT(!_combine->isScale(TFT, vector())); + CPPUNIT_ASSERT(!_combine->isScale(FTT, vector())); +} + +void BugsFunTest::power() +{ + CPPUNIT_ASSERT(neverpow(_mean, 1)); + CPPUNIT_ASSERT(neverpow(_sum, 1)); + CPPUNIT_ASSERT(neverpow(_prod, 1)); + + CPPUNIT_ASSERT(_sqrt->isPower(vector(1,true), vector())); + + CPPUNIT_ASSERT(neverpow(_transpose, 1)); + CPPUNIT_ASSERT(neverpow(_dsum, 3)); + CPPUNIT_ASSERT(neverpow(_inprod, 2)); +} + +void BugsFunTest::sort() +{ + double x[8] = {-1.7, 3, 18, 2, -25, 8, 7, 0.5}; + + vector xord = veval(_order, x); + vector xrank = veval(_rank, x); + vector xsort = veval(_sort, x); + + for (unsigned int i = 0; i < 8; ++i) { + unsigned int j = static_cast(xord[i] - 1); + unsigned int k = static_cast(xrank[i] - 1); + + CPPUNIT_ASSERT_EQUAL(static_cast(i), xord[k] - 1); + CPPUNIT_ASSERT_EQUAL(static_cast(i), xrank[j] - 1); + CPPUNIT_ASSERT_EQUAL(x[j], xsort[i]); + CPPUNIT_ASSERT_EQUAL(x[i], xsort[k]); + } + + vector x0(0); + CPPUNIT_ASSERT_ASSERTION_FAIL(veval(_order, x0)); + CPPUNIT_ASSERT_ASSERTION_FAIL(veval(_rank, x0)); + CPPUNIT_ASSERT_ASSERTION_FAIL(veval(_sort, x0)); + + //CPPUNIT_FAIL("sort"); +} + +void BugsFunTest::matrix() +{ + //Just basic checks on the identity matrix + + for (unsigned int n = 1; n < 6; ++n) { + vector A(n*n, 0); + for (unsigned int i = 0; i < n; ++i) { + A[i + n*i] = 1; + } + vector argA(1, &A[0]); + + vector dA(n, n); + vector > dimA(1, dA); + + vector invA(n*n); + _inverse->checkParameterDim(dimA); + _inverse->evaluate(&invA[0], argA, dimA); + for (unsigned int i = 0; i < n; ++i) { + CPPUNIT_ASSERT_DOUBLES_EQUAL(A[i], invA[i], tol); + } + + double logdetA; + _logdet->checkParameterDim(dimA); + _logdet->evaluate(&logdetA, argA, dimA); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, logdetA, tol); + + vector argA2(2, &A[0]); + vector > dimA2(2, dA); + vector Asquared(n*n); + _matmult->checkParameterDim(dimA2); + _matmult->evaluate(&Asquared[0], argA2, dimA2); + for (unsigned int i = 0; i < n; ++i) { + CPPUNIT_ASSERT_DOUBLES_EQUAL(A[i], Asquared[i], tol); + } + + vector tA(n*n); + _transpose->checkParameterDim(dimA); + _transpose->evaluate(&tA[0], argA, dimA); + for (unsigned int i = 0; i < n; ++i) { + CPPUNIT_ASSERT_DOUBLES_EQUAL(A[i], tA[i], tol); + } + } +} + +void BugsFunTest::inprod() +{ + double x3[3] = {7, 8, 9}; + double y3[3] = {1, 2, -3}; + + CPPUNIT_ASSERT_DOUBLES_EQUAL(-4, eval(_inprod, x3, y3), tol); + + double x4[4] = {-1, 0, 2.7, 3}; + double y4[4] = {1, -1, 1, -1}; + + CPPUNIT_ASSERT_DOUBLES_EQUAL(-1.3, eval(_inprod, x4, y4), tol); + + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_inprod, x3, y4)); + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_inprod, x4, y3)); +} + +void BugsFunTest::interplin() +{ + double x[6] = {-10, -0.5, 0, 1.2, 3.8, 77}; + double y[6] = {-2, 3, -6.5, 8, 2.14, 7}; + + //Exact agreement at break points + for (unsigned int i = 0; i < 6; ++i) { + double ans = eval(_interplin, x[i], x, y); + CPPUNIT_ASSERT_EQUAL(y[i], ans); + } + + //Interpolation between break points + unsigned int N = 100; + for (unsigned int i = 0; i < 5; ++i) { + for (unsigned int j = 0; j <= N; ++j) { + double c = ((N - j) * x[i] + j * x[i + 1])/ N; + double ans = eval(_interplin, c, x, y); + double w = ((N - j) * y[i] + j * y[i + 1])/ N; + CPPUNIT_ASSERT_DOUBLES_EQUAL(w, ans, tol); + } + } + + //Extrapolation beyond break points + CPPUNIT_ASSERT_EQUAL(y[5], eval(_interplin, JAGS_POSINF, x, y)); + CPPUNIT_ASSERT_EQUAL(y[0], eval(_interplin, JAGS_NEGINF, x, y)); +} + +void BugsFunTest::ifelse() +{ + CPPUNIT_ASSERT_EQUAL(2.0, eval(_ifelse, 0, 1, 2)); + CPPUNIT_ASSERT_EQUAL(1.0, eval(_ifelse, 1, 1, 2)); + CPPUNIT_ASSERT_EQUAL(1.0, eval(_ifelse, -1, 1, 2)); + CPPUNIT_ASSERT_EQUAL(1.0, eval(_ifelse, DBL_EPSILON, 1, 2)); + CPPUNIT_ASSERT_EQUAL(1.0, eval(_ifelse, JAGS_POSINF, 1, 2)); + CPPUNIT_ASSERT_EQUAL(1.0, eval(_ifelse, JAGS_NEGINF, 1, 2)); +} + +void BugsFunTest::discrete() +{ + //Trigonometric functions and their inverses + CPPUNIT_ASSERT(isdiscrete(_sin, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_cos, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_tan, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_arccos, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_arcsin, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_arctan, 1, never)); + + //Hyperbolic functions and their inverses + CPPUNIT_ASSERT(isdiscrete(_sinh, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_cosh, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_tanh, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_arcsinh, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_arccosh, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_arctanh, 1, never)); + + //Link functions and their inverses + CPPUNIT_ASSERT(isdiscrete(_cloglog, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_log, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_logit, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_probit, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_icloglog, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_exp, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_ilogit, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_phi, 1, never)); + + //Scalar summaries of vectors + CPPUNIT_ASSERT(isdiscrete(_max, 1, all)); + CPPUNIT_ASSERT(isdiscrete(_mean, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_min, 1, all)); + CPPUNIT_ASSERT(isdiscrete(_sum, 1, all)); + CPPUNIT_ASSERT(isdiscrete(_sd, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_prod, 1, all)); + + //Mathematical functions + CPPUNIT_ASSERT(isdiscrete(_logfact, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_loggam, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_sqrt, 1, never)); + + //Lossy scalar functions + CPPUNIT_ASSERT(isdiscrete(_round, 1, always)); + CPPUNIT_ASSERT(isdiscrete(_step, 1, always)); + CPPUNIT_ASSERT(isdiscrete(_trunc, 1, always)); + CPPUNIT_ASSERT(isdiscrete(_abs, 1, all)); + + //Observable functions + CPPUNIT_ASSERT(isdiscrete(_dinterval, 2, always)); + CPPUNIT_ASSERT(isdiscrete(_dround, 2, never)); + CPPUNIT_ASSERT(isdiscrete(_dsum, 1, all)); + + //Sorting functions + CPPUNIT_ASSERT(isdiscrete(_order, 1, always)); + CPPUNIT_ASSERT(isdiscrete(_rank, 1, always)); + CPPUNIT_ASSERT(isdiscrete(_sort, 1, all)); + + //Matrix functions + CPPUNIT_ASSERT(isdiscrete(_inverse, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_logdet, 1, never)); + CPPUNIT_ASSERT(isdiscrete(_matmult, 2, all)); + CPPUNIT_ASSERT(isdiscrete(_transpose, 1, all)); + CPPUNIT_ASSERT(isdiscrete(_inprod, 2, all)); + + //Odds and sods + CPPUNIT_ASSERT(_ifelse->isDiscreteValued(FTT)); + CPPUNIT_ASSERT(_ifelse->isDiscreteValued(TTT)); + CPPUNIT_ASSERT(!_ifelse->isDiscreteValued(TTF)); + CPPUNIT_ASSERT(!_ifelse->isDiscreteValued(TFT)); + CPPUNIT_ASSERT(!_ifelse->isDiscreteValued(TFF)); + + CPPUNIT_ASSERT(isdiscrete(_interplin, 3, never)); + + CPPUNIT_ASSERT(_rep->isDiscreteValued(TT)); + CPPUNIT_ASSERT(_rep->isDiscreteValued(TF)); + CPPUNIT_ASSERT(!_rep->isDiscreteValued(FT)); + CPPUNIT_ASSERT(!_rep->isDiscreteValued(FF)); +} + +void BugsFunTest::combine() { + + vector x0(0); + double x1[1] = {-1}; + double x3[3] = {7, 8, 9}; + double x6[6] = {-10, -0.5, 0, 1.2, 3.8, 77}; + + //c(x6) == x6 + vector out1 = veval(_combine, x6); + CPPUNIT_ASSERT_EQUAL(static_cast(6), out1.size()); + CPPUNIT_ASSERT(equal(out1.begin(), out1.end(), x6)); + + //c(x0) has size 0 + vector out2 = veval(_combine, x0); + CPPUNIT_ASSERT_EQUAL(static_cast(0), out2.size()); + + //c(x1, x3, x0, x3) == c(-1, 7, 8, 9, 7, 8, 9) + double y3[7] = {-1, 7, 8, 9, 7, 8, 9}; + vector out3 = veval(_combine, x1, x3, x0, x3); + CPPUNIT_ASSERT_EQUAL(static_cast(7), out3.size()); + CPPUNIT_ASSERT(equal(out3.begin(), out3.end(), y3)); +} + +void BugsFunTest::rep() { + + double x3[3] = {7, 8, 9}; + double x6[6] = {-10, -0.5, 0, 1.2, 3.8, 77}; + + double l3[3] = {1,2,3}; + double l6[6] = {1,1,0,0,0,2}; + + // rep(0, 3) == c(0, 0, 0) + double y1[3] = {0, 0, 0}; + vector out1 = veval(_rep, 0, 3); + CPPUNIT_ASSERT_EQUAL(static_cast(3), out1.size()); + CPPUNIT_ASSERT(equal(out1.begin(), out1.end(), y1)); + + // rep(x3, 4) == c(7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9) + double y2[12] = {7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9}; + vector out2 = veval(_rep, x3, 4); + CPPUNIT_ASSERT_EQUAL(static_cast(12), out2.size()); + CPPUNIT_ASSERT(equal(out2.begin(), out2.end(), y2)); + + // rep(x3, l3) == c(7, 8, 8, 9, 9, 9) + double y3[6] = {7, 8, 8, 9, 9, 9}; + vector out3 = veval(_rep, x3, l3); + CPPUNIT_ASSERT_EQUAL(static_cast(6), out3.size()); + CPPUNIT_ASSERT(equal(out3.begin(), out3.end(), y3)); + + // rep(x6, l6) == c(-10, -0.5, 77, 77) + double y4[4] = {-10, -0.5, 77, 77}; + vector out4 = veval(_rep, x6, l6); + CPPUNIT_ASSERT_EQUAL(static_cast(4), out4.size()); + CPPUNIT_ASSERT(equal(out4.begin(), out4.end(), y4)); + + // rep(x3, 0) == numeric(0) + vector out5 = veval(_rep, x3, 0); + CPPUNIT_ASSERT_EQUAL(static_cast(0), out5.size()); + + // rep(numeric(0), numeric(0)) == numeric(0) + vector x0(0), l0(0); + vector out6 = veval(_rep, x0, l0); + CPPUNIT_ASSERT_EQUAL(static_cast(0), out6.size()); + + // rep(numeric(0), 7) == numeric(0) + vector out7 = veval(_rep, x0, 7); + CPPUNIT_ASSERT_EQUAL(static_cast(0), out7.size()); + + // rep(numeric(0), l3) == numeric(0) + vector out8 = veval(_rep, x0, l3); + CPPUNIT_ASSERT_EQUAL(static_cast(0), out8.size()); + + //Check that argument length mismatches are caught + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_rep, x3, l0)); + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_rep, x3, l6)); + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_rep, x6, l0)); + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_rep, x6, l3)); + + //Forbid negative values in second argument + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_rep, x3, -1)); + double badl3[3] = {1,2,-2}; + CPPUNIT_ASSERT_ASSERTION_FAIL(eval(_rep, x3, badl3)); + + //CPPUNIT_FAIL("rep"); +} diff -Nru jags-3.4.0/src/modules/bugs/functions/testbugsfun.h jags-4.0.0/src/modules/bugs/functions/testbugsfun.h --- jags-3.4.0/src/modules/bugs/functions/testbugsfun.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/testbugsfun.h 2015-09-27 07:06:19.000000000 +0000 @@ -0,0 +1,160 @@ +#ifndef BUGS_FUN_TEST_H +#define BUGS_FUN_TEST_H + +namespace jags { + class ScalarFunction; + class VectorFunction; + class ArrayFunction; + class LinkFunction; +} + +#include +#include +#include + +class BugsFunTest : public CppUnit::TestFixture, public JAGSFixture +{ + CPPUNIT_TEST_SUITE( BugsFunTest ); + CPPUNIT_TEST( npar ); + CPPUNIT_TEST( name ); + CPPUNIT_TEST( alias ); + CPPUNIT_TEST( trig ); + CPPUNIT_TEST( hyper ); + CPPUNIT_TEST( link ); + CPPUNIT_TEST( summary ); + CPPUNIT_TEST( math ); + CPPUNIT_TEST( lossy ); + CPPUNIT_TEST( slap ); + CPPUNIT_TEST( additive ); + CPPUNIT_TEST( linear ); + CPPUNIT_TEST( scale ); + CPPUNIT_TEST( sort ); + CPPUNIT_TEST( matrix ); + CPPUNIT_TEST( inprod ); + CPPUNIT_TEST( ifelse ); + CPPUNIT_TEST( interplin ); + CPPUNIT_TEST( discrete ); + CPPUNIT_TEST( combine ); + CPPUNIT_TEST( rep ); + CPPUNIT_TEST_SUITE_END(); + + jags::ScalarFunction *_abs; + jags::ScalarFunction *_arccos; + jags::ScalarFunction *_arccosh; + jags::ScalarFunction *_arcsin; + jags::ScalarFunction *_arcsinh; + jags::ScalarFunction *_arctan; + jags::ScalarFunction *_arctanh; + jags::ScalarFunction *_cloglog; + jags::VectorFunction *_combine; + jags::ScalarFunction *_cos; + jags::ScalarFunction *_cosh; + jags::VectorFunction *_dinterval; + jags::ScalarFunction *_dround; + jags::ArrayFunction *_dsum; + jags::LinkFunction *_exp; + jags::LinkFunction *_icloglog; + jags::ScalarFunction *_ifelse; + jags::LinkFunction *_ilogit; + jags::VectorFunction *_inprod; + jags::VectorFunction *_interplin; + jags::ArrayFunction *_inverse; + jags::ArrayFunction *_logdet; + jags::ScalarFunction *_logfact; + jags::ScalarFunction *_loggam; + jags::ScalarFunction *_log; + jags::ScalarFunction *_logit; + jags::ArrayFunction *_matmult; + jags::VectorFunction *_max; + jags::VectorFunction *_mean; + jags::VectorFunction *_min; + jags::VectorFunction *_order; + jags::LinkFunction *_phi; + jags::ScalarFunction *_probit; + jags::VectorFunction *_prod; + jags::VectorFunction *_rank; + jags::VectorFunction *_rep; + jags::ScalarFunction *_round; + jags::VectorFunction *_sd; + jags::ScalarFunction *_sin; + jags::ScalarFunction *_sinh; + jags::VectorFunction *_sort; + jags::ScalarFunction *_sqrt; + jags::ScalarFunction *_step; + jags::VectorFunction *_sum; + jags::ScalarFunction *_tan; + jags::ScalarFunction *_tanh; + jags::ArrayFunction *_transpose; + jags::ScalarFunction *_trunc; + jags::ScalarFunction *_yytrunc; + + void link(jags::ScalarFunction const *f, jags::LinkFunction const *link, + double lower, double upper, int N); + + + /* + void summary(double const *v, unsigned int N); + void summary(double const *v1, unsigned int N1, + double const *v2, unsigned int N2); + */ + + void summary(std::vector const &v); + void summary(std::vector const &v1, std::vector const &v2); + + + /* + template + void summary(double const (&x)[N]) { + summary(x, N); + } + + template + void summary(double const (&x)[N1], double const (&y)[N2]) { + summary(x, N1, y, N2); + } + */ + + template + void summary(double const (&x)[N]) { + summary(mkVec(x)); + } + + template + void summary(double const (&x)[N1], double const (&y)[N2]) { + summary(mkVec(x), mkVec(y)); + } + + void trig(double v); + void hyper(double v); + + public: + void setUp(); + void tearDown(); + + void npar(); + void name(); + void alias(); + void link(); + void summary(); + void trig(); + void hyper(); + void math(); + void lossy(); + void slap(); + void additive(); + void linear(); + void scale(); + void sort(); + void power(); + void matrix(); + void inprod(); + void ifelse(); + void discrete(); + void interplin(); + void combine(); + void rep(); +}; + +#endif // BUGS_FUN_TEST_H + + diff -Nru jags-3.4.0/src/modules/bugs/functions/Transpose.cc jags-4.0.0/src/modules/bugs/functions/Transpose.cc --- jags-3.4.0/src/modules/bugs/functions/Transpose.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Transpose.cc 2015-07-03 07:05:40.000000000 +0000 @@ -1,9 +1,11 @@ #include +#include #include "Transpose.h" using std::vector; +namespace jags { namespace bugs { Transpose::Transpose() @@ -24,7 +26,8 @@ } vector - Transpose::dim (vector > const &dims) const + Transpose::dim (vector > const &dims, + vector const &values) const { vector ans(2); ans[0] = dims[0].size() == 2 ? dims[0][1] : 1; @@ -36,13 +39,23 @@ Transpose::checkParameterDim (vector > const &dims) const { - return dims[0].size() == 1 || dims[0].size() == 2; + return isScalar(dims[0]) || isVector(dims[0]) || isMatrix(dims[0]); } + bool Transpose::isAdditive(vector const &mask, + vector const &isfixed) const + { + return true; + } + bool Transpose::isScale(vector const &mask, vector const &isfixed) const { return true; } - -} + + bool Transpose::isDiscreteValued(std::vector const &mask) const + { + return mask[0]; + } +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Transpose.h jags-4.0.0/src/modules/bugs/functions/Transpose.h --- jags-3.4.0/src/modules/bugs/functions/Transpose.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Transpose.h 2015-07-03 07:05:21.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { class Transpose : public ArrayFunction @@ -13,12 +14,16 @@ std::vector > const &dims) const; std::vector - dim(std::vector > const &dims) const; + dim(std::vector > const &dims, + std::vector const &values) const; bool checkParameterDim(std::vector > const &dims) const; + bool isAdditive(std::vector const &mask, + std::vector const &isfixed) const; bool isScale(std::vector const &mask, std::vector const &isfixed) const; + bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* TRANSPOSE_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/functions/Trunc.cc jags-4.0.0/src/modules/bugs/functions/Trunc.cc --- jags-3.4.0/src/modules/bugs/functions/Trunc.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Trunc.cc 2015-02-22 08:33:05.000000000 +0000 @@ -7,6 +7,7 @@ using std::vector; using std::floor; +namespace jags { namespace bugs { Trunc::Trunc ():ScalarFunction ("trunc", 1) @@ -23,4 +24,5 @@ { return true; } -} + +}} diff -Nru jags-3.4.0/src/modules/bugs/functions/Trunc.h jags-4.0.0/src/modules/bugs/functions/Trunc.h --- jags-3.4.0/src/modules/bugs/functions/Trunc.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/functions/Trunc.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -19,6 +20,6 @@ bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* FUNC_TRUNC_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/Makefile.am jags-4.0.0/src/modules/bugs/Makefile.am --- jags-3.4.0/src/modules/bugs/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/Makefile.am 2015-09-28 21:21:59.000000000 +0000 @@ -6,15 +6,44 @@ bugs_la_CPPFLAGS = -I$(top_srcdir)/src/include -bugs_la_LIBADD = distributions/bugsdist.la \ - functions/bugsfunc.la \ - samplers/bugssampler.la \ - matrix/bugsmatrix.la \ - $(top_builddir)/src/jrmath/libjrmath.la \ +bugs_la_LIBADD = distributions/libbugsdist.la \ + functions/libbugsfunc.la \ + samplers/libbugssampler.la \ + matrix/libbugsmatrix.la \ + $(top_builddir)/src/jrmath/libjrmath.la \ $(top_builddir)/src/lib/libjags.la \ @LAPACK_LIBS@ @BLAS_LIBS@ bugs_la_LDFLAGS = -module -avoid-version + if WINDOWS bugs_la_LDFLAGS += -no-undefined +else +# Adding FLIBS here allows static linking, but on Windows we don't want to +# do this as it will cause failure to build bugs.dll using Rtools +bugs_la_LIBADD += @FLIBS@ +endif + +### Test library + +check_LTLIBRARIES = libbugstest.la +libbugstest_la_SOURCES = testbugs.cc testbugs.h +libbugstest_la_CPPFLAGS = -I$(top_srcdir)/src/include +libbugstest_la_CXXFLAGS = $(CPPUNIT_CFLAGS) +libbugstest_la_LDFLAGS = $(CPPUNIT_LDFLAGS) +libbugstest_la_LIBADD = functions/libbugsfuntest.la \ + functions/libbugsfunc.la \ + distributions/libbugsdisttest.la \ + distributions/libbugsdist.la \ + matrix/libbugsmatrix.la \ + $(top_builddir)/src/modules/base/rngs/libbaserngs.la \ + $(top_builddir)/src/lib/libtest.la \ + $(top_builddir)/src/lib/libjags.la \ + $(top_builddir)/src/jrmath/libjrmath.la \ + @LAPACK_LIBS@ @BLAS_LIBS@ + +if WINDOWS +libbugstest_la_LDFLAGS += -no-undefined +else +libbugstest_la_LIBADD += @FLIBS@ endif diff -Nru jags-3.4.0/src/modules/bugs/Makefile.in jags-4.0.0/src/modules/bugs/Makefile.in --- jags-3.4.0/src/modules/bugs/Makefile.in 2013-08-30 13:23:28.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/Makefile.in 2015-09-28 21:41:14.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +89,12 @@ build_triplet = @build@ host_triplet = @host@ @WINDOWS_TRUE@am__append_1 = -no-undefined +# Adding FLIBS here allows static linking, but on Windows we don't want to +# do this as it will cause failure to build bugs.dll using Rtools +@WINDOWS_FALSE@am__append_2 = @FLIBS@ +@WINDOWS_TRUE@am__append_3 = -no-undefined +@WINDOWS_FALSE@am__append_4 = @FLIBS@ subdir = src/modules/bugs -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -63,6 +104,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -96,37 +138,96 @@ } am__installdirs = "$(DESTDIR)$(jagsmoddir)" LTLIBRARIES = $(jagsmod_LTLIBRARIES) -bugs_la_DEPENDENCIES = distributions/bugsdist.la functions/bugsfunc.la \ - samplers/bugssampler.la matrix/bugsmatrix.la \ +am__DEPENDENCIES_1 = +bugs_la_DEPENDENCIES = distributions/libbugsdist.la \ + functions/libbugsfunc.la samplers/libbugssampler.la \ + matrix/libbugsmatrix.la \ $(top_builddir)/src/jrmath/libjrmath.la \ - $(top_builddir)/src/lib/libjags.la + $(top_builddir)/src/lib/libjags.la $(am__DEPENDENCIES_1) am_bugs_la_OBJECTS = bugs_la-bugs.lo bugs_la_OBJECTS = $(am_bugs_la_OBJECTS) -bugs_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ - $(bugs_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +bugs_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(bugs_la_LDFLAGS) $(LDFLAGS) -o $@ +libbugstest_la_DEPENDENCIES = functions/libbugsfuntest.la \ + functions/libbugsfunc.la distributions/libbugsdisttest.la \ + distributions/libbugsdist.la matrix/libbugsmatrix.la \ + $(top_builddir)/src/modules/base/rngs/libbaserngs.la \ + $(top_builddir)/src/lib/libtest.la \ + $(top_builddir)/src/lib/libjags.la \ + $(top_builddir)/src/jrmath/libjrmath.la $(am__DEPENDENCIES_1) +am_libbugstest_la_OBJECTS = libbugstest_la-testbugs.lo +libbugstest_la_OBJECTS = $(am_libbugstest_la_OBJECTS) +libbugstest_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ + $(libbugstest_la_CXXFLAGS) $(CXXFLAGS) \ + $(libbugstest_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(bugs_la_SOURCES) -DIST_SOURCES = $(bugs_la_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(bugs_la_SOURCES) $(libbugstest_la_SOURCES) +DIST_SOURCES = $(bugs_la_SOURCES) $(libbugstest_la_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -134,12 +235,33 @@ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ @@ -168,6 +290,7 @@ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -181,6 +304,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -250,10 +376,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -323,15 +445,27 @@ jagsmod_LTLIBRARIES = bugs.la bugs_la_SOURCES = bugs.cc bugs_la_CPPFLAGS = -I$(top_srcdir)/src/include -bugs_la_LIBADD = distributions/bugsdist.la \ - functions/bugsfunc.la \ - samplers/bugssampler.la \ - matrix/bugsmatrix.la \ - $(top_builddir)/src/jrmath/libjrmath.la \ - $(top_builddir)/src/lib/libjags.la \ - @LAPACK_LIBS@ @BLAS_LIBS@ - +bugs_la_LIBADD = distributions/libbugsdist.la functions/libbugsfunc.la \ + samplers/libbugssampler.la matrix/libbugsmatrix.la \ + $(top_builddir)/src/jrmath/libjrmath.la \ + $(top_builddir)/src/lib/libjags.la @LAPACK_LIBS@ @BLAS_LIBS@ \ + $(am__append_2) bugs_la_LDFLAGS = -module -avoid-version $(am__append_1) + +### Test library +check_LTLIBRARIES = libbugstest.la +libbugstest_la_SOURCES = testbugs.cc testbugs.h +libbugstest_la_CPPFLAGS = -I$(top_srcdir)/src/include +libbugstest_la_CXXFLAGS = $(CPPUNIT_CFLAGS) +libbugstest_la_LDFLAGS = $(CPPUNIT_LDFLAGS) $(am__append_3) +libbugstest_la_LIBADD = functions/libbugsfuntest.la \ + functions/libbugsfunc.la distributions/libbugsdisttest.la \ + distributions/libbugsdist.la matrix/libbugsmatrix.la \ + $(top_builddir)/src/modules/base/rngs/libbaserngs.la \ + $(top_builddir)/src/lib/libtest.la \ + $(top_builddir)/src/lib/libjags.la \ + $(top_builddir)/src/jrmath/libjrmath.la @LAPACK_LIBS@ \ + @BLAS_LIBS@ $(am__append_4) all: all-recursive .SUFFIXES: @@ -348,7 +482,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/bugs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/bugs/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -366,6 +499,18 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + +clean-checkLTLIBRARIES: + -test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES) + @list='$(check_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + install-jagsmodLTLIBRARIES: $(jagsmod_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(jagsmod_LTLIBRARIES)'; test -n "$(jagsmoddir)" || list=; \ @@ -392,14 +537,20 @@ clean-jagsmodLTLIBRARIES: -test -z "$(jagsmod_LTLIBRARIES)" || rm -f $(jagsmod_LTLIBRARIES) - @list='$(jagsmod_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(jagsmod_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + bugs.la: $(bugs_la_OBJECTS) $(bugs_la_DEPENDENCIES) $(EXTRA_bugs_la_DEPENDENCIES) - $(bugs_la_LINK) -rpath $(jagsmoddir) $(bugs_la_OBJECTS) $(bugs_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(bugs_la_LINK) -rpath $(jagsmoddir) $(bugs_la_OBJECTS) $(bugs_la_LIBADD) $(LIBS) + +libbugstest.la: $(libbugstest_la_OBJECTS) $(libbugstest_la_DEPENDENCIES) $(EXTRA_libbugstest_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libbugstest_la_LINK) $(libbugstest_la_OBJECTS) $(libbugstest_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -408,34 +559,45 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugs_la-bugs.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugstest_la-testbugs.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< bugs_la-bugs.lo: bugs.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugs_la-bugs.lo -MD -MP -MF $(DEPDIR)/bugs_la-bugs.Tpo -c -o bugs_la-bugs.lo `test -f 'bugs.cc' || echo '$(srcdir)/'`bugs.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugs_la-bugs.Tpo $(DEPDIR)/bugs_la-bugs.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='bugs.cc' object='bugs_la-bugs.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugs_la-bugs.lo -MD -MP -MF $(DEPDIR)/bugs_la-bugs.Tpo -c -o bugs_la-bugs.lo `test -f 'bugs.cc' || echo '$(srcdir)/'`bugs.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bugs_la-bugs.Tpo $(DEPDIR)/bugs_la-bugs.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='bugs.cc' object='bugs_la-bugs.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugs_la-bugs.lo `test -f 'bugs.cc' || echo '$(srcdir)/'`bugs.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugs_la-bugs.lo `test -f 'bugs.cc' || echo '$(srcdir)/'`bugs.cc + +libbugstest_la-testbugs.lo: testbugs.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugstest_la_CPPFLAGS) $(CPPFLAGS) $(libbugstest_la_CXXFLAGS) $(CXXFLAGS) -MT libbugstest_la-testbugs.lo -MD -MP -MF $(DEPDIR)/libbugstest_la-testbugs.Tpo -c -o libbugstest_la-testbugs.lo `test -f 'testbugs.cc' || echo '$(srcdir)/'`testbugs.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugstest_la-testbugs.Tpo $(DEPDIR)/libbugstest_la-testbugs.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='testbugs.cc' object='libbugstest_la-testbugs.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugstest_la_CPPFLAGS) $(CPPFLAGS) $(libbugstest_la_CXXFLAGS) $(CXXFLAGS) -c -o libbugstest_la-testbugs.lo `test -f 'testbugs.cc' || echo '$(srcdir)/'`testbugs.cc mostlyclean-libtool: -rm -f *.lo @@ -444,22 +606,25 @@ -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -474,57 +639,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -540,12 +660,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -557,15 +672,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -574,6 +685,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -634,6 +760,7 @@ fi; \ done check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_LTLIBRARIES) check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive @@ -673,8 +800,8 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-generic clean-jagsmodLTLIBRARIES clean-libtool \ - mostlyclean-am +clean-am: clean-checkLTLIBRARIES clean-generic \ + clean-jagsmodLTLIBRARIES clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) @@ -742,13 +869,12 @@ uninstall-am: uninstall-jagsmodLTLIBRARIES -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) check-am install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic \ - clean-jagsmodLTLIBRARIES clean-libtool ctags ctags-recursive \ - distclean distclean-compile distclean-generic \ +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-checkLTLIBRARIES clean-generic \ + clean-jagsmodLTLIBRARIES clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -758,8 +884,10 @@ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-jagsmodLTLIBRARIES + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-jagsmodLTLIBRARIES + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/bugs/matrix/Makefile.am jags-4.0.0/src/modules/bugs/matrix/Makefile.am --- jags-3.4.0/src/modules/bugs/matrix/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/matrix/Makefile.am 2015-09-27 10:19:18.000000000 +0000 @@ -1,9 +1,7 @@ -noinst_LTLIBRARIES = bugsmatrix.la +noinst_LTLIBRARIES = libbugsmatrix.la -bugsmatrix_la_CPPFLAGS = -I$(top_srcdir)/src/include +libbugsmatrix_la_CPPFLAGS = -I$(top_srcdir)/src/include -bugsmatrix_la_LDFLAGS = -no-undefined -module -avoid-version - -bugsmatrix_la_SOURCES = matrix.cc +libbugsmatrix_la_SOURCES = matrix.cc noinst_HEADERS = lapack.h matrix.h diff -Nru jags-3.4.0/src/modules/bugs/matrix/Makefile.in jags-4.0.0/src/modules/bugs/matrix/Makefile.in --- jags-3.4.0/src/modules/bugs/matrix/Makefile.in 2013-08-30 13:23:28.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/matrix/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/bugs/matrix -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,43 +99,86 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) -bugsmatrix_la_LIBADD = -am_bugsmatrix_la_OBJECTS = bugsmatrix_la-matrix.lo -bugsmatrix_la_OBJECTS = $(am_bugsmatrix_la_OBJECTS) -bugsmatrix_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ - $(CXXFLAGS) $(bugsmatrix_la_LDFLAGS) $(LDFLAGS) -o $@ +libbugsmatrix_la_LIBADD = +am_libbugsmatrix_la_OBJECTS = libbugsmatrix_la-matrix.lo +libbugsmatrix_la_OBJECTS = $(am_libbugsmatrix_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(bugsmatrix_la_SOURCES) -DIST_SOURCES = $(bugsmatrix_la_SOURCES) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +SOURCES = $(libbugsmatrix_la_SOURCES) +DIST_SOURCES = $(libbugsmatrix_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -114,6 +192,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -183,10 +264,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -252,10 +329,9 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -noinst_LTLIBRARIES = bugsmatrix.la -bugsmatrix_la_CPPFLAGS = -I$(top_srcdir)/src/include -bugsmatrix_la_LDFLAGS = -no-undefined -module -avoid-version -bugsmatrix_la_SOURCES = matrix.cc +noinst_LTLIBRARIES = libbugsmatrix.la +libbugsmatrix_la_CPPFLAGS = -I$(top_srcdir)/src/include +libbugsmatrix_la_SOURCES = matrix.cc noinst_HEADERS = lapack.h matrix.h all: all-am @@ -273,7 +349,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/bugs/matrix/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/bugs/matrix/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -294,14 +369,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -bugsmatrix.la: $(bugsmatrix_la_OBJECTS) $(bugsmatrix_la_DEPENDENCIES) $(EXTRA_bugsmatrix_la_DEPENDENCIES) - $(bugsmatrix_la_LINK) $(bugsmatrix_la_OBJECTS) $(bugsmatrix_la_LIBADD) $(LIBS) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libbugsmatrix.la: $(libbugsmatrix_la_OBJECTS) $(libbugsmatrix_la_DEPENDENCIES) $(EXTRA_libbugsmatrix_la_DEPENDENCIES) + $(AM_V_CXXLD)$(CXXLINK) $(libbugsmatrix_la_OBJECTS) $(libbugsmatrix_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -309,35 +387,38 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugsmatrix_la-matrix.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugsmatrix_la-matrix.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< -bugsmatrix_la-matrix.lo: matrix.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugsmatrix_la-matrix.lo -MD -MP -MF $(DEPDIR)/bugsmatrix_la-matrix.Tpo -c -o bugsmatrix_la-matrix.lo `test -f 'matrix.cc' || echo '$(srcdir)/'`matrix.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugsmatrix_la-matrix.Tpo $(DEPDIR)/bugsmatrix_la-matrix.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='matrix.cc' object='bugsmatrix_la-matrix.lo' libtool=yes @AMDEPBACKSLASH@ +libbugsmatrix_la-matrix.lo: matrix.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugsmatrix_la-matrix.lo -MD -MP -MF $(DEPDIR)/libbugsmatrix_la-matrix.Tpo -c -o libbugsmatrix_la-matrix.lo `test -f 'matrix.cc' || echo '$(srcdir)/'`matrix.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugsmatrix_la-matrix.Tpo $(DEPDIR)/libbugsmatrix_la-matrix.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='matrix.cc' object='libbugsmatrix_la-matrix.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugsmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugsmatrix_la-matrix.lo `test -f 'matrix.cc' || echo '$(srcdir)/'`matrix.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugsmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugsmatrix_la-matrix.lo `test -f 'matrix.cc' || echo '$(srcdir)/'`matrix.cc mostlyclean-libtool: -rm -f *.lo @@ -345,26 +426,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -376,15 +446,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -393,6 +459,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -534,18 +615,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/bugs/matrix/matrix.cc jags-4.0.0/src/modules/bugs/matrix/matrix.cc --- jags-3.4.0/src/modules/bugs/matrix/matrix.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/matrix/matrix.cc 2015-02-22 08:33:05.000000000 +0000 @@ -2,6 +2,8 @@ #include #include +#include +#include #include @@ -10,6 +12,11 @@ using std::log; using std::fabs; +using std::copy; +using std::vector; + +namespace jags { +namespace bugs { double logdet(double const *a, int n) { @@ -54,6 +61,38 @@ return logdet; } +bool check_symmetric_ispd(double const *a, int n) +{ + /* Checks that an n x n symmetric matrix is positive definite. + The code is essentially the same as logdet, but we return + false if the smallest eigenvalue is less than zero. + */ + + int N = n*n; + vector acopy(N); + copy(a, a+N, acopy.begin()); + + //Workspace query to get optimal workspace + vector w(n); + int lwork = -1; + double worktest = 0; + int info = 0; + F77_DSYEV("N","U", &n, &acopy[0], &n, &w[0], &worktest, &lwork, &info); + if (info != 0) { + throwRuntimeError("unable to calculate workspace size for dsyev"); + } + lwork = static_cast(worktest); + vector work(lwork); + + //Calculate eigenvalues + F77_DSYEV("N","U", &n, &acopy[0], &n, &w[0], &work[0], &lwork, &info); + if (info != 0) { + throwRuntimeError("unable to calculate eigenvalues in dsyev"); + } + + return w[0] > 0; +} + /* double det(double const *a, int n) { @@ -182,3 +221,5 @@ } return true; } + +}} diff -Nru jags-3.4.0/src/modules/bugs/matrix/matrix.h jags-4.0.0/src/modules/bugs/matrix/matrix.h --- jags-3.4.0/src/modules/bugs/matrix/matrix.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/matrix/matrix.h 2015-02-22 08:33:05.000000000 +0000 @@ -1,6 +1,9 @@ #ifndef MATRIX_H_ #define MATRIX_H_ +namespace jags { +namespace bugs { + /** * Inverts a general square matrix using the LAPACK routine DGESV * @@ -28,6 +31,16 @@ bool inverse_spd (double *X, double const *A, int n); /** + * Checks whether a symmetric matrix is positive definite + * + * @param A pointer to array containing the values of the matrix. Only + * the lower triangle (in column-major order) is used. + * + * @param n number or rows or columns in the matrix + */ +bool check_symmetric_ispd(double const *a, int n); + +/** * Log determinant of a symmetric positive definite matrix * * @param A pointer to array containing the values of the matrix. Only @@ -48,4 +61,6 @@ */ bool check_symmetry(double const *X, unsigned int n, double tol=1e-7); +}} + #endif /* MATRIX_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/Censored.cc jags-4.0.0/src/modules/bugs/samplers/Censored.cc --- jags-3.4.0/src/modules/bugs/samplers/Censored.cc 2012-02-17 13:35:49.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/Censored.cc 2015-02-22 08:33:05.000000000 +0000 @@ -3,9 +3,10 @@ #include "Censored.h" #include "DInterval.h" -#include +#include #include #include +#include #include #include @@ -14,21 +15,22 @@ using std::vector; using std::string; -static int indicator(GraphView const *gv, unsigned int ch) +namespace jags { +namespace bugs { + +static int indicator(SingletonGraphView const *gv, unsigned int ch) { return static_cast(gv->stochasticChildren()[0]->value(ch)[0]); } -static Node const *breaks(GraphView const *gv) +static Node const *breaks(SingletonGraphView const *gv) { return gv->stochasticChildren()[0]->parents()[1]; } -namespace bugs { - -Censored::Censored(GraphView const *gv) +Censored::Censored(SingletonGraphView const *gv) : ConjugateMethod(gv), - _snode(dynamic_cast(gv->nodes()[0])) + _snode(dynamic_cast(gv->node())) { int nbreaks = breaks(gv)->length(); for (unsigned int ch = 0; ch < _snode->nchain(); ++ch) { @@ -60,8 +62,8 @@ //Check that we have a single stochastic child, which is a direct //child of the sampled node which has distribution "dinterval" - GraphView gv(snode, graph); - vector const &schild = gv.stochasticChildren(); + SingletonGraphView gv(snode, graph); + vector const &schild = gv.stochasticChildren(); vector const &dchild = gv.deterministicChildren(); if(schild.size() != 1) @@ -88,9 +90,4 @@ _snode->truncatedSample(rng, chain, lower, upper); } -string Censored::name() const -{ - return "Censored"; -} - -} +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/Censored.h jags-4.0.0/src/modules/bugs/samplers/Censored.h --- jags-3.4.0/src/modules/bugs/samplers/Censored.h 2012-02-20 08:53:34.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/Censored.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,7 +3,9 @@ #include "ConjugateMethod.h" -class StochasticNode; +namespace jags { + + class Graph; namespace bugs { @@ -13,12 +15,11 @@ class Censored : public ConjugateMethod { StochasticNode *_snode; public: - Censored(GraphView const *gv); + Censored(SingletonGraphView const *gv); static bool canSample(StochasticNode *snode, Graph const &graph); void update(unsigned int chain, RNG * rng) const; - std::string name() const; }; -} +}} #endif /* CENSORED_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/ConjugateBeta.cc jags-4.0.0/src/modules/bugs/samplers/ConjugateBeta.cc --- jags-3.4.0/src/modules/bugs/samplers/ConjugateBeta.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ConjugateBeta.cc 2015-02-22 08:33:05.000000000 +0000 @@ -1,13 +1,12 @@ #include #include "ConjugateBeta.h" -#include "ConjugateSampler.h" #include #include #include #include -#include +#include #include #include @@ -25,6 +24,7 @@ using std::min; using std::string; +namespace jags { namespace bugs { bool ConjugateBeta::canSample(StochasticNode *snode, Graph const &graph) @@ -36,17 +36,17 @@ // dunif(0,1) is equivalent to dbeta(1,1) if(!(*snode->parents()[0]->value(0) == 0 && *snode->parents()[1]->value(0) == 1 && - snode->parents()[0]->isObserved() && - snode->parents()[1]->isObserved())) + snode->parents()[0]->isFixed() && + snode->parents()[1]->isFixed())) return false; break; default: return false; } - GraphView gv(snode, graph); + SingletonGraphView gv(snode, graph); vector const &dchild = gv.deterministicChildren(); - vector const &schild = gv.stochasticChildren(); + vector const &schild = gv.stochasticChildren(); // Check deterministic descendants // Only Mixture nodes are allowed @@ -81,18 +81,18 @@ } -ConjugateBeta::ConjugateBeta(GraphView const *gv) +ConjugateBeta::ConjugateBeta(SingletonGraphView const *gv) : ConjugateMethod(gv) { } void ConjugateBeta::update(unsigned int chain, RNG *rng) const { - vector const &stoch_children = + vector const &stoch_children = _gv->stochasticChildren(); - StochasticNode const *snode = _gv->nodes()[0]; + StochasticNode const *snode = _gv->node(); - double a, b; + double a=0, b=0; //-Wall switch (_target_dist) { case BETA: a = *snode->parents()[0]->value(chain); @@ -131,27 +131,25 @@ for (unsigned int i = 0; i < stoch_children.size(); ++i) { if (!(is_mix && C[i] == 0)) { double y = *stoch_children[i]->value(chain); - double n, aplus, bplus; + double n; switch(_child_dist[i]) { case BIN: n = *stoch_children[i]->parents()[1]->value(chain); - aplus = y; - bplus = n - y; + a += y; + b += n - y; break; case NEGBIN: n = *stoch_children[i]->parents()[1]->value(chain); - aplus = n; - bplus = y; + a += n; + b += y; break; case BERN: - aplus = y; - bplus = 1 - y; + a += y; + b += 1 - y; break; default: throwLogicError("Invalid distribution in Conjugate Beta sampler"); } - a += aplus; - b += bplus; } } @@ -190,9 +188,4 @@ } } -string ConjugateBeta::name() const -{ - return "ConjugateBeta"; -} - -} +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/ConjugateBeta.h jags-4.0.0/src/modules/bugs/samplers/ConjugateBeta.h --- jags-3.4.0/src/modules/bugs/samplers/ConjugateBeta.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ConjugateBeta.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,10 @@ #include "ConjugateMethod.h" +namespace jags { + + class Graph; + namespace bugs { /** @@ -16,12 +20,11 @@ */ class ConjugateBeta : public ConjugateMethod { public: - ConjugateBeta(GraphView const *gv); + ConjugateBeta(SingletonGraphView const *gv); void update(unsigned int chain, RNG *rng) const; static bool canSample(StochasticNode *snode, Graph const &graph); - std::string name() const; }; -} +}} #endif /* CONJUGATE_BETA_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/ConjugateDirichlet.cc jags-4.0.0/src/modules/bugs/samplers/ConjugateDirichlet.cc --- jags-3.4.0/src/modules/bugs/samplers/ConjugateDirichlet.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ConjugateDirichlet.cc 2015-02-22 08:33:05.000000000 +0000 @@ -7,325 +7,399 @@ #include #include #include -#include +#include #include #include #include #include +#include +#include #include using std::vector; using std::set; using std::string; +using std::copy; +using std::map; +using std::pair; +using std::list; + +namespace jags { + + Node const *findUniqueParent(Node const *node, + set const &nodeset) + { + /* + Utility function called by checkAggNode and checkMixNode. + + If node has a single parent in nodeset, then a pointer to + the parent is returned. If there are multiple parents in + nodeset then a NULL pointer is returned. + + If no parents are in nodeset, a logic error is thrown. + */ + vector const &par = node->parents(); + Node const *param = 0; + + for (unsigned int i = 0; i < par.size(); ++i) { + if (nodeset.count(par[i])) { + if (param) { + if (param != par[i]) return 0; + } + else { + param = par[i]; + } + } + } + if (param == 0) { + throwLogicError("Error in ConjugateDirichlet::canSample"); + } + + return param; + } -static bool checkAggNode(AggNode const *anode, - set const &nodeset) -{ - /* - Utility function called by ConjugateDirichlet::canSample - The aggregate node (anode) must have only one parent in - nodeset. This parent must be embedded entirely within anode - (i.e. we cannot take a subset of it) and the order of the - elements cannot be permuted. - */ + bool checkAggNode(AggNode const *anode, + set const &nodeset) + { + /* + Utility function called by ConjugateDirichlet::canSample + + The aggregate node (anode) must have only one parent in + nodeset. This parent must be embedded entirely within + anode (i.e. we cannot take a subset of it) and the order of + the elements cannot be permuted. + */ + + Node const *param = findUniqueParent(anode, nodeset); + if (param == 0) return false; + + //Check that parent is entirely contained in anode with + //offsets in ascending order - vector const &par = anode->parents(); - vector const &off = anode->offsets(); + vector const &par = anode->parents(); + vector const &off = anode->offsets(); - //Find unique parent - Node const *param = 0; - for (unsigned int i = 0; i < par.size(); ++i) { - if (nodeset.count(par[i])) { - if (param) { - if (par[i] != param) return false; - } - else { - param = par[i]; - } + unsigned int j = 0; + for (unsigned int i = 0; i < par.size(); ++i) { + if (par[i] == param && off[i] != j++) return false; } - } - if (param == 0) { - throwLogicError("Error 1 in ConjugateDirichlet::canSample"); + if (j != param->length()) return false; + + return true; } - //Check that parent is entirely contained in anode with offsets - //in ascending order - unsigned int j = 0; - for (unsigned int i = 0; i < par.size(); ++i) { - if (par[i] == param) { - if (off[i] != j) return false; - ++j; + bool checkMixNode(MixtureNode const *mnode, + set const &nodeset) + { + /* + Utility function called by ConjugateDirichlet::canSample + + None of the indices may depend on nodeset. Among the other + parents, only 1 may be in nodeset (although it may appear + several times) + */ + + vector const &par = mnode->parents(); + + //Check indices + unsigned int nindex = mnode->index_size(); + for (unsigned int i = 0; i < nindex; ++i) { + if (nodeset.count(par[i])) return false; } + + //Check for unique parent + return findUniqueParent(mnode, nodeset) != 0; } - if (j != param->length()) { + + bool isMix(SingletonGraphView const *gv) + { + /* + Utility function called by constructor. It returns true if + any of the deterministic descendants are mixture nodes. + + When there are no mixture nodes, the update calculations + can be simplified. + + This static function is called by the constructor and the + result is stored in the variable _mix. + */ + vector const &dchild = gv->deterministicChildren(); + for (unsigned int i = 0; i < dchild.size(); ++i) { + if (isMixture(dchild[i])) return true; + } return false; } - return true; -} + vector makeTree(SingletonGraphView const *gv) + { + /* + If canSample is true then the nodes in the GraphView gv + form a tree with the sampled node as its root. + + This function creates an integer vector "tree" denoting the + parents of the deterministic descendants: "tree[i] = j" for + 0 < j < i means that the unique parent of deterministic + node "i" in the GraphView is deterministic node "j". If + the unique parent is the sampled node then we denote this + by "tree[i] = -1". + + This static function is called by the constructor, and the + result is stored in the variable _tree; + */ + vector const &dchild = gv->deterministicChildren(); + StochasticNode *snode = gv->node(); -static bool checkMixNode(MixtureNode const *mnode, - set const &nodeset) -{ - /* - Utility function called by ConjugateDirichlet::canSample - - None of the indices may depend on nodeset. Among the other - parents, only 1 may be in nodeset (although it may appear - several times) - */ - - vector const &par = mnode->parents(); - - //Check indices - unsigned int nindex = mnode->index_size(); - for (unsigned int i = 0; i < nindex; ++i) { - if (nodeset.count(par[i])) - return false; + vector tree(dchild.size(), -1); + + set nodeset; + nodeset.insert(snode); + + for (unsigned int j = 0; j < dchild.size(); ++j) { + Node const *parent = findUniqueParent(dchild[j], nodeset); + if (parent == 0) { + throwLogicError("Invalid tree in ConjugateDirichlet"); + } + if (parent != snode) { + for (unsigned int k = 0; k < j; ++k) { + if (parent == dchild[k]) { + tree[j] = k; + break; + } + } + if (tree[j] == -1) { + throwLogicError("Invalid tree in ConjugateDirichlet"); + } + } + nodeset.insert(dchild[j]); + } + + return tree; } - //Find unique parent - Node const *param = 0; - for (unsigned int i = nindex; i < par.size(); ++i) { - if (nodeset.count(par[i])) { - if (param) { - if (param != par[i]) return false; + vector > makeOffsets(SingletonGraphView const *gv, + vector const &tree) + { + vector const &dchild = gv->deterministicChildren(); + vector > offsets(dchild.size()); + StochasticNode const *snode = gv->node(); + + for (unsigned int i = 0; i < dchild.size(); ++i) { + + int j = tree[i]; //index of parent in dchild + + if (isMixture(dchild[i])) { + if (j != -1) offsets[i] = offsets[j]; + } + else if (AggNode const *a = dynamic_cast(dchild[i])) + { + vector const &par_i = a->parents(); + vector const &off_i = a->offsets(); + + Node const *target = (j == -1) ? + static_cast(snode) : + static_cast(dchild[j]); + + if (j == -1 || offsets[j].empty()) { + for (unsigned int k = 0; k < par_i.size(); ++k) { + if (par_i[k] == target) { + offsets[i].push_back(k); + } + } + } + else { + unsigned int p = 0; + for (unsigned int k = 0; k < par_i.size(); ++k) { + if (par_i[k] == target && off_i[k] == offsets[j][p]) { + offsets[i].push_back(k); + p++; + } + } + } + if (offsets[i].size() != snode->length()) { + throwLogicError("Offset error in ConjugateDirichlet"); + } } else { - param = par[i]; + throwLogicError("Invalid child in ConjugateDirichlet"); } } + return offsets; } - if (param == 0) { - throwLogicError("Error 2 in ConjugateDirichlet::canSample"); - } - - return true; -} - -namespace bugs { - -bool ConjugateDirichlet::canSample(StochasticNode *snode, Graph const &graph) -{ - /* - The ConjugateDirichlet sampler aims to be as general as - possible, while minimizing the calculations that have to be done - at each iteration. + + namespace bugs { + + bool + ConjugateDirichlet::canSample(StochasticNode *snode, Graph const &graph) + { + /* + The ConjugateDirichlet sampler aims to be as general as + possible, while minimizing the calculations that have to + be done at each iteration. - The stochastic children may be multinomial or categorical, and the - deterministic children may include mixture nodes and aggregate - nodes. However there are some restrictions that are implemented in - the checkAggNode and checkMixNode functions. + The stochastic children may be multinomial or + categorical, and the deterministic children may include + mixture nodes and aggregate nodes. However there are + some restrictions that are implemented in the + checkAggNode and checkMixNode functions. - 1) The deterministic descendents must form a tree, so that there is - only one pathway from the sample node (snode) to each stochastic child. - 2) Aggregate nodes can only be used to embed snode (or one of its - determistic descendants) in a larger node, not to take a subset. - 3) When a node X is embedded in an aggregate node Y, the order of the - elements of X cannot be permuted in Y. - - These restrictions ensure that the _off values used by the - update method are the same across chains and across iterations, and - can therefore be calculated once in the constructor. - - Fascinating fact: Neither ddirch nor dcat requires a normalized - probability argument. This allows us to embed snode inside a - larger aggregate node without worrying about what the other - values are. For example: + 1) The deterministic descendents must form a tree, so + that there is only one pathway from the sample node + (snode) to each stochastic child. - Y ~ dcat(p) - p[1:3] ~ ddirch(alpha) - p[4:5] <- W - - We can completely ignore the values of W (p[4] and p[5]). Normally - these will be zero but we don't require it. - */ + 2) Aggregate nodes can only be used to embed snode (or + one of its determistic descendants) in a larger node, + not to take a subset. + + 3) When a node X is embedded in an aggregate node Y, the + order of the elements of X cannot be permuted in Y. + + These restrictions ensure that the _off values used by + the update method are the same across chains and across + iterations, and can therefore be calculated once in the + constructor. + + Fascinating fact: Neither dmulti nor dcat requires a + normalized probability argument. This allows us to + embed snode inside a larger aggregate node without + worrying about what the other values are. For example: + + Y ~ dcat(p) + p[1:3] ~ ddirch(alpha) + p[4:5] <- W + + We can completely ignore the values of W (p[4] and + p[5]). Normally these will be zero but we don't require + it. + */ - if(getDist(snode) != DIRCH) - return false; - - if (isBounded(snode)) - return false; - - GraphView gv(snode, graph); - vector const &dchild = gv.deterministicChildren(); - vector const &schild = gv.stochasticChildren(); - - // Check stochastic children - for (unsigned int i = 0; i < schild.size(); ++i) { - vector const ¶m = schild[i]->parents(); - if (isBounded(schild[i])) { - return false; //Truncated - } - switch(getDist(schild[i])) { - case CAT: - break; - case MULTI: - if (gv.isDependent(param[1])) + if (getDist(snode) != DIRCH) + return false; + + if (isBounded(snode)) return false; - break; - default: - return false; - } - } - - // Check deterministic descendants - set nodeset; - nodeset.insert(snode); - for (unsigned int j = 0; j < dchild.size(); ++j) { - if (MixtureNode const *m = dynamic_cast(dchild[j])) - { - if (!checkMixNode(m, nodeset)) return false; - } - else if (AggNode const *a = dynamic_cast(dchild[j])) - { - if (!checkAggNode(a, nodeset)) return false; - } - else { - return false; - } - nodeset.insert(dchild[j]); - } - - return true; -} - - -static AggNode const * -getAggParent(Node const *node, set const &nodeset) -{ - /* - Search recursively for an AggNode ancestor node within nodeset. - We assume that node has either 1 parent in nodeset or 0. - */ - - vector const &par = node->parents(); - Node const *param = 0; - for (unsigned int i = 0; i < par.size(); ++i) { - if (nodeset.count(par[i])) { - param = par[i]; - break; - } - } - if (param == 0) { - return 0; - } - AggNode const *anode = dynamic_cast(param); - if (anode == 0) { - anode = getAggParent(param, nodeset); - } - return anode; -} - -static vector > -makeOffsets(GraphView const *gv, set const &nodeset) -{ - vector const &schild = gv->stochasticChildren(); - unsigned int nchild = schild.size(); - vector > ans(nchild); - - for (unsigned int i = 0; i < nchild; ++i) { - vector off_i; - if (AggNode const *anode = getAggParent(schild[i], nodeset)) { - - vector const &par = anode->parents(); - vector const &off = anode->offsets(); - - Node const *param = 0; - for (unsigned int j = 0; j < par.size(); ++j) { - if (nodeset.count(par[j])) { - param = par[j]; + SingletonGraphView gv(snode, graph); + vector const &dchild = gv.deterministicChildren(); + vector const &schild = gv.stochasticChildren(); + + // Check stochastic children + for (unsigned int i = 0; i < schild.size(); ++i) { + vector const ¶m = schild[i]->parents(); + if (isBounded(schild[i])) { + return false; //Truncated + } + switch(getDist(schild[i])) { + case CAT: break; + case MULTI: + if (gv.isDependent(param[1])) return false; + break; + default: + return false; } } - if (param == 0) { - throwLogicError("Error 3 in ConjugateDirichlet::canSample"); - } - for (unsigned int j = 0; j < par.size(); ++j) { - if (par[j] == param) { - off_i.push_back(off[j]); + // Check deterministic descendants + set nodeset; + nodeset.insert(snode); + for (unsigned int j = 0; j < dchild.size(); ++j) { + if (MixtureNode const *m = dynamic_cast(dchild[j])) + { + if (!checkMixNode(m, nodeset)) return false; } + else if (AggNode const *a = dynamic_cast(dchild[j])) + { + if (!checkAggNode(a, nodeset)) return false; + } + else { + return false; + } + nodeset.insert(dchild[j]); } - ans[i] = off_i; + + return true; } - } - - return ans; -} + + ConjugateDirichlet::ConjugateDirichlet(SingletonGraphView const *gv) + : ConjugateMethod(gv), _mix(isMix(gv)), _tree(makeTree(gv)), + _offsets(gv->stochasticChildren().size()), + _leaves(gv->stochasticChildren().size(), -1) + { + vector > offsets = makeOffsets(gv, _tree); + + //Create a map from stochastic children onto their indices + vector const &schild = + gv->stochasticChildren(); + + map smap; + for (unsigned int s = 0; s < schild.size(); ++s) { + smap.insert(pair(schild[s], s)); + } -static bool findMix(GraphView const *gv) -{ - //Find mixture nodes among deterministic descendants - vector const &dchild = gv->deterministicChildren(); - for (unsigned int i = 0; i < dchild.size(); ++i) { - if (isMixture(dchild[i])) return true; - } - return false; -} + vector const &dchild = + gv->deterministicChildren(); + for (unsigned int d = 0; d < dchild.size(); ++d) { + + list const *dc = + dchild[d]->stochasticChildren(); + for (list::const_iterator q = dc->begin(); + q != dc->end(); ++q) + { + map::iterator r = smap.find(*q); + if (r != smap.end()) { + _leaves[r->second] = d; + _offsets[r->second] = offsets[d]; + smap.erase(r); + } + } -ConjugateDirichlet::ConjugateDirichlet(GraphView const *gv) - : ConjugateMethod(gv), _mix(findMix(gv)), - _off(gv->stochasticChildren().size()) -{ - //Find out if we have any aggregate nodes in the deterministic - //children - vector dchild = gv->deterministicChildren(); - bool have_agg = false; - for (unsigned int i = 0; i < dchild.size(); ++i) { - if (dynamic_cast(dchild[i])) { - have_agg = true; - break; + } } - } - if (have_agg) { - //We have aggregate nodes and need to set up offsets for the - //update function - set nodeset; - nodeset.insert(gv->nodes()[0]); - for (unsigned int i = 0; i < dchild.size(); ++i) { - nodeset.insert(dchild[i]); + + bool ConjugateDirichlet::isActiveLeaf(int i, unsigned int chain) const + { + if (!_mix) return true; + return isActiveTree(_leaves[i], chain); } - _off = makeOffsets(gv, nodeset); - //Check offsets are the right length - unsigned int slength = gv->nodes()[0]->length(); - for (unsigned int i = 0; i < _off.size(); ++i) { - if (!_off[i].empty() && _off[i].size() != slength) { - throwLogicError("Invalid offsets if ConjugateDirichlet"); - } - } - } -} + bool ConjugateDirichlet::isActiveTree(int i, unsigned int chain) const + { + /* + Returns true if there is an active path from the sampled + node to the deterministic node with index "i". A path + is not active if it is blocked by a mixture node that is + set to another mixture component. + */ -static bool checkzero(StochasticNode const *snode, unsigned int chain, - vector const &offsets) -{ - double const *par = snode->parents()[0]->value(chain); - unsigned int length = snode->parents()[0]->length(); + if (i == -1) { + return true; //We have reached the sampled node + } - if (offsets.empty()) { - for (unsigned int i = 0; i < length; ++i) { - if (par[i] != 0) return false; - } - } - else { - for (unsigned int i = 0; i < offsets.size(); ++i) { - if (par[offsets[i]] != 0) return false; + vector const &dchild = + _gv->deterministicChildren(); + + if (MixtureNode const *m = asMixture(dchild[i])) { + if (_tree[i] == -1) { + if (m->activeParent(chain) != _gv->node()) + return false; + } + else { + if (m->activeParent(chain) != dchild[_tree[i]]) + return false; + } + } + + return isActiveTree(_tree[i], chain); } - } - return true; -} void ConjugateDirichlet::update(unsigned int chain, RNG *rng) const { - StochasticNode *snode = _gv->nodes()[0]; - unsigned long size = snode->length(); + StochasticNode *snode = _gv->node(); + unsigned int size = snode->length(); double *alpha = new double[size]; double *xnew = new double[size]; @@ -334,45 +408,34 @@ alpha[i] = prior[i]; } - vector const &schild = _gv->stochasticChildren(); - unsigned int nchildren = schild.size(); - - if (_mix) { - //Set all elements of snode to zero. This is an illegal value - //used to find stochastic children that are "active" (i.e. make - //a likelihood contribution in a mixture model. - for (unsigned int i = 0; i < size; ++i) { - xnew[i] = 0; - } - _gv->setValue(xnew, size, chain); - } - - for (unsigned int i = 0; i < nchildren; ++i) { - int index = 0; + vector const &schild = _gv->stochasticChildren(); + for (unsigned int i = 0; i < schild.size(); ++i) { + unsigned int index = 0; double const *N = 0; - if (!_mix || checkzero(schild[i], chain, _off[i])) { + + if (isActiveLeaf(i, chain)) { switch(_child_dist[i]) { case MULTI: N = schild[i]->value(chain); - if (_off[i].empty()) { + if (_offsets[i].empty()) { for (unsigned int j = 0; j < size; ++j) { alpha[j] += N[j]; } } else { for (unsigned int j = 0; j < size; ++j) { - alpha[j] += N[_off[i][j]]; + alpha[j] += N[_offsets[i][j]]; } } break; case CAT: - index = static_cast(*schild[i]->value(chain)) - 1; - if (_off[i].empty()) { + index = static_cast(*schild[i]->value(chain)) - 1; + if (_offsets[i].empty()) { alpha[index] += 1; } else { for (unsigned int j = 0; j < size; ++j) { - if (index == _off[i][j]) { + if (index == _offsets[i][j]) { alpha[j] += 1; break; } @@ -411,15 +474,40 @@ xnew[i] /= xsum; } - _gv->setValue(xnew, size, chain); + if (_mix) { + + //Override default updating of deterministic nodes in gv + + snode->setValue(xnew, size, chain); + + vector const &dchild = _gv->deterministicChildren(); + vector modified(dchild.size(), false); + for (unsigned int d = 0; d < dchild.size(); ++d) { + if (_tree[d] == -1) { + MixtureNode *m = dynamic_cast(dchild[d]); + if (m == 0 || m->activeParent(chain) == snode) { + dchild[d]->deterministicSample(chain); + modified[d] = true; + } + } + else if (modified[_tree[d]]) { + MixtureNode *m = dynamic_cast(dchild[d]); + if (m == 0 || m->activeParent(chain) == dchild[_tree[d]]) { + dchild[d]->deterministicSample(chain); + modified[d] = true; + } + } + } + } + else { + _gv->setValue(xnew, size, chain); + } delete [] xnew; delete [] alpha; } -string ConjugateDirichlet::name() const -{ - return "ConjugateDirichlet"; -} -} + } //namespace jags +} //namespace bugs + diff -Nru jags-3.4.0/src/modules/bugs/samplers/ConjugateDirichlet.h jags-4.0.0/src/modules/bugs/samplers/ConjugateDirichlet.h --- jags-3.4.0/src/modules/bugs/samplers/ConjugateDirichlet.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ConjugateDirichlet.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,10 @@ #include "ConjugateMethod.h" +namespace jags { + + class Graph; + namespace bugs { /** @@ -18,14 +22,17 @@ */ class ConjugateDirichlet : public ConjugateMethod { bool _mix; - std::vector > _off; + const std::vector _tree; + std::vector > _offsets; + std::vector _leaves; + bool isActiveLeaf(int index, unsigned int chain) const; + bool isActiveTree(int index, unsigned int chain) const; public: - ConjugateDirichlet(GraphView const *gv); + ConjugateDirichlet(SingletonGraphView const *gv); void update(unsigned int chain, RNG *rng) const; static bool canSample(StochasticNode *snode, Graph const &graph); - std::string name() const; }; -} +}} #endif /* CONJUGATE_DIRICHLET_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/ConjugateFactory.cc jags-4.0.0/src/modules/bugs/samplers/ConjugateFactory.cc --- jags-3.4.0/src/modules/bugs/samplers/ConjugateFactory.cc 2012-06-06 08:31:27.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ConjugateFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -7,7 +7,6 @@ #include "ConjugateDirichlet.h" #include "ConjugateMNormal.h" #include "ConjugateWishart.h" -#include "ConjugateSampler.h" //#include "Censored.h" //#include "TruncatedGamma.h" #include "ShiftedCount.h" @@ -15,13 +14,15 @@ #include #include -#include +#include #include +#include #include using std::string; +namespace jags { namespace bugs { bool ConjugateFactory::canSample(StochasticNode * snode, @@ -78,28 +79,33 @@ Sampler *ConjugateFactory::makeSampler(StochasticNode *snode, Graph const &graph) const { - GraphView *gv = new GraphView(snode, graph); + SingletonGraphView *gv = new SingletonGraphView(snode, graph); ConjugateMethod* method = 0; - + string name; /* if (Censored::canSample(snode, graph)) { method = new Censored(gv); + name = "Censored"; } else { */ switch (getDist(snode)) { case NORM: method = new ConjugateNormal(gv); + name = "bugs::ConjugateNormal"; break; case GAMMA: case CHISQ: method = new ConjugateGamma(gv); + name = "bugs::ConjugateGamma"; break; case EXP: if (ConjugateGamma::canSample(snode, graph)) { method = new ConjugateGamma(gv); + name = "bugs::ConjugateGamma"; } else if (ConjugateNormal::canSample(snode, graph)) { method = new ConjugateNormal(gv); + name = "bugs::ConjugateNormal"; } else { throwLogicError("Cannot find conjugate sampler for exponential"); @@ -107,25 +113,31 @@ break; case BETA: method = new ConjugateBeta(gv); + name = "bugs::ConjugateBeta"; break; case DIRCH: method = new ConjugateDirichlet(gv); + name = "bugs::ConjugateDirichlet"; break; case MNORM: method = new ConjugateMNormal(gv); + name = "bugs::ConjugateMNormal"; break; case WISH: method = new ConjugateWishart(gv); + name = "bugs::ConjugateWishart"; break; case UNIF: /* if (TruncatedGamma::canSample(snode, graph)) { method = new TruncatedGamma(gv); + name = "TruncatedGamma"; } else */ if (ConjugateBeta::canSample(snode, graph)) { method = new ConjugateBeta(gv); + name = "bugs::ConjugateBeta"; } else { throwLogicError("Cannot find conjugate sampler for uniform"); @@ -133,9 +145,11 @@ break; case POIS: case BIN: case NEGBIN: method = new ShiftedCount(gv); + name = "bugs::ShiftedCount"; break; case MULTI: method = new ShiftedMultinomial(gv); + name = "bugs::ShiftedMultiNomial"; break; default: throwLogicError("Unable to create conjugate sampler"); @@ -144,7 +158,7 @@ } */ - return new ConjugateSampler(gv, method); + return new ImmutableSampler(gv, method, name); } string ConjugateFactory::name() const @@ -152,4 +166,4 @@ return "bugs::Conjugate"; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/ConjugateFactory.h jags-4.0.0/src/modules/bugs/samplers/ConjugateFactory.h --- jags-3.4.0/src/modules/bugs/samplers/ConjugateFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ConjugateFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,10 @@ #include +namespace jags { + + class Graph; + namespace bugs { /** @@ -25,6 +29,6 @@ std::string name() const; }; -} +}} #endif /* CONJUGATE_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/ConjugateGamma.cc jags-4.0.0/src/modules/bugs/samplers/ConjugateGamma.cc --- jags-3.4.0/src/modules/bugs/samplers/ConjugateGamma.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ConjugateGamma.cc 2015-03-30 21:32:33.000000000 +0000 @@ -1,14 +1,14 @@ #include - #include "ConjugateGamma.h" #include #include #include #include +#include #include #include -#include +#include #include #include @@ -25,6 +25,7 @@ using std::sort; using std::string; +namespace jags { namespace bugs { static double @@ -47,11 +48,11 @@ } -static void calCoef(double *coef, GraphView const *gv, +static void calCoef(double *coef, SingletonGraphView const *gv, vector const &child_dist, unsigned int chain) { - const double xold = gv->nodes()[0]->value(chain)[0]; - vector const &stoch_children = + const double xold = gv->node()->value(chain)[0]; + vector const &stoch_children = gv->stochasticChildren(); unsigned long nchildren = stoch_children.size(); @@ -67,7 +68,7 @@ } -ConjugateGamma::ConjugateGamma(GraphView const *gv) +ConjugateGamma::ConjugateGamma(SingletonGraphView const *gv) : ConjugateMethod(gv), _coef(0) { if(!gv->deterministicChildren().empty() && checkScale(gv, true)) @@ -97,10 +98,10 @@ return false; } - GraphView gv(vector(1,snode), graph); + SingletonGraphView gv(snode, graph); // Check stochastic children - vector const &stoch_nodes = + vector const &stoch_nodes = gv.stochasticChildren(); for (unsigned int i = 0; i < stoch_nodes.size(); ++i) { if (isBounded(stoch_nodes[i])) { @@ -129,15 +130,16 @@ void ConjugateGamma::update(unsigned int chain, RNG *rng) const { - vector const &stoch_children = + vector const &stoch_children = _gv->stochasticChildren(); unsigned int nchildren = stoch_children.size(); - double r; // shape - double mu; // 1/scale + //Need to initialize these for -Wall + double r=0; // shape + double mu=0; // 1/scale //Prior - vector const ¶m = _gv->nodes()[0]->parents(); + vector const ¶m = _gv->node()->parents(); switch(_target_dist) { case GAMMA: r = *param[0]->value(chain); @@ -149,7 +151,7 @@ break; case CHISQ: r = *param[0]->value(chain)/2; - mu = 1/2; + mu = 0.5; //FIXME: This was wrong in 3.x.y. Needs testing break; default: throwLogicError("invalid distribution in ConjugateGamma method"); @@ -217,14 +219,14 @@ // Sample from the posterior double xnew; - if (isBounded(_gv->nodes()[0])) { + if (isBounded(_gv->node())) { // Use inversion to get random sample double lower = 0; - Node const *lb = _gv->nodes()[0]->lowerBound(); + Node const *lb = _gv->node()->lowerBound(); if (lb) { lower = max(lower, *lb->value(chain)); } - Node const *ub = _gv->nodes()[0]->upperBound(); + Node const *ub = _gv->node()->upperBound(); double plower = lb ? pgamma(lower, r, 1/mu, 1, 0) : 0; double pupper = ub ? pgamma(*ub->value(chain), r, 1/mu, 1, 0) : 1; double p = runif(plower, pupper, rng); @@ -236,9 +238,4 @@ _gv->setValue(&xnew, 1, chain); } -string ConjugateGamma::name() const -{ - return "ConjugateGamma"; -} - -} +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/ConjugateGamma.h jags-4.0.0/src/modules/bugs/samplers/ConjugateGamma.h --- jags-3.4.0/src/modules/bugs/samplers/ConjugateGamma.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ConjugateGamma.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,18 +3,21 @@ #include "ConjugateMethod.h" +namespace jags { + + class Graph; + namespace bugs { class ConjugateGamma : public ConjugateMethod { double *_coef; public: - ConjugateGamma(GraphView const *gv); + ConjugateGamma(SingletonGraphView const *gv); ~ConjugateGamma(); static bool canSample(StochasticNode *snode, Graph const &graph); void update(unsigned int chain, RNG *rng) const; - std::string name() const; }; -} +}} #endif /* CONJUGATE_GAMMA_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/ConjugateMethod.cc jags-4.0.0/src/modules/bugs/samplers/ConjugateMethod.cc --- jags-3.4.0/src/modules/bugs/samplers/ConjugateMethod.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ConjugateMethod.cc 2015-02-22 08:33:05.000000000 +0000 @@ -1,6 +1,6 @@ #include "ConjugateMethod.h" -#include +#include #include #include #include @@ -12,6 +12,7 @@ using std::map; using std::string; +namespace jags { namespace bugs { ConjugateDist getDist(StochasticNode const *snode) @@ -51,26 +52,21 @@ } -vector getChildDist(GraphView const *gv) +static vector getChildDist(SingletonGraphView const *gv) { vector ans; - vector const &child = gv->stochasticChildren(); + vector const &child = gv->stochasticChildren(); for (unsigned int i = 0; i < child.size(); ++i) { ans.push_back(getDist(child[i])); } return ans; } -ConjugateMethod::ConjugateMethod(GraphView const *gv) - : _target_dist(getDist(gv->nodes()[0])), +ConjugateMethod::ConjugateMethod(SingletonGraphView const *gv) + : _target_dist(getDist(gv->node())), _child_dist(getChildDist(gv)), _gv(gv) { - if (gv->nodes().size() > 1) - throwLogicError("Multiple sample nodes in ConjugateMethod"); } -ConjugateMethod::~ConjugateMethod() -{} - -} +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/ConjugateMethod.h jags-4.0.0/src/modules/bugs/samplers/ConjugateMethod.h --- jags-3.4.0/src/modules/bugs/samplers/ConjugateMethod.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ConjugateMethod.h 2015-02-22 16:52:19.000000000 +0000 @@ -1,13 +1,15 @@ #ifndef CONJUGATE_METHOD_H_ #define CONJUGATE_METHOD_H_ -#include +#include + #include -class GraphView; -class RNG; -class Graph; +namespace jags { + +class SingletonGraphView; class StochasticNode; +struct RNG; namespace bugs { @@ -24,20 +26,17 @@ */ ConjugateDist getDist(StochasticNode const *snode); -class ConjugateMethod +class ConjugateMethod : public ImmutableSampleMethod { protected: const ConjugateDist _target_dist; const std::vector _child_dist; - GraphView const *_gv; + SingletonGraphView const * const _gv; public: - ConjugateMethod(GraphView const *gv); - virtual ~ConjugateMethod(); - virtual void update(unsigned int chain, RNG *rng) const = 0; - virtual std::string name() const = 0; + ConjugateMethod(SingletonGraphView const *gv); }; -} +}} #endif /* CONJUGATE_METHOD_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/ConjugateMNormal.cc jags-4.0.0/src/modules/bugs/samplers/ConjugateMNormal.cc --- jags-3.4.0/src/modules/bugs/samplers/ConjugateMNormal.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ConjugateMNormal.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include "lapack.h" @@ -17,7 +17,6 @@ #include #include "ConjugateMNormal.h" -#include "ConjugateSampler.h" #include "DMNorm.h" #include @@ -28,10 +27,13 @@ using std::sqrt; using std::string; -static void calBeta(double *betas, GraphView const *gv, +namespace jags { +namespace bugs { + +static void calBeta(double *betas, SingletonGraphView const *gv, unsigned int chain) { - StochasticNode *snode = gv->nodes()[0]; + StochasticNode *snode = gv->node(); double const *xold = snode->value(chain); unsigned int nrow = snode->length(); @@ -40,7 +42,7 @@ xnew[i] = xold[i]; } - vector const &stoch_children = + vector const &stoch_children = gv->stochasticChildren(); unsigned long nchildren = stoch_children.size(); @@ -77,9 +79,9 @@ delete [] xnew; } -static unsigned int sumChildrenLength(GraphView const *gv) +static unsigned int sumChildrenLength(SingletonGraphView const *gv) { - vector const &children = + vector const &children = gv->stochasticChildren(); unsigned int N = 0; @@ -89,9 +91,7 @@ return N; } -namespace bugs { - -ConjugateMNormal::ConjugateMNormal(GraphView const *gv) +ConjugateMNormal::ConjugateMNormal(SingletonGraphView const *gv) : ConjugateMethod(gv), _betas(0), _length_betas(sumChildrenLength(gv) * gv->length()) { @@ -115,8 +115,8 @@ if (isBounded(snode)) return false; - GraphView gv(snode, graph); - vector const &schild = gv.stochasticChildren(); + SingletonGraphView gv(snode, graph); + vector const &schild = gv.stochasticChildren(); // Check stochastic children for (unsigned int i = 0; i < schild.size(); ++i) { @@ -140,11 +140,11 @@ void ConjugateMNormal::update(unsigned int chain, RNG *rng) const { - vector const &stoch_children = + vector const &stoch_children = _gv->stochasticChildren(); unsigned int nchildren = stoch_children.size(); - StochasticNode *snode = _gv->nodes()[0]; + StochasticNode *snode = _gv->node(); double const *xold = snode->value(chain); double const *priormean = snode->parents()[0]->value(chain); double const *priorprec = snode->parents()[1]->value(chain); @@ -316,9 +316,4 @@ delete [] xnew; } -string ConjugateMNormal::name() const -{ - return "ConjugateMNormal"; -} - -} +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/ConjugateMNormal.h jags-4.0.0/src/modules/bugs/samplers/ConjugateMNormal.h --- jags-3.4.0/src/modules/bugs/samplers/ConjugateMNormal.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ConjugateMNormal.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,10 @@ #include "ConjugateMethod.h" +namespace jags { + + class Graph; + namespace bugs { /** @@ -22,13 +26,12 @@ double *_betas; const unsigned int _length_betas; public: - ConjugateMNormal(GraphView const *gv); + ConjugateMNormal(SingletonGraphView const *gv); ~ConjugateMNormal(); void update(unsigned int chain, RNG *rng) const; static bool canSample(StochasticNode *snode, Graph const &graph); - std::string name() const; }; -} +}} #endif /* CONJUGATE_M_NORMAL_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/ConjugateNormal.cc jags-4.0.0/src/modules/bugs/samplers/ConjugateNormal.cc --- jags-3.4.0/src/modules/bugs/samplers/ConjugateNormal.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ConjugateNormal.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include @@ -21,14 +21,17 @@ using std::vector; using std::set; using std::sqrt; -using std::string; -static void calBeta(double *beta, GraphView const *gv, unsigned int chain) +namespace jags { +namespace bugs { + +static void calBeta(double *beta, SingletonGraphView const *gv, + unsigned int chain) { - StochasticNode *snode = gv->nodes()[0]; + StochasticNode *snode = gv->node(); const double xold = *snode->value(chain); - vector const &stoch_children = + vector const &stoch_children = gv->stochasticChildren(); double xnew = xold + 1; @@ -59,15 +62,13 @@ } } -namespace bugs { - -ConjugateNormal::ConjugateNormal(GraphView const *gv) +ConjugateNormal::ConjugateNormal(SingletonGraphView const *gv) : ConjugateMethod(gv), _betas(0), _length_betas(0) { if (!gv->deterministicChildren().empty()) { //Need to allocate vector of coefficients - vector const &children = + vector const &children = gv->stochasticChildren(); for (unsigned int i = 0; i < children.size(); ++i) { _length_betas += children[i]->length(); @@ -102,8 +103,8 @@ return false; } - GraphView gv(snode, graph); - vector const &schild = gv.stochasticChildren(); + SingletonGraphView gv(snode, graph); + vector const &schild = gv.stochasticChildren(); // Check stochastic children for (unsigned int i = 0; i < schild.size(); ++i) { @@ -127,16 +128,16 @@ void ConjugateNormal::update(unsigned int chain, RNG *rng) const { - vector const &stoch_children = + vector const &stoch_children = _gv->stochasticChildren(); unsigned int nchildren = stoch_children.size(); - StochasticNode *snode = _gv->nodes()[0]; + StochasticNode *snode = _gv->node(); /* For convenience in the following computations, we shift the origin to xold, the previous value of the node */ const double xold = *snode->value(chain); - double A, B; + double A=0, B=0; //-Wall if (_target_dist == NORM) { const double priormean = *snode->parents()[0]->value(chain) - xold; const double priorprec = *snode->parents()[1]->value(chain); @@ -260,9 +261,4 @@ _gv->setValue(&xnew, 1, chain); } -string ConjugateNormal::name() const -{ - return "ConjugateNormal"; -} - -} +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/ConjugateNormal.h jags-4.0.0/src/modules/bugs/samplers/ConjugateNormal.h --- jags-3.4.0/src/modules/bugs/samplers/ConjugateNormal.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ConjugateNormal.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,10 @@ #include "ConjugateMethod.h" +namespace jags { + + class Graph; + namespace bugs { /** @@ -17,13 +21,12 @@ double *_betas; unsigned long _length_betas; public: - ConjugateNormal(GraphView const *gv); + ConjugateNormal(SingletonGraphView const *gv); ~ConjugateNormal(); void update(unsigned int chain, RNG *rng) const; static bool canSample(StochasticNode *snode, Graph const &graph); - std::string name() const; }; -} +}} #endif /* CONJUGATE_NORMAL_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/ConjugateSampler.cc jags-4.0.0/src/modules/bugs/samplers/ConjugateSampler.cc --- jags-3.4.0/src/modules/bugs/samplers/ConjugateSampler.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ConjugateSampler.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -#include -#include "ConjugateSampler.h" -//Needed for nchain -#include - -using std::vector; -using std::string; - -namespace bugs { - -ConjugateSampler::ConjugateSampler(GraphView *gv, ConjugateMethod *method) - : Sampler(gv), _method(method), _nchain(nchain(gv)) -{ -} - -ConjugateSampler::~ConjugateSampler() -{ - delete _method; -} - -void ConjugateSampler::update(vector const &rngs) -{ - for (unsigned int ch = 0; ch < _nchain; ++ch) { - _method->update(ch, rngs[ch]); - } -} - -bool ConjugateSampler::isAdaptive() const -{ - return false; -} - -void ConjugateSampler::adaptOff() -{ -} - -bool ConjugateSampler::checkAdaptation() const -{ - return true; -} - -string ConjugateSampler::name() const -{ - return _method->name(); -} - -} diff -Nru jags-3.4.0/src/modules/bugs/samplers/ConjugateSampler.h jags-4.0.0/src/modules/bugs/samplers/ConjugateSampler.h --- jags-3.4.0/src/modules/bugs/samplers/ConjugateSampler.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ConjugateSampler.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ -#ifndef CONJUGATE_SAMPLER_H_ -#define CONJUGATE_SAMPLER_H_ - -#include "ConjugateMethod.h" -#include - -namespace bugs { - -class ConjugateSampler : public Sampler -{ - ConjugateMethod *_method; - const unsigned int _nchain; -public: - ConjugateSampler(GraphView *gv, ConjugateMethod *method); - ~ConjugateSampler(); - void update(std::vector const &); - /** - * Conjugate methods are not adaptive - */ - bool isAdaptive() const; - bool checkAdaptation() const; - void adaptOff(); - std::string name() const; -}; - -} - -#endif /* CONJUGATE_SAMPLER_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/ConjugateWishart.cc jags-4.0.0/src/modules/bugs/samplers/ConjugateWishart.cc --- jags-3.4.0/src/modules/bugs/samplers/ConjugateWishart.cc 2012-07-18 12:15:38.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ConjugateWishart.cc 2015-02-22 08:33:05.000000000 +0000 @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include @@ -23,6 +23,9 @@ using std::string; using std::copy; +namespace jags { +namespace bugs { + static inline double getPrecision0(StochasticNode const *snode, unsigned int chain) { @@ -32,8 +35,6 @@ return snode->parents()[1]->value(chain)[0]; } -namespace bugs { - bool ConjugateWishart::canSample(StochasticNode *snode, Graph const &graph) { if (getDist(snode) != WISH) @@ -42,8 +43,8 @@ if (isBounded(snode)) return false; - GraphView gv(snode, graph); - vector const &schild = gv.stochasticChildren(); + SingletonGraphView gv(snode, graph); + vector const &schild = gv.stochasticChildren(); // Check stochastic children for (unsigned int i = 0; i < schild.size(); ++i) { @@ -78,18 +79,18 @@ return true; } -ConjugateWishart::ConjugateWishart(GraphView const *gv) +ConjugateWishart::ConjugateWishart(SingletonGraphView const *gv) : ConjugateMethod(gv) {} void ConjugateWishart::update(unsigned int chain, RNG *rng) const { - vector const &stoch_children = + vector const &stoch_children = _gv->stochasticChildren(); unsigned int nchildren = stoch_children.size(); - vector const ¶m = _gv->nodes()[0]->parents(); + vector const ¶m = _gv->node()->parents(); double df = *param[1]->value(chain); double const *Rprior = param[0]->value(chain); @@ -111,7 +112,7 @@ precision0[i] = getPrecision0(stoch_children[i], chain); } //Double the current value - double const *x = _gv->nodes()[0]->value(chain); + double const *x = _gv->node()->value(chain); vector x2(N); for (int j = 0; j < N; ++j) { x2[j] = 2 * x[j]; @@ -145,9 +146,4 @@ _gv->setValue(xnew, chain); } -string ConjugateWishart::name() const -{ - return "ConjugateWishart"; -} - -} +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/ConjugateWishart.h jags-4.0.0/src/modules/bugs/samplers/ConjugateWishart.h --- jags-3.4.0/src/modules/bugs/samplers/ConjugateWishart.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ConjugateWishart.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,10 @@ #include "ConjugateMethod.h" +namespace jags { + + class Graph; + namespace bugs { /** @@ -15,12 +19,11 @@ */ class ConjugateWishart : public ConjugateMethod { public: - ConjugateWishart(GraphView const *gv); + ConjugateWishart(SingletonGraphView const *gv); void update(unsigned int chain, RNG *rng) const; static bool canSample(StochasticNode *snode, Graph const &graph); - std::string name() const; }; -} +}} #endif /* CONJUGATE_WISHART_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/Dirichlet.cc jags-4.0.0/src/modules/bugs/samplers/Dirichlet.cc --- jags-3.4.0/src/modules/bugs/samplers/Dirichlet.cc 2013-01-22 14:11:50.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/Dirichlet.cc 2015-07-15 20:14:02.000000000 +0000 @@ -15,6 +15,9 @@ using std::string; using std::vector; +namespace jags { +namespace bugs { + static vector initValue(GraphView const *gv, unsigned int chain) { vector ivalue(gv->length()); @@ -22,12 +25,11 @@ return ivalue; } -namespace bugs { - DirchMetropolis::DirchMetropolis(GraphView const *gv, unsigned int chain) : RWMetropolis(initValue(gv, chain), 0.1), _gv(gv), _chain(chain), _s(1) { + gv->checkFinite(chain); //Check validity of initial values } void DirchMetropolis::step(vector &value, double step, RNG *rng) const @@ -89,9 +91,4 @@ return lj; } -string DirchMetropolis::name() const -{ - return "DirchMetropolis"; -} - -} +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/DirichletFactory.cc jags-4.0.0/src/modules/bugs/samplers/DirichletFactory.cc --- jags-3.4.0/src/modules/bugs/samplers/DirichletFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/DirichletFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -4,8 +4,8 @@ #include "DirichletFactory.h" #include #include -#include -#include +#include +#include #include #include @@ -13,6 +13,7 @@ using std::vector; using std::string; +namespace jags { namespace bugs { bool @@ -25,13 +26,13 @@ DirichletFactory::makeSampler(StochasticNode *snode, Graph const &graph) const { unsigned int nchain = snode->nchain(); - vector methods(nchain, 0); + vector methods(nchain, 0); vector nodes(1, snode); - GraphView *gv = new GraphView(snode, graph); + SingletonGraphView *gv = new SingletonGraphView(snode, graph); for (unsigned int ch = 0; ch < nchain; ++ch) { methods[ch] = new DirchMetropolis(gv, ch); } - return new ParallelSampler(gv, methods); + return new MutableSampler(gv, methods, "bugs::DirichletMetropolis"); } string DirichletFactory::name() const @@ -39,4 +40,4 @@ return "bugs::Dirichlet"; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/DirichletFactory.h jags-4.0.0/src/modules/bugs/samplers/DirichletFactory.h --- jags-3.4.0/src/modules/bugs/samplers/DirichletFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/DirichletFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -5,6 +5,7 @@ #include +namespace jags { namespace bugs { /** @@ -18,6 +19,6 @@ std::string name() const; }; -} +}} #endif /* DIRICHLET_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/Dirichlet.h jags-4.0.0/src/modules/bugs/samplers/Dirichlet.h --- jags-3.4.0/src/modules/bugs/samplers/Dirichlet.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/Dirichlet.h 2015-02-22 08:33:05.000000000 +0000 @@ -2,7 +2,10 @@ #define DIRICHLET_METROPOLIS_H_ #include -#include + +namespace jags { + +class GraphView; namespace bugs { @@ -18,9 +21,8 @@ void step(std::vector &x, double size, RNG *rng) const; double logJacobian(std::vector const &x) const; double logDensity() const; - std::string name() const; }; -} +}} #endif /* DIRICHLET_METROPOLIS_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/DiscreteDSum.cc jags-4.0.0/src/modules/bugs/samplers/DiscreteDSum.cc --- jags-3.4.0/src/modules/bugs/samplers/DiscreteDSum.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/DiscreteDSum.cc 2015-02-22 08:33:05.000000000 +0000 @@ -16,6 +16,8 @@ //Initial step size #define STEP 1 +namespace jags { +namespace bugs { //Pick a random integer between 0 and n - 1 static int pick(int n, RNG *rng) @@ -26,8 +28,6 @@ return i - 1; } -namespace bugs { - DiscreteDSum::DiscreteDSum(GraphView const *gv, unsigned int chain) : RWDSum(gv, chain, STEP) { @@ -52,9 +52,4 @@ value[c2 * nrow + r] -= inteps; } -string DiscreteDSum::name() const -{ - return "DiscreteDSum"; -} - -} +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/DiscreteDSum.h jags-4.0.0/src/modules/bugs/samplers/DiscreteDSum.h --- jags-3.4.0/src/modules/bugs/samplers/DiscreteDSum.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/DiscreteDSum.h 2015-02-22 08:33:05.000000000 +0000 @@ -5,6 +5,7 @@ class StochasticNode; +namespace jags { namespace bugs { /** @@ -16,9 +17,8 @@ DiscreteDSum(GraphView const *gv, unsigned int chain); void step(std::vector &value, unsigned int nrow, unsigned int ncol, double s, RNG *rng) const; - std::string name() const; }; -} +}} #endif /* DISCRETE_DSUM_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/DMultiDSum.cc jags-4.0.0/src/modules/bugs/samplers/DMultiDSum.cc --- jags-3.4.0/src/modules/bugs/samplers/DMultiDSum.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/DMultiDSum.cc 2015-02-22 08:33:05.000000000 +0000 @@ -16,6 +16,7 @@ //Initial step size #define STEP 1 +namespace jags { namespace bugs { DMultiDSum::DMultiDSum(GraphView const *gv, unsigned int chain) @@ -57,9 +58,4 @@ value[nrow * c2 + r2] += inteps; } -string DMultiDSum::name() const -{ - return "DMultiDSum"; -} - -} +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/DMultiDSum.h jags-4.0.0/src/modules/bugs/samplers/DMultiDSum.h --- jags-3.4.0/src/modules/bugs/samplers/DMultiDSum.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/DMultiDSum.h 2015-02-22 08:33:05.000000000 +0000 @@ -5,6 +5,7 @@ class StochasticNode; +namespace jags { namespace bugs { /** @@ -16,9 +17,8 @@ DMultiDSum(GraphView const *gv, unsigned int chain); void step(std::vector &value, unsigned int nrow, unsigned int ncol, double s, RNG *rng) const; - std::string name() const; }; -} +}} #endif /* DMULTI_DSUM_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/DSumFactory.cc jags-4.0.0/src/modules/bugs/samplers/DSumFactory.cc --- jags-3.4.0/src/modules/bugs/samplers/DSumFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/DSumFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include #include "DSumFactory.h" @@ -13,31 +13,32 @@ #include -using std::set; +using std::list; using std::vector; using std::string; +namespace jags { namespace bugs { static StochasticNode const *getDSumChild(StochasticNode *node) { - set::const_iterator p; + list::const_iterator p; for (p = node->stochasticChildren()->begin(); p != node->stochasticChildren()->end(); ++p) { //Skip unobserved nodes - if ((*p)->isObserved() && (*p)->distribution()->name() == "dsum") + if (isObserved(*p) && (*p)->distribution()->name() == "dsum") return *p; } return 0; } -Sampler * DSumFactory::makeSampler(set const &nodes, +Sampler * DSumFactory::makeSampler(list const &nodes, Graph const &graph) const { //Find DSum node StochasticNode const *dsum_node = 0; - for (set::const_iterator p = nodes.begin(); + for (list::const_iterator p = nodes.begin(); p != nodes.end(); ++p) { dsum_node = getDSumChild(*p); @@ -55,7 +56,7 @@ vector const &parents = dsum_node->parents(); vector::const_iterator pp; for (pp = parents.begin(); pp != parents.end(); ++pp) { - set::const_iterator q = + list::const_iterator q = find(nodes.begin(), nodes.end(), *pp); if (q != nodes.end()) { parameters.push_back(*q); @@ -67,15 +68,19 @@ bool discrete; bool multinom = false; + string name; if (RWDSum::canSample(parameters, graph, false, false)) { discrete = false; + name = "bugs::RealDSum"; } else if (RWDSum::canSample(parameters, graph, true, false)) { discrete = true; + name = "bugs::DiscreteDSum"; } else if (RWDSum::canSample(parameters, graph, true, true)) { discrete = true; multinom = true; + name = "bugs::DMultiDSum"; } else { return 0; @@ -83,7 +88,7 @@ GraphView *gv = new GraphView(parameters, graph, true); unsigned int nchain = parameters[0]->nchain(); - vector methods(nchain, 0); + vector methods(nchain, 0); for (unsigned int ch = 0; ch < nchain; ++ch) { if (discrete) { if (multinom) @@ -95,7 +100,7 @@ methods[ch] = new RealDSum(gv, ch); } } - return new ParallelSampler(gv, methods); + return new MutableSampler(gv, methods, name); } @@ -104,7 +109,7 @@ return "bugs::DSum"; } -vector DSumFactory::makeSamplers(set const &nodes, +vector DSumFactory::makeSamplers(list const &nodes, Graph const &graph) const { Sampler *s = makeSampler(nodes, graph); @@ -114,4 +119,4 @@ return vector(); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/DSumFactory.h jags-4.0.0/src/modules/bugs/samplers/DSumFactory.h --- jags-3.4.0/src/modules/bugs/samplers/DSumFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/DSumFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace bugs { /** @@ -11,13 +12,13 @@ class DSumFactory : public SamplerFactory { public: - std::vector makeSamplers(std::set const &nodes, + std::vector makeSamplers(std::list const &nodes, Graph const &graph) const; - Sampler * makeSampler(std::set const &nodes, + Sampler * makeSampler(std::list const &nodes, Graph const &graph) const; std::string name() const; }; -} +}} #endif /* DSUM_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/Makefile.am jags-4.0.0/src/modules/bugs/samplers/Makefile.am --- jags-3.4.0/src/modules/bugs/samplers/Makefile.am 2012-03-02 14:25:02.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/Makefile.am 2015-09-27 10:18:40.000000000 +0000 @@ -1,27 +1,25 @@ # SUBDIRS = cj -noinst_LTLIBRARIES = bugssampler.la +noinst_LTLIBRARIES = libbugssampler.la -bugssampler_la_CPPFLAGS = -I$(top_srcdir)/src/include \ +libbugssampler_la_CPPFLAGS = -I$(top_srcdir)/src/include \ -I$(top_srcdir)/src/modules/bugs/distributions \ -I$(top_srcdir)/src/modules/bugs/matrix -bugssampler_la_LDFLAGS = -no-undefined -module -avoid-version - -# bugssampler_la_LIBADD = cj/bugscj.la - -bugssampler_la_SOURCES = Censored.cc ConjugateGamma.cc \ +libbugssampler_la_SOURCES = Censored.cc ConjugateGamma.cc \ ConjugateWishart.cc ConjugateBeta.cc ConjugateMNormal.cc \ ConjugateDirichlet.cc ConjugateNormal.cc DSumFactory.cc \ -ConjugateFactory.cc ConjugateSampler.cc RWDSum.cc RealDSum.cc \ +ConjugateFactory.cc RWDSum.cc RealDSum.cc \ DiscreteDSum.cc MNormal.cc MNormalFactory.cc ConjugateMethod.cc \ Dirichlet.cc DirichletFactory.cc TruncatedGamma.cc DMultiDSum.cc \ -ShiftedCount.cc ShiftedMultinomial.cc +ShiftedCount.cc ShiftedMultinomial.cc \ +SumMethod.cc SumFactory.cc noinst_HEADERS = Censored.h ConjugateFactory.h ConjugateNormal.h \ -ConjugateBeta.h ConjugateGamma.h ConjugateSampler.h DSumFactory.h \ +ConjugateBeta.h ConjugateGamma.h DSumFactory.h \ ConjugateDirichlet.h ConjugateMNormal.h ConjugateWishart.h \ RWDSum.h RealDSum.h DiscreteDSum.h MNormal.h MNormalFactory.h \ ConjugateMethod.h Dirichlet.h DirichletFactory.h TruncatedGamma.h \ -DMultiDSum.h ShiftedCount.h ShiftedMultinomial.h +DMultiDSum.h ShiftedCount.h ShiftedMultinomial.h \ +SumMethod.h SumFactory.h diff -Nru jags-3.4.0/src/modules/bugs/samplers/Makefile.in jags-4.0.0/src/modules/bugs/samplers/Makefile.in --- jags-3.4.0/src/modules/bugs/samplers/Makefile.in 2013-08-30 13:23:28.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -19,23 +18,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -55,8 +92,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/bugs/samplers -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -66,59 +101,105 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) -bugssampler_la_LIBADD = -am_bugssampler_la_OBJECTS = bugssampler_la-Censored.lo \ - bugssampler_la-ConjugateGamma.lo \ - bugssampler_la-ConjugateWishart.lo \ - bugssampler_la-ConjugateBeta.lo \ - bugssampler_la-ConjugateMNormal.lo \ - bugssampler_la-ConjugateDirichlet.lo \ - bugssampler_la-ConjugateNormal.lo \ - bugssampler_la-DSumFactory.lo \ - bugssampler_la-ConjugateFactory.lo \ - bugssampler_la-ConjugateSampler.lo bugssampler_la-RWDSum.lo \ - bugssampler_la-RealDSum.lo bugssampler_la-DiscreteDSum.lo \ - bugssampler_la-MNormal.lo bugssampler_la-MNormalFactory.lo \ - bugssampler_la-ConjugateMethod.lo bugssampler_la-Dirichlet.lo \ - bugssampler_la-DirichletFactory.lo \ - bugssampler_la-TruncatedGamma.lo bugssampler_la-DMultiDSum.lo \ - bugssampler_la-ShiftedCount.lo \ - bugssampler_la-ShiftedMultinomial.lo -bugssampler_la_OBJECTS = $(am_bugssampler_la_OBJECTS) -bugssampler_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ - $(CXXFLAGS) $(bugssampler_la_LDFLAGS) $(LDFLAGS) -o $@ +libbugssampler_la_LIBADD = +am_libbugssampler_la_OBJECTS = libbugssampler_la-Censored.lo \ + libbugssampler_la-ConjugateGamma.lo \ + libbugssampler_la-ConjugateWishart.lo \ + libbugssampler_la-ConjugateBeta.lo \ + libbugssampler_la-ConjugateMNormal.lo \ + libbugssampler_la-ConjugateDirichlet.lo \ + libbugssampler_la-ConjugateNormal.lo \ + libbugssampler_la-DSumFactory.lo \ + libbugssampler_la-ConjugateFactory.lo \ + libbugssampler_la-RWDSum.lo libbugssampler_la-RealDSum.lo \ + libbugssampler_la-DiscreteDSum.lo libbugssampler_la-MNormal.lo \ + libbugssampler_la-MNormalFactory.lo \ + libbugssampler_la-ConjugateMethod.lo \ + libbugssampler_la-Dirichlet.lo \ + libbugssampler_la-DirichletFactory.lo \ + libbugssampler_la-TruncatedGamma.lo \ + libbugssampler_la-DMultiDSum.lo \ + libbugssampler_la-ShiftedCount.lo \ + libbugssampler_la-ShiftedMultinomial.lo \ + libbugssampler_la-SumMethod.lo libbugssampler_la-SumFactory.lo +libbugssampler_la_OBJECTS = $(am_libbugssampler_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(bugssampler_la_SOURCES) -DIST_SOURCES = $(bugssampler_la_SOURCES) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +SOURCES = $(libbugssampler_la_SOURCES) +DIST_SOURCES = $(libbugssampler_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -132,6 +213,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -201,10 +285,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -270,28 +350,27 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -noinst_LTLIBRARIES = bugssampler.la -bugssampler_la_CPPFLAGS = -I$(top_srcdir)/src/include \ +noinst_LTLIBRARIES = libbugssampler.la +libbugssampler_la_CPPFLAGS = -I$(top_srcdir)/src/include \ -I$(top_srcdir)/src/modules/bugs/distributions \ -I$(top_srcdir)/src/modules/bugs/matrix -bugssampler_la_LDFLAGS = -no-undefined -module -avoid-version - -# bugssampler_la_LIBADD = cj/bugscj.la -bugssampler_la_SOURCES = Censored.cc ConjugateGamma.cc \ +libbugssampler_la_SOURCES = Censored.cc ConjugateGamma.cc \ ConjugateWishart.cc ConjugateBeta.cc ConjugateMNormal.cc \ ConjugateDirichlet.cc ConjugateNormal.cc DSumFactory.cc \ -ConjugateFactory.cc ConjugateSampler.cc RWDSum.cc RealDSum.cc \ +ConjugateFactory.cc RWDSum.cc RealDSum.cc \ DiscreteDSum.cc MNormal.cc MNormalFactory.cc ConjugateMethod.cc \ Dirichlet.cc DirichletFactory.cc TruncatedGamma.cc DMultiDSum.cc \ -ShiftedCount.cc ShiftedMultinomial.cc +ShiftedCount.cc ShiftedMultinomial.cc \ +SumMethod.cc SumFactory.cc noinst_HEADERS = Censored.h ConjugateFactory.h ConjugateNormal.h \ -ConjugateBeta.h ConjugateGamma.h ConjugateSampler.h DSumFactory.h \ +ConjugateBeta.h ConjugateGamma.h DSumFactory.h \ ConjugateDirichlet.h ConjugateMNormal.h ConjugateWishart.h \ RWDSum.h RealDSum.h DiscreteDSum.h MNormal.h MNormalFactory.h \ ConjugateMethod.h Dirichlet.h DirichletFactory.h TruncatedGamma.h \ -DMultiDSum.h ShiftedCount.h ShiftedMultinomial.h +DMultiDSum.h ShiftedCount.h ShiftedMultinomial.h \ +SumMethod.h SumFactory.h all: all-am @@ -309,7 +388,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/bugs/samplers/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/bugs/samplers/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -330,14 +408,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -bugssampler.la: $(bugssampler_la_OBJECTS) $(bugssampler_la_DEPENDENCIES) $(EXTRA_bugssampler_la_DEPENDENCIES) - $(bugssampler_la_LINK) $(bugssampler_la_OBJECTS) $(bugssampler_la_LIBADD) $(LIBS) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libbugssampler.la: $(libbugssampler_la_OBJECTS) $(libbugssampler_la_DEPENDENCIES) $(EXTRA_libbugssampler_la_DEPENDENCIES) + $(AM_V_CXXLD)$(CXXLINK) $(libbugssampler_la_OBJECTS) $(libbugssampler_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -345,203 +426,214 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-Censored.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-ConjugateBeta.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-ConjugateDirichlet.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-ConjugateFactory.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-ConjugateGamma.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-ConjugateMNormal.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-ConjugateMethod.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-ConjugateNormal.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-ConjugateSampler.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-ConjugateWishart.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-DMultiDSum.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-DSumFactory.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-Dirichlet.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-DirichletFactory.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-DiscreteDSum.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-MNormal.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-MNormalFactory.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-RWDSum.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-RealDSum.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-ShiftedCount.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-ShiftedMultinomial.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugssampler_la-TruncatedGamma.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-Censored.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-ConjugateBeta.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-ConjugateDirichlet.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-ConjugateFactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-ConjugateGamma.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-ConjugateMNormal.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-ConjugateMethod.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-ConjugateNormal.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-ConjugateWishart.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-DMultiDSum.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-DSumFactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-Dirichlet.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-DirichletFactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-DiscreteDSum.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-MNormal.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-MNormalFactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-RWDSum.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-RealDSum.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-ShiftedCount.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-ShiftedMultinomial.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-SumFactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-SumMethod.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbugssampler_la-TruncatedGamma.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< + +libbugssampler_la-Censored.lo: Censored.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-Censored.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-Censored.Tpo -c -o libbugssampler_la-Censored.lo `test -f 'Censored.cc' || echo '$(srcdir)/'`Censored.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-Censored.Tpo $(DEPDIR)/libbugssampler_la-Censored.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Censored.cc' object='libbugssampler_la-Censored.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-Censored.lo `test -f 'Censored.cc' || echo '$(srcdir)/'`Censored.cc -bugssampler_la-Censored.lo: Censored.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-Censored.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-Censored.Tpo -c -o bugssampler_la-Censored.lo `test -f 'Censored.cc' || echo '$(srcdir)/'`Censored.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-Censored.Tpo $(DEPDIR)/bugssampler_la-Censored.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Censored.cc' object='bugssampler_la-Censored.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-ConjugateGamma.lo: ConjugateGamma.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-ConjugateGamma.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-ConjugateGamma.Tpo -c -o libbugssampler_la-ConjugateGamma.lo `test -f 'ConjugateGamma.cc' || echo '$(srcdir)/'`ConjugateGamma.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-ConjugateGamma.Tpo $(DEPDIR)/libbugssampler_la-ConjugateGamma.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ConjugateGamma.cc' object='libbugssampler_la-ConjugateGamma.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-Censored.lo `test -f 'Censored.cc' || echo '$(srcdir)/'`Censored.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-ConjugateGamma.lo `test -f 'ConjugateGamma.cc' || echo '$(srcdir)/'`ConjugateGamma.cc -bugssampler_la-ConjugateGamma.lo: ConjugateGamma.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-ConjugateGamma.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-ConjugateGamma.Tpo -c -o bugssampler_la-ConjugateGamma.lo `test -f 'ConjugateGamma.cc' || echo '$(srcdir)/'`ConjugateGamma.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-ConjugateGamma.Tpo $(DEPDIR)/bugssampler_la-ConjugateGamma.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ConjugateGamma.cc' object='bugssampler_la-ConjugateGamma.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-ConjugateWishart.lo: ConjugateWishart.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-ConjugateWishart.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-ConjugateWishart.Tpo -c -o libbugssampler_la-ConjugateWishart.lo `test -f 'ConjugateWishart.cc' || echo '$(srcdir)/'`ConjugateWishart.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-ConjugateWishart.Tpo $(DEPDIR)/libbugssampler_la-ConjugateWishart.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ConjugateWishart.cc' object='libbugssampler_la-ConjugateWishart.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-ConjugateGamma.lo `test -f 'ConjugateGamma.cc' || echo '$(srcdir)/'`ConjugateGamma.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-ConjugateWishart.lo `test -f 'ConjugateWishart.cc' || echo '$(srcdir)/'`ConjugateWishart.cc -bugssampler_la-ConjugateWishart.lo: ConjugateWishart.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-ConjugateWishart.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-ConjugateWishart.Tpo -c -o bugssampler_la-ConjugateWishart.lo `test -f 'ConjugateWishart.cc' || echo '$(srcdir)/'`ConjugateWishart.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-ConjugateWishart.Tpo $(DEPDIR)/bugssampler_la-ConjugateWishart.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ConjugateWishart.cc' object='bugssampler_la-ConjugateWishart.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-ConjugateBeta.lo: ConjugateBeta.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-ConjugateBeta.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-ConjugateBeta.Tpo -c -o libbugssampler_la-ConjugateBeta.lo `test -f 'ConjugateBeta.cc' || echo '$(srcdir)/'`ConjugateBeta.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-ConjugateBeta.Tpo $(DEPDIR)/libbugssampler_la-ConjugateBeta.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ConjugateBeta.cc' object='libbugssampler_la-ConjugateBeta.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-ConjugateWishart.lo `test -f 'ConjugateWishart.cc' || echo '$(srcdir)/'`ConjugateWishart.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-ConjugateBeta.lo `test -f 'ConjugateBeta.cc' || echo '$(srcdir)/'`ConjugateBeta.cc -bugssampler_la-ConjugateBeta.lo: ConjugateBeta.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-ConjugateBeta.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-ConjugateBeta.Tpo -c -o bugssampler_la-ConjugateBeta.lo `test -f 'ConjugateBeta.cc' || echo '$(srcdir)/'`ConjugateBeta.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-ConjugateBeta.Tpo $(DEPDIR)/bugssampler_la-ConjugateBeta.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ConjugateBeta.cc' object='bugssampler_la-ConjugateBeta.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-ConjugateMNormal.lo: ConjugateMNormal.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-ConjugateMNormal.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-ConjugateMNormal.Tpo -c -o libbugssampler_la-ConjugateMNormal.lo `test -f 'ConjugateMNormal.cc' || echo '$(srcdir)/'`ConjugateMNormal.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-ConjugateMNormal.Tpo $(DEPDIR)/libbugssampler_la-ConjugateMNormal.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ConjugateMNormal.cc' object='libbugssampler_la-ConjugateMNormal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-ConjugateBeta.lo `test -f 'ConjugateBeta.cc' || echo '$(srcdir)/'`ConjugateBeta.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-ConjugateMNormal.lo `test -f 'ConjugateMNormal.cc' || echo '$(srcdir)/'`ConjugateMNormal.cc -bugssampler_la-ConjugateMNormal.lo: ConjugateMNormal.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-ConjugateMNormal.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-ConjugateMNormal.Tpo -c -o bugssampler_la-ConjugateMNormal.lo `test -f 'ConjugateMNormal.cc' || echo '$(srcdir)/'`ConjugateMNormal.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-ConjugateMNormal.Tpo $(DEPDIR)/bugssampler_la-ConjugateMNormal.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ConjugateMNormal.cc' object='bugssampler_la-ConjugateMNormal.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-ConjugateDirichlet.lo: ConjugateDirichlet.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-ConjugateDirichlet.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-ConjugateDirichlet.Tpo -c -o libbugssampler_la-ConjugateDirichlet.lo `test -f 'ConjugateDirichlet.cc' || echo '$(srcdir)/'`ConjugateDirichlet.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-ConjugateDirichlet.Tpo $(DEPDIR)/libbugssampler_la-ConjugateDirichlet.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ConjugateDirichlet.cc' object='libbugssampler_la-ConjugateDirichlet.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-ConjugateMNormal.lo `test -f 'ConjugateMNormal.cc' || echo '$(srcdir)/'`ConjugateMNormal.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-ConjugateDirichlet.lo `test -f 'ConjugateDirichlet.cc' || echo '$(srcdir)/'`ConjugateDirichlet.cc -bugssampler_la-ConjugateDirichlet.lo: ConjugateDirichlet.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-ConjugateDirichlet.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-ConjugateDirichlet.Tpo -c -o bugssampler_la-ConjugateDirichlet.lo `test -f 'ConjugateDirichlet.cc' || echo '$(srcdir)/'`ConjugateDirichlet.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-ConjugateDirichlet.Tpo $(DEPDIR)/bugssampler_la-ConjugateDirichlet.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ConjugateDirichlet.cc' object='bugssampler_la-ConjugateDirichlet.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-ConjugateNormal.lo: ConjugateNormal.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-ConjugateNormal.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-ConjugateNormal.Tpo -c -o libbugssampler_la-ConjugateNormal.lo `test -f 'ConjugateNormal.cc' || echo '$(srcdir)/'`ConjugateNormal.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-ConjugateNormal.Tpo $(DEPDIR)/libbugssampler_la-ConjugateNormal.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ConjugateNormal.cc' object='libbugssampler_la-ConjugateNormal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-ConjugateDirichlet.lo `test -f 'ConjugateDirichlet.cc' || echo '$(srcdir)/'`ConjugateDirichlet.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-ConjugateNormal.lo `test -f 'ConjugateNormal.cc' || echo '$(srcdir)/'`ConjugateNormal.cc -bugssampler_la-ConjugateNormal.lo: ConjugateNormal.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-ConjugateNormal.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-ConjugateNormal.Tpo -c -o bugssampler_la-ConjugateNormal.lo `test -f 'ConjugateNormal.cc' || echo '$(srcdir)/'`ConjugateNormal.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-ConjugateNormal.Tpo $(DEPDIR)/bugssampler_la-ConjugateNormal.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ConjugateNormal.cc' object='bugssampler_la-ConjugateNormal.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-DSumFactory.lo: DSumFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-DSumFactory.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-DSumFactory.Tpo -c -o libbugssampler_la-DSumFactory.lo `test -f 'DSumFactory.cc' || echo '$(srcdir)/'`DSumFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-DSumFactory.Tpo $(DEPDIR)/libbugssampler_la-DSumFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DSumFactory.cc' object='libbugssampler_la-DSumFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-ConjugateNormal.lo `test -f 'ConjugateNormal.cc' || echo '$(srcdir)/'`ConjugateNormal.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-DSumFactory.lo `test -f 'DSumFactory.cc' || echo '$(srcdir)/'`DSumFactory.cc -bugssampler_la-DSumFactory.lo: DSumFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-DSumFactory.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-DSumFactory.Tpo -c -o bugssampler_la-DSumFactory.lo `test -f 'DSumFactory.cc' || echo '$(srcdir)/'`DSumFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-DSumFactory.Tpo $(DEPDIR)/bugssampler_la-DSumFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DSumFactory.cc' object='bugssampler_la-DSumFactory.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-ConjugateFactory.lo: ConjugateFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-ConjugateFactory.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-ConjugateFactory.Tpo -c -o libbugssampler_la-ConjugateFactory.lo `test -f 'ConjugateFactory.cc' || echo '$(srcdir)/'`ConjugateFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-ConjugateFactory.Tpo $(DEPDIR)/libbugssampler_la-ConjugateFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ConjugateFactory.cc' object='libbugssampler_la-ConjugateFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-DSumFactory.lo `test -f 'DSumFactory.cc' || echo '$(srcdir)/'`DSumFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-ConjugateFactory.lo `test -f 'ConjugateFactory.cc' || echo '$(srcdir)/'`ConjugateFactory.cc -bugssampler_la-ConjugateFactory.lo: ConjugateFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-ConjugateFactory.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-ConjugateFactory.Tpo -c -o bugssampler_la-ConjugateFactory.lo `test -f 'ConjugateFactory.cc' || echo '$(srcdir)/'`ConjugateFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-ConjugateFactory.Tpo $(DEPDIR)/bugssampler_la-ConjugateFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ConjugateFactory.cc' object='bugssampler_la-ConjugateFactory.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-RWDSum.lo: RWDSum.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-RWDSum.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-RWDSum.Tpo -c -o libbugssampler_la-RWDSum.lo `test -f 'RWDSum.cc' || echo '$(srcdir)/'`RWDSum.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-RWDSum.Tpo $(DEPDIR)/libbugssampler_la-RWDSum.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='RWDSum.cc' object='libbugssampler_la-RWDSum.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-ConjugateFactory.lo `test -f 'ConjugateFactory.cc' || echo '$(srcdir)/'`ConjugateFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-RWDSum.lo `test -f 'RWDSum.cc' || echo '$(srcdir)/'`RWDSum.cc -bugssampler_la-ConjugateSampler.lo: ConjugateSampler.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-ConjugateSampler.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-ConjugateSampler.Tpo -c -o bugssampler_la-ConjugateSampler.lo `test -f 'ConjugateSampler.cc' || echo '$(srcdir)/'`ConjugateSampler.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-ConjugateSampler.Tpo $(DEPDIR)/bugssampler_la-ConjugateSampler.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ConjugateSampler.cc' object='bugssampler_la-ConjugateSampler.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-RealDSum.lo: RealDSum.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-RealDSum.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-RealDSum.Tpo -c -o libbugssampler_la-RealDSum.lo `test -f 'RealDSum.cc' || echo '$(srcdir)/'`RealDSum.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-RealDSum.Tpo $(DEPDIR)/libbugssampler_la-RealDSum.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='RealDSum.cc' object='libbugssampler_la-RealDSum.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-ConjugateSampler.lo `test -f 'ConjugateSampler.cc' || echo '$(srcdir)/'`ConjugateSampler.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-RealDSum.lo `test -f 'RealDSum.cc' || echo '$(srcdir)/'`RealDSum.cc -bugssampler_la-RWDSum.lo: RWDSum.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-RWDSum.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-RWDSum.Tpo -c -o bugssampler_la-RWDSum.lo `test -f 'RWDSum.cc' || echo '$(srcdir)/'`RWDSum.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-RWDSum.Tpo $(DEPDIR)/bugssampler_la-RWDSum.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RWDSum.cc' object='bugssampler_la-RWDSum.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-DiscreteDSum.lo: DiscreteDSum.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-DiscreteDSum.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-DiscreteDSum.Tpo -c -o libbugssampler_la-DiscreteDSum.lo `test -f 'DiscreteDSum.cc' || echo '$(srcdir)/'`DiscreteDSum.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-DiscreteDSum.Tpo $(DEPDIR)/libbugssampler_la-DiscreteDSum.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DiscreteDSum.cc' object='libbugssampler_la-DiscreteDSum.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-RWDSum.lo `test -f 'RWDSum.cc' || echo '$(srcdir)/'`RWDSum.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-DiscreteDSum.lo `test -f 'DiscreteDSum.cc' || echo '$(srcdir)/'`DiscreteDSum.cc -bugssampler_la-RealDSum.lo: RealDSum.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-RealDSum.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-RealDSum.Tpo -c -o bugssampler_la-RealDSum.lo `test -f 'RealDSum.cc' || echo '$(srcdir)/'`RealDSum.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-RealDSum.Tpo $(DEPDIR)/bugssampler_la-RealDSum.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RealDSum.cc' object='bugssampler_la-RealDSum.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-MNormal.lo: MNormal.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-MNormal.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-MNormal.Tpo -c -o libbugssampler_la-MNormal.lo `test -f 'MNormal.cc' || echo '$(srcdir)/'`MNormal.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-MNormal.Tpo $(DEPDIR)/libbugssampler_la-MNormal.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MNormal.cc' object='libbugssampler_la-MNormal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-RealDSum.lo `test -f 'RealDSum.cc' || echo '$(srcdir)/'`RealDSum.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-MNormal.lo `test -f 'MNormal.cc' || echo '$(srcdir)/'`MNormal.cc -bugssampler_la-DiscreteDSum.lo: DiscreteDSum.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-DiscreteDSum.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-DiscreteDSum.Tpo -c -o bugssampler_la-DiscreteDSum.lo `test -f 'DiscreteDSum.cc' || echo '$(srcdir)/'`DiscreteDSum.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-DiscreteDSum.Tpo $(DEPDIR)/bugssampler_la-DiscreteDSum.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DiscreteDSum.cc' object='bugssampler_la-DiscreteDSum.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-MNormalFactory.lo: MNormalFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-MNormalFactory.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-MNormalFactory.Tpo -c -o libbugssampler_la-MNormalFactory.lo `test -f 'MNormalFactory.cc' || echo '$(srcdir)/'`MNormalFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-MNormalFactory.Tpo $(DEPDIR)/libbugssampler_la-MNormalFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MNormalFactory.cc' object='libbugssampler_la-MNormalFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-DiscreteDSum.lo `test -f 'DiscreteDSum.cc' || echo '$(srcdir)/'`DiscreteDSum.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-MNormalFactory.lo `test -f 'MNormalFactory.cc' || echo '$(srcdir)/'`MNormalFactory.cc -bugssampler_la-MNormal.lo: MNormal.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-MNormal.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-MNormal.Tpo -c -o bugssampler_la-MNormal.lo `test -f 'MNormal.cc' || echo '$(srcdir)/'`MNormal.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-MNormal.Tpo $(DEPDIR)/bugssampler_la-MNormal.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MNormal.cc' object='bugssampler_la-MNormal.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-ConjugateMethod.lo: ConjugateMethod.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-ConjugateMethod.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-ConjugateMethod.Tpo -c -o libbugssampler_la-ConjugateMethod.lo `test -f 'ConjugateMethod.cc' || echo '$(srcdir)/'`ConjugateMethod.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-ConjugateMethod.Tpo $(DEPDIR)/libbugssampler_la-ConjugateMethod.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ConjugateMethod.cc' object='libbugssampler_la-ConjugateMethod.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-MNormal.lo `test -f 'MNormal.cc' || echo '$(srcdir)/'`MNormal.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-ConjugateMethod.lo `test -f 'ConjugateMethod.cc' || echo '$(srcdir)/'`ConjugateMethod.cc -bugssampler_la-MNormalFactory.lo: MNormalFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-MNormalFactory.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-MNormalFactory.Tpo -c -o bugssampler_la-MNormalFactory.lo `test -f 'MNormalFactory.cc' || echo '$(srcdir)/'`MNormalFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-MNormalFactory.Tpo $(DEPDIR)/bugssampler_la-MNormalFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MNormalFactory.cc' object='bugssampler_la-MNormalFactory.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-Dirichlet.lo: Dirichlet.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-Dirichlet.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-Dirichlet.Tpo -c -o libbugssampler_la-Dirichlet.lo `test -f 'Dirichlet.cc' || echo '$(srcdir)/'`Dirichlet.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-Dirichlet.Tpo $(DEPDIR)/libbugssampler_la-Dirichlet.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Dirichlet.cc' object='libbugssampler_la-Dirichlet.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-MNormalFactory.lo `test -f 'MNormalFactory.cc' || echo '$(srcdir)/'`MNormalFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-Dirichlet.lo `test -f 'Dirichlet.cc' || echo '$(srcdir)/'`Dirichlet.cc -bugssampler_la-ConjugateMethod.lo: ConjugateMethod.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-ConjugateMethod.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-ConjugateMethod.Tpo -c -o bugssampler_la-ConjugateMethod.lo `test -f 'ConjugateMethod.cc' || echo '$(srcdir)/'`ConjugateMethod.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-ConjugateMethod.Tpo $(DEPDIR)/bugssampler_la-ConjugateMethod.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ConjugateMethod.cc' object='bugssampler_la-ConjugateMethod.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-DirichletFactory.lo: DirichletFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-DirichletFactory.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-DirichletFactory.Tpo -c -o libbugssampler_la-DirichletFactory.lo `test -f 'DirichletFactory.cc' || echo '$(srcdir)/'`DirichletFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-DirichletFactory.Tpo $(DEPDIR)/libbugssampler_la-DirichletFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DirichletFactory.cc' object='libbugssampler_la-DirichletFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-ConjugateMethod.lo `test -f 'ConjugateMethod.cc' || echo '$(srcdir)/'`ConjugateMethod.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-DirichletFactory.lo `test -f 'DirichletFactory.cc' || echo '$(srcdir)/'`DirichletFactory.cc -bugssampler_la-Dirichlet.lo: Dirichlet.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-Dirichlet.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-Dirichlet.Tpo -c -o bugssampler_la-Dirichlet.lo `test -f 'Dirichlet.cc' || echo '$(srcdir)/'`Dirichlet.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-Dirichlet.Tpo $(DEPDIR)/bugssampler_la-Dirichlet.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Dirichlet.cc' object='bugssampler_la-Dirichlet.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-TruncatedGamma.lo: TruncatedGamma.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-TruncatedGamma.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-TruncatedGamma.Tpo -c -o libbugssampler_la-TruncatedGamma.lo `test -f 'TruncatedGamma.cc' || echo '$(srcdir)/'`TruncatedGamma.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-TruncatedGamma.Tpo $(DEPDIR)/libbugssampler_la-TruncatedGamma.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TruncatedGamma.cc' object='libbugssampler_la-TruncatedGamma.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-Dirichlet.lo `test -f 'Dirichlet.cc' || echo '$(srcdir)/'`Dirichlet.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-TruncatedGamma.lo `test -f 'TruncatedGamma.cc' || echo '$(srcdir)/'`TruncatedGamma.cc -bugssampler_la-DirichletFactory.lo: DirichletFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-DirichletFactory.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-DirichletFactory.Tpo -c -o bugssampler_la-DirichletFactory.lo `test -f 'DirichletFactory.cc' || echo '$(srcdir)/'`DirichletFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-DirichletFactory.Tpo $(DEPDIR)/bugssampler_la-DirichletFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DirichletFactory.cc' object='bugssampler_la-DirichletFactory.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-DMultiDSum.lo: DMultiDSum.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-DMultiDSum.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-DMultiDSum.Tpo -c -o libbugssampler_la-DMultiDSum.lo `test -f 'DMultiDSum.cc' || echo '$(srcdir)/'`DMultiDSum.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-DMultiDSum.Tpo $(DEPDIR)/libbugssampler_la-DMultiDSum.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DMultiDSum.cc' object='libbugssampler_la-DMultiDSum.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-DirichletFactory.lo `test -f 'DirichletFactory.cc' || echo '$(srcdir)/'`DirichletFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-DMultiDSum.lo `test -f 'DMultiDSum.cc' || echo '$(srcdir)/'`DMultiDSum.cc -bugssampler_la-TruncatedGamma.lo: TruncatedGamma.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-TruncatedGamma.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-TruncatedGamma.Tpo -c -o bugssampler_la-TruncatedGamma.lo `test -f 'TruncatedGamma.cc' || echo '$(srcdir)/'`TruncatedGamma.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-TruncatedGamma.Tpo $(DEPDIR)/bugssampler_la-TruncatedGamma.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TruncatedGamma.cc' object='bugssampler_la-TruncatedGamma.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-ShiftedCount.lo: ShiftedCount.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-ShiftedCount.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-ShiftedCount.Tpo -c -o libbugssampler_la-ShiftedCount.lo `test -f 'ShiftedCount.cc' || echo '$(srcdir)/'`ShiftedCount.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-ShiftedCount.Tpo $(DEPDIR)/libbugssampler_la-ShiftedCount.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ShiftedCount.cc' object='libbugssampler_la-ShiftedCount.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-TruncatedGamma.lo `test -f 'TruncatedGamma.cc' || echo '$(srcdir)/'`TruncatedGamma.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-ShiftedCount.lo `test -f 'ShiftedCount.cc' || echo '$(srcdir)/'`ShiftedCount.cc -bugssampler_la-DMultiDSum.lo: DMultiDSum.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-DMultiDSum.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-DMultiDSum.Tpo -c -o bugssampler_la-DMultiDSum.lo `test -f 'DMultiDSum.cc' || echo '$(srcdir)/'`DMultiDSum.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-DMultiDSum.Tpo $(DEPDIR)/bugssampler_la-DMultiDSum.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DMultiDSum.cc' object='bugssampler_la-DMultiDSum.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-ShiftedMultinomial.lo: ShiftedMultinomial.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-ShiftedMultinomial.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-ShiftedMultinomial.Tpo -c -o libbugssampler_la-ShiftedMultinomial.lo `test -f 'ShiftedMultinomial.cc' || echo '$(srcdir)/'`ShiftedMultinomial.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-ShiftedMultinomial.Tpo $(DEPDIR)/libbugssampler_la-ShiftedMultinomial.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ShiftedMultinomial.cc' object='libbugssampler_la-ShiftedMultinomial.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-DMultiDSum.lo `test -f 'DMultiDSum.cc' || echo '$(srcdir)/'`DMultiDSum.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-ShiftedMultinomial.lo `test -f 'ShiftedMultinomial.cc' || echo '$(srcdir)/'`ShiftedMultinomial.cc -bugssampler_la-ShiftedCount.lo: ShiftedCount.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-ShiftedCount.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-ShiftedCount.Tpo -c -o bugssampler_la-ShiftedCount.lo `test -f 'ShiftedCount.cc' || echo '$(srcdir)/'`ShiftedCount.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-ShiftedCount.Tpo $(DEPDIR)/bugssampler_la-ShiftedCount.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ShiftedCount.cc' object='bugssampler_la-ShiftedCount.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-SumMethod.lo: SumMethod.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-SumMethod.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-SumMethod.Tpo -c -o libbugssampler_la-SumMethod.lo `test -f 'SumMethod.cc' || echo '$(srcdir)/'`SumMethod.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-SumMethod.Tpo $(DEPDIR)/libbugssampler_la-SumMethod.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SumMethod.cc' object='libbugssampler_la-SumMethod.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-ShiftedCount.lo `test -f 'ShiftedCount.cc' || echo '$(srcdir)/'`ShiftedCount.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-SumMethod.lo `test -f 'SumMethod.cc' || echo '$(srcdir)/'`SumMethod.cc -bugssampler_la-ShiftedMultinomial.lo: ShiftedMultinomial.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT bugssampler_la-ShiftedMultinomial.lo -MD -MP -MF $(DEPDIR)/bugssampler_la-ShiftedMultinomial.Tpo -c -o bugssampler_la-ShiftedMultinomial.lo `test -f 'ShiftedMultinomial.cc' || echo '$(srcdir)/'`ShiftedMultinomial.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/bugssampler_la-ShiftedMultinomial.Tpo $(DEPDIR)/bugssampler_la-ShiftedMultinomial.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ShiftedMultinomial.cc' object='bugssampler_la-ShiftedMultinomial.lo' libtool=yes @AMDEPBACKSLASH@ +libbugssampler_la-SumFactory.lo: SumFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libbugssampler_la-SumFactory.lo -MD -MP -MF $(DEPDIR)/libbugssampler_la-SumFactory.Tpo -c -o libbugssampler_la-SumFactory.lo `test -f 'SumFactory.cc' || echo '$(srcdir)/'`SumFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbugssampler_la-SumFactory.Tpo $(DEPDIR)/libbugssampler_la-SumFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SumFactory.cc' object='libbugssampler_la-SumFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o bugssampler_la-ShiftedMultinomial.lo `test -f 'ShiftedMultinomial.cc' || echo '$(srcdir)/'`ShiftedMultinomial.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libbugssampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libbugssampler_la-SumFactory.lo `test -f 'SumFactory.cc' || echo '$(srcdir)/'`SumFactory.cc mostlyclean-libtool: -rm -f *.lo @@ -549,26 +641,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -580,15 +661,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -597,6 +674,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -738,18 +830,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/bugs/samplers/MNormal.cc jags-4.0.0/src/modules/bugs/samplers/MNormal.cc --- jags-3.4.0/src/modules/bugs/samplers/MNormal.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/MNormal.cc 2015-07-15 20:13:40.000000000 +0000 @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include @@ -21,10 +21,14 @@ using std::min; using std::string; -static vector initValue(GraphView const *gv, unsigned int chain) +namespace jags { +namespace bugs { + +static vector initValue(SingletonGraphView const *gv, + unsigned int chain) { - double const *x = gv->nodes()[0]->value(chain); - unsigned int N = gv->nodes()[0]->length(); + double const *x = gv->node()->value(chain); + unsigned int N = gv->node()->length(); vector ivalue(N); for (unsigned int i = 0; i < N; ++i) { ivalue[i] = x[i]; @@ -32,15 +36,16 @@ return ivalue; } -namespace bugs { - -MNormMetropolis::MNormMetropolis(GraphView const *gv, unsigned int chain) +MNormMetropolis::MNormMetropolis(SingletonGraphView const *gv, + unsigned int chain) : Metropolis(initValue(gv, chain)), _gv(gv), _chain(chain), _mean(0), _var(0), _prec(0), _n(0), _n_isotonic(0), _sump(0), _meanp(0), _lstep(0), _nstep(10), _p_over_target(true) { + gv->checkFinite(chain); //Check validity of initial values + unsigned int N = gv->length(); _mean = new double[N]; @@ -68,7 +73,7 @@ double logdensity = -_gv->logFullConditional(_chain); double step = exp(_lstep); - double const *xold = _gv->nodes()[0]->value(_chain); + double const *xold = _gv->node()->value(_chain); unsigned int N = _gv->length(); double *eps = new double[N]; @@ -141,7 +146,7 @@ */ unsigned int N = _gv->length(); - double const *x = _gv->nodes()[0]->value(_chain); + double const *x = _gv->node()->value(_chain); for (unsigned int i = 0; i < N; ++i) { _mean[i] += 2 * (x[i] - _mean[i]) / (_n - _n_isotonic + 1); } @@ -160,14 +165,9 @@ return (_n_isotonic > 0) && (_meanp >= 0.15) && (_meanp <= 0.35); } -string MNormMetropolis::name() const -{ - return "MNormMetropolis"; -} - void MNormMetropolis::getValue(vector &value) const { - double const *v = _gv->nodes()[0]->value(_chain); + double const *v = _gv->node()->value(_chain); copy(v, v + _gv->length(), value.begin()); } @@ -176,4 +176,4 @@ _gv->setValue(value, _chain); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/MNormalFactory.cc jags-4.0.0/src/modules/bugs/samplers/MNormalFactory.cc --- jags-3.4.0/src/modules/bugs/samplers/MNormalFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/MNormalFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -4,8 +4,8 @@ #include "MNormalFactory.h" #include #include -#include -#include +#include +#include #include #include @@ -13,6 +13,7 @@ using std::vector; using std::string; +namespace jags { namespace bugs { bool @@ -25,13 +26,13 @@ MNormalFactory::makeSampler(StochasticNode *snode, Graph const &graph) const { unsigned int N = snode->nchain(); - vector methods(N, 0); + vector methods(N, 0); - GraphView *gv = new GraphView(snode, graph); + SingletonGraphView *gv = new SingletonGraphView(snode, graph); for (unsigned int ch = 0; ch < N; ++ch) { methods[ch] = new MNormMetropolis(gv, ch); } - return new ParallelSampler(gv, methods); + return new MutableSampler(gv, methods, "bugs::MNormalMetropolis"); } string MNormalFactory::name() const @@ -39,4 +40,4 @@ return "bugs::MNormal"; } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/MNormalFactory.h jags-4.0.0/src/modules/bugs/samplers/MNormalFactory.h --- jags-3.4.0/src/modules/bugs/samplers/MNormalFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/MNormalFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -5,6 +5,7 @@ #include +namespace jags { namespace bugs { /** @@ -18,6 +19,6 @@ std::string name() const; }; -} +}} #endif /* MNORMAL_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/MNormal.h jags-4.0.0/src/modules/bugs/samplers/MNormal.h --- jags-3.4.0/src/modules/bugs/samplers/MNormal.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/MNormal.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,13 +3,15 @@ #include -class GraphView; +namespace jags { + + class SingletonGraphView; namespace bugs { class MNormMetropolis : public Metropolis { - GraphView const *_gv; + SingletonGraphView const *_gv; unsigned int _chain; double *_mean; double *_var; @@ -21,16 +23,15 @@ unsigned int _nstep; unsigned int _p_over_target; public: - MNormMetropolis(GraphView const *gv, unsigned int chain); + MNormMetropolis(SingletonGraphView const *gv, unsigned int chain); ~MNormMetropolis(); void rescale(double p); void update(RNG *rng); bool checkAdaptation() const; - std::string name() const; void getValue(std::vector &value) const; void setValue(std::vector const &value); }; -} +}} #endif /* MNORM_METROPOLIS_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/RealDSum.cc jags-4.0.0/src/modules/bugs/samplers/RealDSum.cc --- jags-3.4.0/src/modules/bugs/samplers/RealDSum.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/RealDSum.cc 2015-02-22 08:33:05.000000000 +0000 @@ -13,6 +13,9 @@ using std::vector; using std::string; +namespace jags { +namespace bugs { + //Pick a random integer between 0 and n - 1 static int pick(int n, RNG *rng) { @@ -22,8 +25,6 @@ return i - 1; } -namespace bugs { - RealDSum::RealDSum(GraphView const *gv, unsigned int chain) : RWDSum(gv, chain, STEP) { @@ -46,11 +47,4 @@ value[c2 * nrow + r] -= eps; } -string RealDSum::name() const -{ - return "RealDSum"; -} - -} - - +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/RealDSum.h jags-4.0.0/src/modules/bugs/samplers/RealDSum.h --- jags-3.4.0/src/modules/bugs/samplers/RealDSum.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/RealDSum.h 2015-02-22 08:33:05.000000000 +0000 @@ -8,6 +8,7 @@ class StochasticNode; class GraphView; +namespace jags { namespace bugs { /** @@ -19,9 +20,8 @@ RealDSum(GraphView const *gv, unsigned int chain); void step(std::vector &value, unsigned int nrow, unsigned int ncol, double s, RNG *rng) const; - std::string name() const; }; -} +}} #endif /* REAL_DSUM_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/RWDSum.cc jags-4.0.0/src/modules/bugs/samplers/RWDSum.cc --- jags-3.4.0/src/modules/bugs/samplers/RWDSum.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/RWDSum.cc 2015-07-15 20:13:26.000000000 +0000 @@ -19,6 +19,9 @@ //Target acceptance probability for Metropolis-Hastings algorithm #define PROB 0.5 +namespace jags { +namespace bugs { + /* * Returns the stochastic child with a DSum distribution, if it * exists, otherwise a null pointer. If there is more than one DSum @@ -108,8 +111,6 @@ return(ans); } -namespace bugs { - RWDSum::RWDSum(GraphView const *gv, unsigned int chain, double step) : Metropolis(nodeValues(gv, chain)), _gv(gv), _chain(chain), _step_adapter(step, PROB), _pmean(0), _niter(2), _dsnode(getDSumNode(gv)) @@ -117,6 +118,7 @@ if (!_dsnode) { throwLogicError("No DSum node found in RWDSum method"); } + gv->checkFinite(chain); //Check validity of initial values } void RWDSum::rescale(double p) @@ -196,7 +198,7 @@ else { //It must be an observed direct descendent of sampled nodes //and have no other parents - if (!dschild->isObserved()) + if (!isObserved(dschild)) return false; if (dschild->parents().size() != nodes.size()) return false; @@ -232,4 +234,4 @@ _gv->getValue(value, _chain); } -} +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/RWDSum.h jags-4.0.0/src/modules/bugs/samplers/RWDSum.h --- jags-3.4.0/src/modules/bugs/samplers/RWDSum.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/RWDSum.h 2015-02-22 08:33:05.000000000 +0000 @@ -7,6 +7,7 @@ class Graph; class GraphView; +namespace jags { namespace bugs { /** @@ -74,6 +75,6 @@ }; -} +}} #endif /* RW_DSUM_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/ShiftedCount.cc jags-4.0.0/src/modules/bugs/samplers/ShiftedCount.cc --- jags-3.4.0/src/modules/bugs/samplers/ShiftedCount.cc 2011-11-30 13:32:38.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ShiftedCount.cc 2015-02-22 08:33:05.000000000 +0000 @@ -3,7 +3,7 @@ #include "ShiftedCount.h" #include -#include +#include #include #include @@ -11,9 +11,10 @@ using std::vector; using std::string; +namespace jags { namespace bugs { - ShiftedCount::ShiftedCount(GraphView const *gv) + ShiftedCount::ShiftedCount(SingletonGraphView const *gv) : ConjugateMethod(gv) { } @@ -29,14 +30,14 @@ if (isBounded(snode)) return false; - GraphView gv(vector(1,snode), graph); + SingletonGraphView gv(snode, graph); // There should be no deterministic children if (!gv.deterministicChildren().empty()) return false; // Check stochastic children: Must have single child node ... - vector const &child_nodes = + vector const &child_nodes = gv.stochasticChildren(); if (child_nodes.size() != 1) return false; @@ -59,8 +60,8 @@ void ShiftedCount::update(unsigned int chain, RNG *rng) const { - StochasticNode const* snode = _gv->nodes()[0]; - StochasticNode const* cnode = _gv->stochasticChildren().front(); + StochasticNode const* snode = _gv->node(); + StochasticNode * cnode = _gv->stochasticChildren().front(); double y = *cnode->value(chain); //Child value // Prior rate (Poisson) or probability (Binomial) @@ -91,9 +92,4 @@ _gv->setValue(&xnew, 1, chain); } - string ShiftedCount::name() const - { - return "ShiftedCount"; - } - -} +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/ShiftedCount.h jags-4.0.0/src/modules/bugs/samplers/ShiftedCount.h --- jags-3.4.0/src/modules/bugs/samplers/ShiftedCount.h 2011-11-30 13:17:15.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ShiftedCount.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,16 +3,19 @@ #include "ConjugateMethod.h" +namespace jags { + + class Graph; + namespace bugs { class ShiftedCount : public ConjugateMethod { public: - ShiftedCount(GraphView const *gv); + ShiftedCount(SingletonGraphView const *gv); static bool canSample(StochasticNode *snode, Graph const &graph); void update(unsigned int chain, RNG *rng) const; - std::string name() const; }; -} +}} #endif /* SHIFTED_COUNT_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/ShiftedMultinomial.cc jags-4.0.0/src/modules/bugs/samplers/ShiftedMultinomial.cc --- jags-3.4.0/src/modules/bugs/samplers/ShiftedMultinomial.cc 2011-11-29 16:28:03.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ShiftedMultinomial.cc 2015-02-22 08:33:05.000000000 +0000 @@ -4,7 +4,7 @@ #include #include -#include +#include #include @@ -16,8 +16,11 @@ Helper functions */ +namespace jags { +namespace bugs { + static inline -StochasticNode const *CHILD(GraphView const *gv, unsigned int i) +StochasticNode const *CHILD(SingletonGraphView const *gv, unsigned int i) { return gv->stochasticChildren()[i]; } @@ -52,7 +55,7 @@ NB It is only safe to call this after the other checks in canSample. */ -static vector makeIndex(GraphView const *gv, unsigned int chain) +static vector makeIndex(SingletonGraphView const *gv, unsigned int chain) { unsigned int m = gv->length(); //Length of sampled node vector index(m, -1); @@ -103,9 +106,7 @@ return index; } -namespace bugs { - - ShiftedMultinomial::ShiftedMultinomial(GraphView const *gv) + ShiftedMultinomial::ShiftedMultinomial(SingletonGraphView const *gv) : ConjugateMethod(gv), _index(makeIndex(gv,0)) { @@ -120,10 +121,10 @@ if (isBounded(snode)) return false; - GraphView gv(vector(1,snode), graph); + SingletonGraphView gv(snode, graph); // Stochastic children must all be unbounded binomial - vector const &stoch_children = + vector const &stoch_children = gv.stochasticChildren(); for (unsigned int i = 0; i < stoch_children.size(); ++i) { if (getDist(stoch_children[i]) != BIN) @@ -156,7 +157,7 @@ void ShiftedMultinomial::update(unsigned int chain, RNG *rng) const { - StochasticNode *snode = _gv->nodes()[0]; // Sampled node + StochasticNode *snode = _gv->node(); // Sampled node unsigned int m = snode->length(); // Length of sampled node double N = SIZE(snode, chain); double const *p = PROB(snode, chain); @@ -205,9 +206,4 @@ } - string ShiftedMultinomial::name() const - { - return "ShiftedMultinomial"; - } - -} +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/ShiftedMultinomial.h jags-4.0.0/src/modules/bugs/samplers/ShiftedMultinomial.h --- jags-3.4.0/src/modules/bugs/samplers/ShiftedMultinomial.h 2011-11-29 09:02:38.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/ShiftedMultinomial.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,17 +3,20 @@ #include "ConjugateMethod.h" +namespace jags { + + class Graph; + namespace bugs { class ShiftedMultinomial : public ConjugateMethod { std::vector _index; public: - ShiftedMultinomial(GraphView const *gv); + ShiftedMultinomial(SingletonGraphView const *gv); static bool canSample(StochasticNode *snode, Graph const &graph); void update(unsigned int chain, RNG *rng) const; - std::string name() const; }; -} +}} #endif /* SHIFTED_MULTINOMIAL_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/SumFactory.cc jags-4.0.0/src/modules/bugs/samplers/SumFactory.cc --- jags-3.4.0/src/modules/bugs/samplers/SumFactory.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/SumFactory.cc 2015-07-11 07:38:34.000000000 +0000 @@ -0,0 +1,74 @@ +#include +//#include +#include +#include +//#include +#include +#include + +#include "SumFactory.h" +#include "SumMethod.h" + +//#include +#include + +using std::list; +using std::vector; +using std::string; +using std::map; + +namespace jags { + namespace bugs { + + vector + SumFactory::makeSamplers(list const &nodes, + Graph const &graph) const + { + vector samplers; + + vector sum_nodes; + map > smap; + map >::iterator i; + + for (list::const_iterator p = nodes.begin(); + p != nodes.end(); ++p) + { + StochasticNode const *sum = SumMethod::isCandidate(*p, graph); + if (sum) { + i = smap.find(sum); + if (i == smap.end()) { + sum_nodes.push_back(sum); + smap[sum] = vector(1, *p); + } + else { + i->second.push_back(*p); + } + } + } + + for (vector::const_iterator p = + sum_nodes.begin(); p != sum_nodes.end(); ++p) + { + i = smap.find(*p); + if (!SumMethod::canSample(i->second, graph)) continue; + + GraphView *gv = new GraphView(i->second, graph); + unsigned int N = nchain(gv); + vector methods(N); + for (unsigned int ch = 0; ch < N; ++ch) { + methods[ch] = new SumMethod(gv, ch); + } + Sampler *s = new MutableSampler(gv, methods, "bugs::Sum"); + samplers.push_back(s); + } + + return samplers; + } + + string SumFactory::name() const + { + return "bugs::Sum"; + } + + } +} diff -Nru jags-3.4.0/src/modules/bugs/samplers/SumFactory.h jags-4.0.0/src/modules/bugs/samplers/SumFactory.h --- jags-3.4.0/src/modules/bugs/samplers/SumFactory.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/SumFactory.h 2015-07-07 20:35:45.000000000 +0000 @@ -0,0 +1,24 @@ +#ifndef SUM_FACTORY_H_ +#define SUM_FACTORY_H_ + +#include + +namespace jags { + namespace bugs { + + /** + * @short Factory object for discrete sum samplers + */ + class SumFactory : public SamplerFactory + { + public: + std::vector + makeSamplers(std::list const &nodes, + Graph const &graph) const; + std::string name() const; + }; + + } +} + +#endif /* SUM_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/SumMethod.cc jags-4.0.0/src/modules/bugs/samplers/SumMethod.cc --- jags-3.4.0/src/modules/bugs/samplers/SumMethod.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/SumMethod.cc 2015-09-10 05:42:23.000000000 +0000 @@ -0,0 +1,333 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "SumMethod.h" +#include +#include +#include +#include + +using std::vector; +using std::accumulate; +using std::min; +using std::max; +using std::ceil; +using std::logic_error; +using std::floor; +using std::fabs; + +namespace jags { + + namespace bugs { + + template + double sumValue(vector const &x, unsigned int ch) + { + double y = 0; + for (typename vector::const_iterator p = x.begin(); + p != x.end(); ++p) + { + double const *v = (*p)->value(ch); + unsigned int n = (*p)->length(); + y = accumulate(v, v+n, y); + } + return y; + } + + StochasticNode const * + SumMethod::isCandidate(StochasticNode *snode, Graph const &graph) + { + //We can only sample scalar nodes + if (snode->length() != 1) return 0; + + SingletonGraphView gv(snode, graph); + + /* Check stochastic children + + There must be a single stochastic child, which is + observed and has the distribution "sum". + */ + vector const &schildren = gv.stochasticChildren(); + if (schildren.size() != 1) return 0; + StochasticNode const *schild = schildren.front(); + if (schild->distribution()->name() != "sum") return 0; + if (!isObserved(schild)) return 0; + + /* Deterministic descendants must be an additive function + * of snode + */ + if (!checkAdditive(&gv, false)) return 0; + + return schild; + } + + bool SumMethod::canSample(vector const &snodes, + Graph const &graph) + { + if (snodes.size() < 2) return false; + + //Are individual nodes candidates? + Node const *sumchild = isCandidate(snodes[0], graph); + if (sumchild == 0) return false; + for (unsigned int i = 1; i < snodes.size(); ++i) { + if (isCandidate(snodes[i], graph) != sumchild) return false; + } + + //Together are the nodes additive with a fixed intercept? + if (!checkAdditive(snodes, graph, true)) return false; + + //Check consistency of discreteness + bool discrete = sumchild->isDiscreteValued(); + for (unsigned int i = 0; i < snodes.size(); ++i) { + if (snodes[i]->isDiscreteValued() != discrete) return false; + if (snodes[i]->length() != 1) return false; + } + return true; + } + + SumMethod::SumMethod(GraphView const *gv, unsigned int chain) + : MutableSampleMethod(), _gv(gv), _chain(chain), + _sum(gv->stochasticChildren()[0]->value(chain)[0]), + _discrete(gv->stochasticChildren()[0]->isDiscreteValued()), + _x(gv->length()), _i(0), _j(0), _sumdiff(0), _iter(0), + _width(2), _max(10), _adapt(true) + { + + gv->getValue(_x, chain); + + if (gv->logLikelihood(chain) != 0) { + //If initial values are inconsistent with outcome we + //try to adjust them + + StochasticNode const *schild = gv->stochasticChildren()[0]; + + // Calculate intercept (usually zero) + double y = sumValue(schild->parents(), chain); + double sumx = sumValue(gv->nodes(), chain); + double alpha = y - sumx; + + // Calculate target sum for sampled values + double sumx_new = schild->value(chain)[0] - alpha; + + // Rescale + unsigned int N = _x.size(); + vector xnew; + if (_discrete) { + xnew = vector(N, floor(sumx_new/N)); + double delta = sumx_new - + accumulate(xnew.begin(), xnew.end(), 0); + xnew[N-1] += delta; + } + else { + xnew = vector(N, sumx_new/N); + } + + gv->setValue(xnew, chain); + if (_gv->logLikelihood(chain) != 0) { + throw logic_error("SumMethod failed to fix initial values"); + } + if (jags_finite(gv->logPrior(_chain))) { + _x = xnew; //Preserve changes + } + else { + gv->setValue(_x, chain); //Revert changes + } + } + + //Check validity of initial values + gv->checkFinite(chain); + } + + SumMethod::~SumMethod() + { + } + + void SumMethod::updateStep(RNG *rng) + { + // Test current value + double g0 = logDensity(); + if (!jags_finite(g0)) { + return; + } + + // Generate auxiliary variable + double z = g0 - rng->exponential(); + + //Discrete width + double width = _discrete ? ceil(_width) : _width; + + // Generate random interval of width "_width" about current value + double left = _discrete ? floor(rng->uniform() * (width + 1)) : + rng->uniform() * width; + double xold = value(); + double L = xold - left; + double R = L + width; + + double lower = JAGS_NEGINF, upper = JAGS_POSINF; + getLimits(&lower, &upper); + + // Stepping out + + // Randomly set number of steps in left and right directions, + // subject to the limit in the maximal size of the interval + int j = static_cast(rng->uniform() * _max); + int k = _max - 1 - j; + + if (L < lower) { + L = lower; + } + else { + setValue(L); + while (j-- > 0 && logDensity() > z) { + L -= width; + if (L < lower) { + L = lower; + break; + } + setValue(L); + } + } + + if (R > upper) { + R = upper; + } + else { + setValue(R); + while (k-- > 0 && logDensity() > z) { + R += width; + if (R > upper) { + R = upper; + break; + } + setValue(R); + } + } + + // Keep sampling from the interval until acceptance (the loop is + // guaranteed to terminate). + double xnew; + for(;;) { + if (_discrete) { + xnew = L + floor(rng->uniform() * (R - L + 1)); + } + else { + xnew = L + rng->uniform() * (R - L); + } + setValue(xnew); + double g = logDensity(); + if (g >= z - DBL_EPSILON) { + // Accept point + break; + } + else { + // shrink the interval + if (xnew < xold) { + L = xnew; + } + else { + R = xnew; + } + } + } + + if (_adapt) { + _sumdiff += fabs(xnew - xold); + } + } + + void SumMethod::update(RNG *rng) + { + unsigned int len = _gv->length(); + for(_i = 0; _i < len; ++_i) { + _j = static_cast(rng->uniform() * (len-1)); + if (_j >= _i) _j++; + updateStep(rng); + } + + + if (_adapt) { + if (++_iter % 50 == 0) { + _width = _sumdiff / (50 * len); + _sumdiff = 0; + if (_discrete) { + _width = ceil(_width); + } + } + } + + //updateStep does not update the deterministic descendants + //but we need to leave these in a correct state in case they + //are being monitored + vector const &d = _gv->deterministicChildren(); + for(vector::const_iterator p = d.begin(); + p != d.end(); ++p) + { + (*p)->deterministicSample(_chain); + } + + //Sanity check + if (_gv->logLikelihood(_chain) != 0) { + throw logic_error("Failure to preserve sum in SumMethod"); + } + + } + + void SumMethod::setValue(double x) + { + double delta = x - _x[_i]; + _x[_i] = x; + _x[_j] -= delta; + + _gv->nodes()[_i]->setValue(&_x[_i], 1, _chain); + _gv->nodes()[_j]->setValue(&_x[_j], 1, _chain); + } + + double SumMethod::value() const + { + return _x[_i]; + } + + void SumMethod::getLimits(double *lower, double *upper) const + { + vector const &n = _gv->nodes(); + double li, ui, lj, uj; + n[_i]->support(&li, &ui, 1U, _chain); + n[_j]->support(&lj, &uj, 1U, _chain); + double sum_ij = n[_i]->value(_chain)[0] + n[_j]->value(_chain)[0]; + *lower = max(li, sum_ij - uj); + *upper = min(ui, sum_ij - lj); + } + + bool SumMethod::isAdaptive() const + { + return true; + } + + void SumMethod::adaptOff() + { + _adapt=false; + } + + double SumMethod::logDensity() const + { + /* + Log density depends only on the prior of the two nodes + that are currently active + */ + return _gv->nodes()[_i]->logDensity(_chain, PDF_PRIOR) + + _gv->nodes()[_j]->logDensity(_chain, PDF_PRIOR); + } + + bool SumMethod::checkAdaptation() const + { + return true; + } + + } // namespace bugs +} //namespace jags + diff -Nru jags-3.4.0/src/modules/bugs/samplers/SumMethod.h jags-4.0.0/src/modules/bugs/samplers/SumMethod.h --- jags-3.4.0/src/modules/bugs/samplers/SumMethod.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/SumMethod.h 2015-07-27 20:28:22.000000000 +0000 @@ -0,0 +1,54 @@ +#ifndef SUM_METHOD_H_ +#define SUM_METHOD_H_ + +#include + +#include + +namespace jags { + + class StochasticNode; + class DeterministicNode; + class GraphView; + + namespace bugs { + + /** + * @short Sampler for stochastic parents of sum nodes + */ + class SumMethod : public MutableSampleMethod + { + GraphView const *_gv; + unsigned int _chain; + double _sum; + bool _discrete; + std::vector _x; + unsigned int _i, _j; + double _sumdiff; + unsigned int _iter; + double _width; + int _max; + bool _adapt; + public: + SumMethod(GraphView const *gv, unsigned int chain); + ~SumMethod(); + void update(RNG *); + void setValue(double x); + double value() const; + void getLimits(double *lower, double *upper) const; + std::string name() const; + double logDensity() const; + void updateStep(RNG *rng); + bool isAdaptive() const; + void adaptOff(); + bool checkAdaptation() const; + static StochasticNode const * + isCandidate(StochasticNode *snode, Graph const &graph); + static bool canSample(std::vector const &nodes, + Graph const &graph); + }; + + } //namespace bugs +} //namespace jags + +#endif /* SUM_METHOD_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/samplers/TruncatedGamma.cc jags-4.0.0/src/modules/bugs/samplers/TruncatedGamma.cc --- jags-3.4.0/src/modules/bugs/samplers/TruncatedGamma.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/TruncatedGamma.cc 2015-02-22 08:33:05.000000000 +0000 @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include @@ -26,12 +26,15 @@ using std::sort; using std::string; +#define TG_EPS 0.1 + /* The machinery of the TruncatedGamma method is very similar to the Conjugate gamma method, except that Poisson distributions are not permitted. */ +namespace jags { namespace bugs { static Node const * getParent(StochasticNode const *snode) @@ -51,39 +54,43 @@ } } -static double calShape(GraphView const *gv, unsigned int chain) +static double calExponent(SingletonGraphView const *gv, int i, + unsigned int chain) { - //Calculate prior shape parameter + /* + All stochastic children depend on the sampled node "x" via a + parent that takes the value "a * x^c". This function calculates + the value of the exponent c for the ith stochastic child + */ if (gv->deterministicChildren().empty()) { return 1; } //Save original value - const double xold = gv->nodes()[0]->value(chain)[0]; + const double xold = *gv->node()->value(chain); double x0 = xold; if (x0 <= 0) { x0 = 1; + gv->setValue(&x0, 1, chain); } - Node const *par = getParent(gv->stochasticChildren()[0]); - double y0 = par->value(chain)[0]; + Node const *par = getParent(gv->stochasticChildren()[i]); + double y0 = *par->value(chain); double x1 = 2 * x0; - gv->setValue(&x1, 1, 0); - double y1 = par->value(chain)[0]; + gv->setValue(&x1, 1, chain); + double y1 = *par->value(chain); - //Restore original value - gv->setValue(&xold, 1, chain); + gv->setValue(&xold, 1, chain); //Restore original value if (y1 <= 0 || y0 <= 0) - throwLogicError("Invalid scale function in TruncatedGamma"); + throwLogicError("Invalid scale function in TruncatedGamma sampler"); - return log(2.0)/(log(y1) - log(y0)); + return (log(y1) - log(y0))/log(2.0); } -TruncatedGamma::TruncatedGamma(GraphView const *gv) - : ConjugateMethod(gv), _shape(calShape(gv,0)), - _parent(getParent(gv->stochasticChildren()[0])) +TruncatedGamma::TruncatedGamma(SingletonGraphView const *gv) + : ConjugateMethod(gv), _exponent(calExponent(gv, 0, 0)) { } @@ -93,72 +100,64 @@ bool TruncatedGamma::canSample(StochasticNode *snode, Graph const &graph) { - /* Target node must have a uniform distribution with a fixed, - non-negative lower bound - */ + // Target node must have a uniform distribution with a fixed, + // non-negative lower bound. if (getDist(snode) != UNIF) return false; - if (!snode->parents()[0]->isObserved()) + if (!snode->parents()[0]->isFixed()) return false; if (snode->parents()[0]->value(0)[0] < 0) return false; - GraphView gv(vector(1,snode), graph); - vector const &stoch_nodes = gv.stochasticChildren(); + SingletonGraphView gv(snode, graph); + vector const &stoch_nodes = gv.stochasticChildren(); - //Check that stochastic children are valid and that there are - //no unwanted paths + //Check that stochastic children are valid for (unsigned int i = 0; i < stoch_nodes.size(); ++i) { - if (isBounded(stoch_nodes[i])) { - return false; //Bounded - } - switch(getDist(stoch_nodes[i])) { - case EXP: case POIS: - break; - case GAMMA: case NORM: case DEXP: case WEIB: case LNORM: - if (gv.isDependent(stoch_nodes[i]->parents()[0])) { - return false; //non-scale parameter depends on snode + //Check that children are unbounded + if (isBounded(stoch_nodes[i])) { + return false; + } + //Check that are no unwanted paths to the stochastic children + switch(getDist(stoch_nodes[i])) { + case EXP: case POIS: + break; + case GAMMA: case NORM: case DEXP: case WEIB: case LNORM: + if (gv.isDependent(stoch_nodes[i]->parents()[0])) { + return false; //non-scale parameter depends on snode + } + break; + default: + return false; } - break; - default: - return false; - } } - /* Deterministic children must be fixed power functions */ - if (!checkPower(&gv, true)) { - return false; - } + // Deterministic children must be fixed power functions + if (!checkPower(&gv, true)) return false; - /* Power function must be increasing */ - double shape = calShape(&gv, 0); - if (shape == 0) { - //Trivial power function - return false; + // Calculate the coefficient of the power function + double exp0 = calExponent(&gv, 0, 0); + for (unsigned int i = 0; i < stoch_nodes.size(); ++i) { + double expi = calExponent(&gv, i, 0); + //Exclude exponents near 0 for numerical stability + if (fabs(expi) < TG_EPS) return false; + // Exponent must be the same for all stochastic children + // We allow for some numerical error + if (fabs(expi - exp0) > 1E-16) return false; } - // Check stochastic children - Node const *par0 = getParent(stoch_nodes[0]); + //A negative prior value of shape is required if we can guarantee + //that it is positive a posteriori. + double shape = 1/exp0; for (unsigned int i = 0; i < stoch_nodes.size(); ++i) { - - //Check that parent is common to all stochastic children - Node const *pari = getParent(stoch_nodes[i]); - if (pari != par0) { - return false; - } - - ConjugateDist dist = getDist(stoch_nodes[i]); - vector const &cparam = stoch_nodes[i]->parents(); - - //Check that we can guarantee a positive shape parameter a posteriori - switch(dist) { + switch(getDist(stoch_nodes[i])) { case GAMMA: - if (cparam[0]->isObserved()) { - shape += *cparam[0]->value(0); + if (stoch_nodes[i]->parents()[0]->isFixed()) { + shape += *stoch_nodes[0]->parents()[0]->value(0); } break; case POIS: - if (stoch_nodes[i]->isObserved()) { + if (stoch_nodes[i]->isFixed()) { shape += *stoch_nodes[i]->value(0); } break; @@ -173,97 +172,92 @@ } } - /* We could allow any shape > 0, but we add a fudge factor to - * guarantee stability - */ - return (shape >= 0.1); + // We could allow any shape > 0, but we add a fudge factor to + // guarantee stability + return (shape >= TG_EPS); } void TruncatedGamma::update(unsigned int chain, RNG *rng) const { - //Prior - double r = _shape; // shape + //If "x" is the value of the sampled node, the parameter "z = + //x^_exponent" has a truncated gamma distribution. We work in + //terms of "z" and then translate back to "x" + + //Prior parameters + double r = 1/_exponent; // shape double mu = 0; // 1/scale - // likelihood - vector const &schildren = _gv->stochasticChildren(); + //Save current value + StochasticNode *snode = _gv->node(); + const double xold = snode->value(chain)[0]; + const double zold = pow(xold, _exponent); + + //Add likelihood contributions to shape and scale parameters + vector const &schildren = _gv->stochasticChildren(); for (unsigned int i = 0; i < schildren.size(); ++i) { double Y = *schildren[i]->value(chain); - double m = *schildren[i]->parents()[0]->value(chain); //location param - switch(_child_dist[i]) { - case GAMMA: - r += m; - mu += Y ; - break; - case EXP: - r += 1; - mu += Y; - break; - case NORM: - r += 0.5; - mu += (Y - m) * (Y - m) / 2; - break; - case POIS: - r += Y; - mu += 1; - break; - case DEXP: - r += 1; - mu += fabs(Y - m); - break; - case WEIB: - r += 1; - mu += pow(Y, m); - break; - case LNORM: - r += 0.5; - mu += (log(Y) - m) * (log(Y) - m) / 2; - break; - default: - throwLogicError("Invalid distribution in TruncatedGamma"); + double m = *schildren[i]->parents()[0]->value(chain); + double c = *getParent(schildren[i])->value(chain) / zold; + if (c > 0) { + switch(_child_dist[i]) { + case GAMMA: + r += m; + mu += c * Y ; + break; + case EXP: + r += 1; + mu += c * Y; + break; + case NORM: + r += 0.5; + mu += c * (Y - m) * (Y - m) / 2; + break; + case POIS: + r += Y; + mu += c; + break; + case DEXP: + r += 1; + mu += c * fabs(Y - m); + break; + case WEIB: + r += 1; + mu += c * pow(Y, m); + break; + case LNORM: + r += 0.5; + mu += c * (log(Y) - m) * (log(Y) - m) / 2; + break; + default: + throwLogicError("Invalid distribution in TruncatedGamma"); + } } } - - //Save current value - StochasticNode *snode = _gv->nodes()[0]; - double xold = snode->value(chain)[0]; - double yold = _parent->value(chain)[0]; + if (mu == 0) { + + throwNodeError(snode, "Degenerate posterior in TruncatedGamma sampler"); + } //Find the boundaries on the scale of x double lx = snode->parents()[0]->value(chain)[0]; double ux = snode->parents()[1]->value(chain)[0]; if (xold < lx || xold > ux) { - throwLogicError("Current value invalid TruncatedGamma method"); - } - if (lx > ux) { - throwLogicError("Inconsistent prior in TruncatedGamma method"); - } - - if (mu == 0) { - double xnew = (_shape > 0) ? lx : ux; - _gv->setValue(&xnew, 1, chain); - return; + throwLogicError("Current value invalid in TruncatedGamma method"); } - // Find boundaries on the scale of y - // We need to take care that they may be inverted - - double ly = 0; - double uy = JAGS_POSINF; - if (_shape > 0) { - if (lx > 0) { - ly = yold * exp((log(lx) - log(xold))/_shape); - } - uy = yold * exp((log(ux) - log(xold))/_shape); + // Find boundaries on the scale of z + double ly, uy; + if (_exponent > 0) { + ly = (lx > 0) ? exp(_exponent * log(lx)) : 0; + uy = exp(_exponent * log(ux)); } else { - if (lx > 0) { - uy = yold * exp((log(lx) - log(xold))/_shape); - } - ly = yold * exp((log(ux) - log(xold))/_shape); + // Boundaries are inverted + ly = exp(_exponent * log(ux)); + uy = (lx > 0) ? exp(_exponent * log(lx)) : JAGS_POSINF; } double plower = pgamma(ly, r, 1/mu, 1, 0); @@ -271,7 +265,7 @@ // Sample from the posterior double ynew; - if ((pupper - plower) > 0.5) { + if (pupper - plower > 0.5) { do { ynew = rgamma(r, 1/mu, rng); } @@ -282,13 +276,8 @@ ynew = qgamma(p, r, 1/mu, 1, 0); } - double xnew = xold * exp(_shape * (log(ynew) - log(yold))); + double xnew = exp(log(ynew)/_exponent); _gv->setValue(&xnew, 1, chain); } -string TruncatedGamma::name() const -{ - return "TruncatedGamma"; -} - -} +}} diff -Nru jags-3.4.0/src/modules/bugs/samplers/TruncatedGamma.h jags-4.0.0/src/modules/bugs/samplers/TruncatedGamma.h --- jags-3.4.0/src/modules/bugs/samplers/TruncatedGamma.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/samplers/TruncatedGamma.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,21 +3,21 @@ #include "ConjugateMethod.h" -class Node; +namespace jags { + + class Graph; namespace bugs { class TruncatedGamma : public ConjugateMethod { - double _shape; - Node const *_parent; + const double _exponent; public: - TruncatedGamma(GraphView const *gv); + TruncatedGamma(SingletonGraphView const *gv); ~TruncatedGamma(); static bool canSample(StochasticNode *snode, Graph const &graph); void update(unsigned int chain, RNG *rng) const; - std::string name() const; }; -} +}} #endif /* TRUNCATED_GAMMA_H_ */ diff -Nru jags-3.4.0/src/modules/bugs/testbugs.cc jags-4.0.0/src/modules/bugs/testbugs.cc --- jags-3.4.0/src/modules/bugs/testbugs.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/testbugs.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,9 @@ +#include "testbugs.h" +#include "functions/testbugsfun.h" +#include "distributions/testbugsdist.h" +#include + +void init_bugs_test() { + CPPUNIT_TEST_SUITE_REGISTRATION( BugsFunTest ); + CPPUNIT_TEST_SUITE_REGISTRATION( BugsDistTest ); +} diff -Nru jags-3.4.0/src/modules/bugs/testbugs.h jags-4.0.0/src/modules/bugs/testbugs.h --- jags-3.4.0/src/modules/bugs/testbugs.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/bugs/testbugs.h 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,6 @@ +#ifndef BUGS_TEST_H_ +#define BUGS_TEST_H_ + +void init_bugs_test(); + +#endif /* BUGS_TEST_H_ */ diff -Nru jags-3.4.0/src/modules/dic/CalKLApprox.cc jags-4.0.0/src/modules/dic/CalKLApprox.cc --- jags-3.4.0/src/modules/dic/CalKLApprox.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/CalKLApprox.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -#include -#include "CalKLApprox.h" - -#include -#include -#include - -using std::vector; - -static StochasticNode* mkRep(StochasticNode const *snode) -{ - vector par = snode->parents(); - return snode->clone(par); -} - -namespace dic { - - CalKLApprox::CalKLApprox(StochasticNode const * snode, - vector const &rngs, - unsigned int nrep) - : _repnode(mkRep(snode)), _rngs(rngs), _nrep(nrep) - { - if (snode->nchain() != rngs.size()) - throwLogicError("Incorrect number of rngs in CalKLApprox"); - } - - CalKLApprox::~CalKLApprox() - { - delete _repnode; - } - - double CalKLApprox::divergence(unsigned int i, unsigned int j) const - { - double div = 0; - for (unsigned int r = 0; r < _nrep; ++r) { - _repnode->randomSample(_rngs[i], i); - _repnode->randomSample(_rngs[j], j); - div += _repnode->logDensity(i, PDF_FULL) + - _repnode->logDensity(j, PDF_FULL); - _repnode->swapValue(i,j); - div -= _repnode->logDensity(i, PDF_FULL) + - _repnode->logDensity(j, PDF_FULL); - } - return div / _nrep; - } - -} diff -Nru jags-3.4.0/src/modules/dic/CalKLApprox.h jags-4.0.0/src/modules/dic/CalKLApprox.h --- jags-3.4.0/src/modules/dic/CalKLApprox.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/CalKLApprox.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#ifndef CAL_KL_APPROX_H_ -#define CAL_KL_APPROX_H_ - -#include "CalKL.h" -#include - -class StochasticNode; -class RNG; - -namespace dic { - - class CalKLApprox : public CalKL { - StochasticNode *_repnode; - const std::vector _rngs; - const unsigned int _nrep; - public: - CalKLApprox(StochasticNode const *snode, - std::vector const &rngs, unsigned int nrep); - ~CalKLApprox(); - double divergence(unsigned int ch1, unsigned int ch2) const; - }; - -} - -#endif /* CAL_KL_APPROX_H_ */ diff -Nru jags-3.4.0/src/modules/dic/CalKL.cc jags-4.0.0/src/modules/dic/CalKL.cc --- jags-3.4.0/src/modules/dic/CalKL.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/CalKL.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -#include -#include "CalKL.h" - -namespace dic { - - CalKL::~CalKL() - { - //virtual destructor - } - -} diff -Nru jags-3.4.0/src/modules/dic/CalKLExact.cc jags-4.0.0/src/modules/dic/CalKLExact.cc --- jags-3.4.0/src/modules/dic/CalKLExact.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/CalKLExact.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -#include "CalKLExact.h" - -#include "KL.h" -#include - -namespace dic { - - CalKLExact::CalKLExact(StochasticNode const *snode, KL const *kl) - : _snode(snode), _kl(kl) - {} - - double CalKLExact::divergence(unsigned int i, unsigned int j) const - { - return _kl->divergence(_snode->parameters(i), _snode->parameters(j)) + - _kl->divergence(_snode->parameters(j), _snode->parameters(i)); - } - -} - - diff -Nru jags-3.4.0/src/modules/dic/CalKLExact.h jags-4.0.0/src/modules/dic/CalKLExact.h --- jags-3.4.0/src/modules/dic/CalKLExact.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/CalKLExact.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,22 +0,0 @@ -#ifndef CAL_KL_EXACT_H_ -#define CAL_KL_EXACT_H_ - -#include "CalKL.h" - -class StochasticNode; - -namespace dic { - - class KL; - - class CalKLExact : public CalKL { - StochasticNode const *_snode; - KL const *_kl; - public: - CalKLExact(StochasticNode const *snode, KL const *kl); - double divergence(unsigned int ch1, unsigned int ch2) const; - }; - -} - -#endif /* CAL_KL_EXACT_H_ */ diff -Nru jags-3.4.0/src/modules/dic/CalKL.h jags-4.0.0/src/modules/dic/CalKL.h --- jags-3.4.0/src/modules/dic/CalKL.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/CalKL.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -#ifndef CAL_KL_H_ -#define CAL_KL_H_ - -#include - -namespace dic { - - class CalKL { - public: - virtual ~CalKL(); - virtual double divergence(unsigned int ch1, unsigned int ch2) const = 0; - }; - -} - -#endif /* CAL_KL_H_ */ diff -Nru jags-3.4.0/src/modules/dic/DevianceMean.cc jags-4.0.0/src/modules/dic/DevianceMean.cc --- jags-3.4.0/src/modules/dic/DevianceMean.cc 2011-08-05 10:21:20.000000000 +0000 +++ jags-4.0.0/src/modules/dic/DevianceMean.cc 2015-02-22 08:33:05.000000000 +0000 @@ -8,6 +8,8 @@ using std::string; using std::copy; +namespace jags { + static vector toNodeVec(vector const &s) { vector ans(s.size()); @@ -55,8 +57,4 @@ } } - void DevianceMean::reserve(unsigned int niter) - { - } - -} +}} diff -Nru jags-3.4.0/src/modules/dic/DevianceMean.h jags-4.0.0/src/modules/dic/DevianceMean.h --- jags-3.4.0/src/modules/dic/DevianceMean.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/DevianceMean.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,8 @@ #include +namespace jags { + class StochasticNode; namespace dic { @@ -16,11 +18,10 @@ std::vector dim() const; std::vector const &value(unsigned int chain) const; void update(); - void reserve(unsigned int niter); bool poolChains() const; bool poolIterations() const; }; -} +}} #endif /* DEVIANCE_MEAN_H_ */ diff -Nru jags-3.4.0/src/modules/dic/DevianceMonitorFactory.cc jags-4.0.0/src/modules/dic/DevianceMonitorFactory.cc --- jags-3.4.0/src/modules/dic/DevianceMonitorFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/DevianceMonitorFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -11,6 +11,7 @@ using std::string; using std::vector; +namespace jags { namespace dic { Monitor *DevianceMonitorFactory::getMonitor(string const &name, @@ -32,12 +33,14 @@ vector const &snodes = model->stochasticNodes(); vector observed_snodes; for (unsigned int i = 0; i < snodes.size(); ++i) { - if (snodes[i]->isObserved()) { + if (snodes[i]->isFixed()) { observed_snodes.push_back(snodes[i]); } } - if (observed_snodes.empty()) + if (observed_snodes.empty()) { + msg = "There are no observed stochastic nodes"; return 0; + } Monitor *m = 0; if (type == "mean") { @@ -61,4 +64,5 @@ { return "dic::Deviance"; } -} + +}} diff -Nru jags-3.4.0/src/modules/dic/DevianceMonitorFactory.h jags-4.0.0/src/modules/dic/DevianceMonitorFactory.h --- jags-3.4.0/src/modules/dic/DevianceMonitorFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/DevianceMonitorFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace dic { class DevianceMonitorFactory : public MonitorFactory @@ -14,6 +15,6 @@ std::string name() const; }; -} +}} #endif /* DEVIANCE_MONITOR_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/dic/DevianceTrace.cc jags-4.0.0/src/modules/dic/DevianceTrace.cc --- jags-3.4.0/src/modules/dic/DevianceTrace.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/DevianceTrace.cc 2015-02-22 08:33:05.000000000 +0000 @@ -8,6 +8,8 @@ using std::string; using std::copy; +namespace jags { + static vector toNode(vector const &nodes) { vector ans(nodes.size()); @@ -48,13 +50,6 @@ } } - void DevianceTrace::reserve(unsigned int niter) - { - for (unsigned int ch = 0; ch < _values.size(); ++ch) { - _values[ch].reserve(_values[ch].size() + niter); - } - } - bool DevianceTrace::poolChains() const { return false; @@ -65,4 +60,4 @@ return false; } -} +}} diff -Nru jags-3.4.0/src/modules/dic/DevianceTrace.h jags-4.0.0/src/modules/dic/DevianceTrace.h --- jags-3.4.0/src/modules/dic/DevianceTrace.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/DevianceTrace.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,8 @@ #include +namespace jags { + class StochasticNode; namespace dic { @@ -15,12 +17,11 @@ std::vector dim() const; std::vector const &value(unsigned int chain) const; void update(); - void reserve(unsigned int niter); SArray dump() const; bool poolChains() const; bool poolIterations() const; }; -} +}} #endif /* DEVIANCE_TRACE_H_ */ diff -Nru jags-3.4.0/src/modules/dic/dic.cc jags-4.0.0/src/modules/dic/dic.cc --- jags-3.4.0/src/modules/dic/dic.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/dic.cc 2015-02-22 08:33:05.000000000 +0000 @@ -1,4 +1,4 @@ -#include +#include #include "DevianceMonitorFactory.h" #include "PDMonitorFactory.h" @@ -6,6 +6,7 @@ using std::vector; +namespace jags { namespace dic { class DICModule: public Module { @@ -30,7 +31,8 @@ delete mvec[i]; } } -} -dic::DICModule _dic_module; +}} + +jags::dic::DICModule _dic_module; diff -Nru jags-3.4.0/src/modules/dic/KLBern.cc jags-4.0.0/src/modules/dic/KLBern.cc --- jags-3.4.0/src/modules/dic/KLBern.cc 2012-02-20 08:37:23.000000000 +0000 +++ jags-4.0.0/src/modules/dic/KLBern.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -#include -#include -#include "KLBern.h" - -#include - -using std::vector; -using std::log; - -#define PROB0 (*par0[0]) -#define PROB1 (*par1[0]) - -namespace dic { - - double KLBern::divergence(vector const &par0, - vector const &par1) const - { - if (PROB0 == 0) { - return - log(1 - PROB1); - } - else if (PROB0 == 1) { - return - log(PROB1); - } - else { - return (PROB0 * (log(PROB0) - log(PROB1)) + - (1 - PROB0) * (log(1 - PROB0) - log(1 - PROB1))); - } - } - -} diff -Nru jags-3.4.0/src/modules/dic/KLBern.h jags-4.0.0/src/modules/dic/KLBern.h --- jags-3.4.0/src/modules/dic/KLBern.h 2012-02-20 08:37:23.000000000 +0000 +++ jags-4.0.0/src/modules/dic/KLBern.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#ifndef KL_BERN_H_ -#define KL_BERN_H_ - -#include "KL.h" - -namespace dic { - - class KLBern : public KL - { - double divergence(std::vector const &par0, - std::vector const &par1) const; - - }; - -} - -#endif /* KL_BERN_H_ */ diff -Nru jags-3.4.0/src/modules/dic/KLBin.cc jags-4.0.0/src/modules/dic/KLBin.cc --- jags-3.4.0/src/modules/dic/KLBin.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/KLBin.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ -#include -#include -#include "KLBin.h" - -#include - -using std::vector; -using std::log; - -#define PROB0 (*par0[0]) -#define PROB1 (*par1[0]) -#define N0 (*par0[1]) -#define N1 (*par1[1]) - -namespace dic { - - double KLBin::divergence(vector const &par0, - vector const &par1) const - { - //Note: ignoring a term depending only on N, which is - //expensive to calculate and cancels out when we take the - //opposite divergence - - if (N0 != N1) { - return JAGS_POSINF; - } - else if (PROB0 == 0) { - return - N0 * log(1 - PROB1); - } - else if (PROB0 == 1) { - return - N0 * log(PROB1); - } - else { - return (N0 * PROB0 * (log(PROB0) - log(PROB1)) + - N0 * (1 - PROB0) * (log(1 - PROB0) - log(1 - PROB1))); - } - } - -} diff -Nru jags-3.4.0/src/modules/dic/KLBin.h jags-4.0.0/src/modules/dic/KLBin.h --- jags-3.4.0/src/modules/dic/KLBin.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/KLBin.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#ifndef KL_BIN_H_ -#define KL_BIN_H_ - -#include "KL.h" - -namespace dic { - - class KLBin : public KL - { - double divergence(std::vector const &par0, - std::vector const &par1) const; - - }; - -} - -#endif /* KL_BIN_H_ */ diff -Nru jags-3.4.0/src/modules/dic/KL.cc jags-4.0.0/src/modules/dic/KL.cc --- jags-3.4.0/src/modules/dic/KL.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/KL.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -#include "KL.h" - -namespace dic { - - KL::~KL() - {} - -} - diff -Nru jags-3.4.0/src/modules/dic/KL.h jags-4.0.0/src/modules/dic/KL.h --- jags-3.4.0/src/modules/dic/KL.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/KL.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -#ifndef KL_H_ -#define KL_H_ - -#include - -namespace dic { - - class KL - { - public: - virtual ~KL(); - virtual double - divergence(std::vector const ¶m1, - std::vector const ¶m2) const = 0; - - }; - -} - -#endif /* KL_H_ */ diff -Nru jags-3.4.0/src/modules/dic/KLNorm.cc jags-4.0.0/src/modules/dic/KLNorm.cc --- jags-3.4.0/src/modules/dic/KLNorm.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/KLNorm.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -#include -#include "KLNorm.h" -#include - -using std::vector; -using std::log; - -#define mu0 (*par0[0]) -#define mu1 (*par1[0]) -#define tau0 (*par0[1]) -#define tau1 (*par1[1]) - -namespace dic { - - double KLNorm::divergence(vector const &par0, - vector const &par1) const - { - - return ((mu0 - mu1) * (mu0 - mu1) * tau1 + tau1/tau0 - 1 + log(tau0/tau1)) /2; - - } - -} diff -Nru jags-3.4.0/src/modules/dic/KLNorm.h jags-4.0.0/src/modules/dic/KLNorm.h --- jags-3.4.0/src/modules/dic/KLNorm.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/KLNorm.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#ifndef KL_NORM_H_ -#define KL_NORM_H_ - -#include "KL.h" - -namespace dic { - - class KLNorm : public KL - { - double divergence(std::vector const &par0, - std::vector const &par1) const; - - }; - -} - -#endif /* KL_NORM_H_ */ diff -Nru jags-3.4.0/src/modules/dic/KLPois.cc jags-4.0.0/src/modules/dic/KLPois.cc --- jags-3.4.0/src/modules/dic/KLPois.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/KLPois.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#include -#include "KLPois.h" - -#include - -using std::vector; -using std::log; - -#define lambda0 (*par0[0]) -#define lambda1 (*par1[0]) - -namespace dic { - - double KLPois::divergence(vector const &par0, - vector const &par1) const - { - - return lambda0 * log(lambda0/lambda1) + (lambda1 - lambda0); - } - -} diff -Nru jags-3.4.0/src/modules/dic/KLPois.h jags-4.0.0/src/modules/dic/KLPois.h --- jags-3.4.0/src/modules/dic/KLPois.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/KLPois.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#ifndef KL_POIS_H_ -#define KL_POIS_H_ - -#include "KL.h" - -namespace dic { - - class KLPois : public KL - { - double divergence(std::vector const &par0, - std::vector const &par1) const; - - }; - -} - -#endif /* KL_POIS_H_ */ diff -Nru jags-3.4.0/src/modules/dic/KLTab.cc jags-4.0.0/src/modules/dic/KLTab.cc --- jags-3.4.0/src/modules/dic/KLTab.cc 2012-02-20 08:37:23.000000000 +0000 +++ jags-4.0.0/src/modules/dic/KLTab.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -#include -#include "KLTab.h" -#include "KL.h" -#include "KLNorm.h" -#include "KLPois.h" -#include "KLBin.h" -#include "KLBern.h" - -using std::string; -using std::map; - -namespace dic { - - KLTab::KLTab() { - _klmap["dnorm"] = new KLNorm; - _klmap["dbin"] = new KLBin; - _klmap["dpois"] = new KLPois; - _klmap["dbern"] = new KLBern; - } - - KLTab::~KLTab() { - map::const_iterator p = _klmap.begin(); - for (; p != _klmap.end(); ++p) { - delete p->second; - } - } - - KL const *KLTab::find(string const &name) const { - map::const_iterator p = _klmap.find(name); - if (p == _klmap.end()) { - return 0; - } - else { - return p->second; - } - } -} diff -Nru jags-3.4.0/src/modules/dic/KLTab.h jags-4.0.0/src/modules/dic/KLTab.h --- jags-3.4.0/src/modules/dic/KLTab.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/KLTab.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#ifndef KL_TAB_H_ -#define KL_TAB_H_ - -#include -#include - - -namespace dic { - - class KL; - - class KLTab { - std::map _klmap; - public: - KLTab(); - ~KLTab(); - KL const *find(std::string const &name) const; - }; -} - -#endif /* KL_TAB_H_ */ diff -Nru jags-3.4.0/src/modules/dic/Makefile.am jags-4.0.0/src/modules/dic/Makefile.am --- jags-3.4.0/src/modules/dic/Makefile.am 2012-02-20 08:37:23.000000000 +0000 +++ jags-4.0.0/src/modules/dic/Makefile.am 2015-04-21 20:43:37.000000000 +0000 @@ -11,10 +11,8 @@ dic_la_SOURCES = dic.cc DevianceMean.cc DevianceTrace.cc \ DevianceMonitorFactory.cc PDMonitor.cc PoptMonitor.cc \ -PDMonitorFactory.cc KL.cc KLNorm.cc KLBin.cc KLPois.cc KLTab.cc \ -CalKL.cc CalKLExact.cc CalKLApprox.cc PDTrace.cc PDTraceFactory.cc KLBern.cc +PDMonitorFactory.cc PDTrace.cc PDTraceFactory.cc noinst_HEADERS = DevianceMean.h DevianceTrace.h \ DevianceMonitorFactory.h PDMonitor.h PoptMonitor.h PDMonitorFactory.h \ -KL.h KLNorm.h KLBin.h KLPois.h KLTab.h CalKL.h CalKLExact.h \ -CalKLApprox.h PDTrace.h PDTraceFactory.h KLBern.h +PDTrace.h PDTraceFactory.h diff -Nru jags-3.4.0/src/modules/dic/Makefile.in jags-4.0.0/src/modules/dic/Makefile.in --- jags-3.4.0/src/modules/dic/Makefile.in 2013-08-30 13:23:28.000000000 +0000 +++ jags-4.0.0/src/modules/dic/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,8 +91,6 @@ host_triplet = @host@ @WINDOWS_TRUE@am__append_1 = -no-undefined subdir = src/modules/dic -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -65,6 +100,8 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -102,27 +139,50 @@ am_dic_la_OBJECTS = dic_la-dic.lo dic_la-DevianceMean.lo \ dic_la-DevianceTrace.lo dic_la-DevianceMonitorFactory.lo \ dic_la-PDMonitor.lo dic_la-PoptMonitor.lo \ - dic_la-PDMonitorFactory.lo dic_la-KL.lo dic_la-KLNorm.lo \ - dic_la-KLBin.lo dic_la-KLPois.lo dic_la-KLTab.lo \ - dic_la-CalKL.lo dic_la-CalKLExact.lo dic_la-CalKLApprox.lo \ - dic_la-PDTrace.lo dic_la-PDTraceFactory.lo dic_la-KLBern.lo + dic_la-PDMonitorFactory.lo dic_la-PDTrace.lo \ + dic_la-PDTraceFactory.lo dic_la_OBJECTS = $(am_dic_la_OBJECTS) -dic_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ - $(dic_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +dic_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(dic_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(dic_la_SOURCES) DIST_SOURCES = $(dic_la_SOURCES) am__can_run_installinfo = \ @@ -131,11 +191,30 @@ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -149,6 +228,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -218,10 +300,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -293,13 +371,11 @@ dic_la_LIBADD = $(top_builddir)/src/lib/libjags.la dic_la_SOURCES = dic.cc DevianceMean.cc DevianceTrace.cc \ DevianceMonitorFactory.cc PDMonitor.cc PoptMonitor.cc \ -PDMonitorFactory.cc KL.cc KLNorm.cc KLBin.cc KLPois.cc KLTab.cc \ -CalKL.cc CalKLExact.cc CalKLApprox.cc PDTrace.cc PDTraceFactory.cc KLBern.cc +PDMonitorFactory.cc PDTrace.cc PDTraceFactory.cc noinst_HEADERS = DevianceMean.h DevianceTrace.h \ DevianceMonitorFactory.h PDMonitor.h PoptMonitor.h PDMonitorFactory.h \ -KL.h KLNorm.h KLBin.h KLPois.h KLTab.h CalKL.h CalKLExact.h \ -CalKLApprox.h PDTrace.h PDTraceFactory.h KLBern.h +PDTrace.h PDTraceFactory.h all: all-am @@ -317,7 +393,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/dic/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/dic/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -335,6 +410,7 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-jagsmodLTLIBRARIES: $(jagsmod_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(jagsmod_LTLIBRARIES)'; test -n "$(jagsmoddir)" || list=; \ @@ -361,14 +437,17 @@ clean-jagsmodLTLIBRARIES: -test -z "$(jagsmod_LTLIBRARIES)" || rm -f $(jagsmod_LTLIBRARIES) - @list='$(jagsmod_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(jagsmod_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + dic.la: $(dic_la_OBJECTS) $(dic_la_DEPENDENCIES) $(EXTRA_dic_la_DEPENDENCIES) - $(dic_la_LINK) -rpath $(jagsmoddir) $(dic_la_OBJECTS) $(dic_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(dic_la_LINK) -rpath $(jagsmoddir) $(dic_la_OBJECTS) $(dic_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -376,18 +455,9 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dic_la-CalKL.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dic_la-CalKLApprox.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dic_la-CalKLExact.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dic_la-DevianceMean.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dic_la-DevianceMonitorFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dic_la-DevianceTrace.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dic_la-KL.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dic_la-KLBern.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dic_la-KLBin.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dic_la-KLNorm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dic_la-KLPois.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dic_la-KLTab.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dic_la-PDMonitor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dic_la-PDMonitorFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dic_la-PDTrace.Plo@am__quote@ @@ -396,151 +466,91 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dic_la-dic.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< dic_la-dic.lo: dic.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-dic.lo -MD -MP -MF $(DEPDIR)/dic_la-dic.Tpo -c -o dic_la-dic.lo `test -f 'dic.cc' || echo '$(srcdir)/'`dic.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dic_la-dic.Tpo $(DEPDIR)/dic_la-dic.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='dic.cc' object='dic_la-dic.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-dic.lo -MD -MP -MF $(DEPDIR)/dic_la-dic.Tpo -c -o dic_la-dic.lo `test -f 'dic.cc' || echo '$(srcdir)/'`dic.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dic_la-dic.Tpo $(DEPDIR)/dic_la-dic.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='dic.cc' object='dic_la-dic.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-dic.lo `test -f 'dic.cc' || echo '$(srcdir)/'`dic.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-dic.lo `test -f 'dic.cc' || echo '$(srcdir)/'`dic.cc dic_la-DevianceMean.lo: DevianceMean.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-DevianceMean.lo -MD -MP -MF $(DEPDIR)/dic_la-DevianceMean.Tpo -c -o dic_la-DevianceMean.lo `test -f 'DevianceMean.cc' || echo '$(srcdir)/'`DevianceMean.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dic_la-DevianceMean.Tpo $(DEPDIR)/dic_la-DevianceMean.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DevianceMean.cc' object='dic_la-DevianceMean.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-DevianceMean.lo -MD -MP -MF $(DEPDIR)/dic_la-DevianceMean.Tpo -c -o dic_la-DevianceMean.lo `test -f 'DevianceMean.cc' || echo '$(srcdir)/'`DevianceMean.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dic_la-DevianceMean.Tpo $(DEPDIR)/dic_la-DevianceMean.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DevianceMean.cc' object='dic_la-DevianceMean.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-DevianceMean.lo `test -f 'DevianceMean.cc' || echo '$(srcdir)/'`DevianceMean.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-DevianceMean.lo `test -f 'DevianceMean.cc' || echo '$(srcdir)/'`DevianceMean.cc dic_la-DevianceTrace.lo: DevianceTrace.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-DevianceTrace.lo -MD -MP -MF $(DEPDIR)/dic_la-DevianceTrace.Tpo -c -o dic_la-DevianceTrace.lo `test -f 'DevianceTrace.cc' || echo '$(srcdir)/'`DevianceTrace.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dic_la-DevianceTrace.Tpo $(DEPDIR)/dic_la-DevianceTrace.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DevianceTrace.cc' object='dic_la-DevianceTrace.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-DevianceTrace.lo -MD -MP -MF $(DEPDIR)/dic_la-DevianceTrace.Tpo -c -o dic_la-DevianceTrace.lo `test -f 'DevianceTrace.cc' || echo '$(srcdir)/'`DevianceTrace.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dic_la-DevianceTrace.Tpo $(DEPDIR)/dic_la-DevianceTrace.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DevianceTrace.cc' object='dic_la-DevianceTrace.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-DevianceTrace.lo `test -f 'DevianceTrace.cc' || echo '$(srcdir)/'`DevianceTrace.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-DevianceTrace.lo `test -f 'DevianceTrace.cc' || echo '$(srcdir)/'`DevianceTrace.cc dic_la-DevianceMonitorFactory.lo: DevianceMonitorFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-DevianceMonitorFactory.lo -MD -MP -MF $(DEPDIR)/dic_la-DevianceMonitorFactory.Tpo -c -o dic_la-DevianceMonitorFactory.lo `test -f 'DevianceMonitorFactory.cc' || echo '$(srcdir)/'`DevianceMonitorFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dic_la-DevianceMonitorFactory.Tpo $(DEPDIR)/dic_la-DevianceMonitorFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DevianceMonitorFactory.cc' object='dic_la-DevianceMonitorFactory.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-DevianceMonitorFactory.lo -MD -MP -MF $(DEPDIR)/dic_la-DevianceMonitorFactory.Tpo -c -o dic_la-DevianceMonitorFactory.lo `test -f 'DevianceMonitorFactory.cc' || echo '$(srcdir)/'`DevianceMonitorFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dic_la-DevianceMonitorFactory.Tpo $(DEPDIR)/dic_la-DevianceMonitorFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DevianceMonitorFactory.cc' object='dic_la-DevianceMonitorFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-DevianceMonitorFactory.lo `test -f 'DevianceMonitorFactory.cc' || echo '$(srcdir)/'`DevianceMonitorFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-DevianceMonitorFactory.lo `test -f 'DevianceMonitorFactory.cc' || echo '$(srcdir)/'`DevianceMonitorFactory.cc dic_la-PDMonitor.lo: PDMonitor.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-PDMonitor.lo -MD -MP -MF $(DEPDIR)/dic_la-PDMonitor.Tpo -c -o dic_la-PDMonitor.lo `test -f 'PDMonitor.cc' || echo '$(srcdir)/'`PDMonitor.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dic_la-PDMonitor.Tpo $(DEPDIR)/dic_la-PDMonitor.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='PDMonitor.cc' object='dic_la-PDMonitor.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-PDMonitor.lo -MD -MP -MF $(DEPDIR)/dic_la-PDMonitor.Tpo -c -o dic_la-PDMonitor.lo `test -f 'PDMonitor.cc' || echo '$(srcdir)/'`PDMonitor.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dic_la-PDMonitor.Tpo $(DEPDIR)/dic_la-PDMonitor.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='PDMonitor.cc' object='dic_la-PDMonitor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-PDMonitor.lo `test -f 'PDMonitor.cc' || echo '$(srcdir)/'`PDMonitor.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-PDMonitor.lo `test -f 'PDMonitor.cc' || echo '$(srcdir)/'`PDMonitor.cc dic_la-PoptMonitor.lo: PoptMonitor.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-PoptMonitor.lo -MD -MP -MF $(DEPDIR)/dic_la-PoptMonitor.Tpo -c -o dic_la-PoptMonitor.lo `test -f 'PoptMonitor.cc' || echo '$(srcdir)/'`PoptMonitor.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dic_la-PoptMonitor.Tpo $(DEPDIR)/dic_la-PoptMonitor.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='PoptMonitor.cc' object='dic_la-PoptMonitor.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-PoptMonitor.lo -MD -MP -MF $(DEPDIR)/dic_la-PoptMonitor.Tpo -c -o dic_la-PoptMonitor.lo `test -f 'PoptMonitor.cc' || echo '$(srcdir)/'`PoptMonitor.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dic_la-PoptMonitor.Tpo $(DEPDIR)/dic_la-PoptMonitor.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='PoptMonitor.cc' object='dic_la-PoptMonitor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-PoptMonitor.lo `test -f 'PoptMonitor.cc' || echo '$(srcdir)/'`PoptMonitor.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-PoptMonitor.lo `test -f 'PoptMonitor.cc' || echo '$(srcdir)/'`PoptMonitor.cc dic_la-PDMonitorFactory.lo: PDMonitorFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-PDMonitorFactory.lo -MD -MP -MF $(DEPDIR)/dic_la-PDMonitorFactory.Tpo -c -o dic_la-PDMonitorFactory.lo `test -f 'PDMonitorFactory.cc' || echo '$(srcdir)/'`PDMonitorFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dic_la-PDMonitorFactory.Tpo $(DEPDIR)/dic_la-PDMonitorFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='PDMonitorFactory.cc' object='dic_la-PDMonitorFactory.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-PDMonitorFactory.lo `test -f 'PDMonitorFactory.cc' || echo '$(srcdir)/'`PDMonitorFactory.cc - -dic_la-KL.lo: KL.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-KL.lo -MD -MP -MF $(DEPDIR)/dic_la-KL.Tpo -c -o dic_la-KL.lo `test -f 'KL.cc' || echo '$(srcdir)/'`KL.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dic_la-KL.Tpo $(DEPDIR)/dic_la-KL.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='KL.cc' object='dic_la-KL.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-KL.lo `test -f 'KL.cc' || echo '$(srcdir)/'`KL.cc - -dic_la-KLNorm.lo: KLNorm.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-KLNorm.lo -MD -MP -MF $(DEPDIR)/dic_la-KLNorm.Tpo -c -o dic_la-KLNorm.lo `test -f 'KLNorm.cc' || echo '$(srcdir)/'`KLNorm.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dic_la-KLNorm.Tpo $(DEPDIR)/dic_la-KLNorm.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='KLNorm.cc' object='dic_la-KLNorm.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-KLNorm.lo `test -f 'KLNorm.cc' || echo '$(srcdir)/'`KLNorm.cc - -dic_la-KLBin.lo: KLBin.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-KLBin.lo -MD -MP -MF $(DEPDIR)/dic_la-KLBin.Tpo -c -o dic_la-KLBin.lo `test -f 'KLBin.cc' || echo '$(srcdir)/'`KLBin.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dic_la-KLBin.Tpo $(DEPDIR)/dic_la-KLBin.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='KLBin.cc' object='dic_la-KLBin.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-PDMonitorFactory.lo -MD -MP -MF $(DEPDIR)/dic_la-PDMonitorFactory.Tpo -c -o dic_la-PDMonitorFactory.lo `test -f 'PDMonitorFactory.cc' || echo '$(srcdir)/'`PDMonitorFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dic_la-PDMonitorFactory.Tpo $(DEPDIR)/dic_la-PDMonitorFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='PDMonitorFactory.cc' object='dic_la-PDMonitorFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-KLBin.lo `test -f 'KLBin.cc' || echo '$(srcdir)/'`KLBin.cc - -dic_la-KLPois.lo: KLPois.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-KLPois.lo -MD -MP -MF $(DEPDIR)/dic_la-KLPois.Tpo -c -o dic_la-KLPois.lo `test -f 'KLPois.cc' || echo '$(srcdir)/'`KLPois.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dic_la-KLPois.Tpo $(DEPDIR)/dic_la-KLPois.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='KLPois.cc' object='dic_la-KLPois.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-KLPois.lo `test -f 'KLPois.cc' || echo '$(srcdir)/'`KLPois.cc - -dic_la-KLTab.lo: KLTab.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-KLTab.lo -MD -MP -MF $(DEPDIR)/dic_la-KLTab.Tpo -c -o dic_la-KLTab.lo `test -f 'KLTab.cc' || echo '$(srcdir)/'`KLTab.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dic_la-KLTab.Tpo $(DEPDIR)/dic_la-KLTab.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='KLTab.cc' object='dic_la-KLTab.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-KLTab.lo `test -f 'KLTab.cc' || echo '$(srcdir)/'`KLTab.cc - -dic_la-CalKL.lo: CalKL.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-CalKL.lo -MD -MP -MF $(DEPDIR)/dic_la-CalKL.Tpo -c -o dic_la-CalKL.lo `test -f 'CalKL.cc' || echo '$(srcdir)/'`CalKL.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dic_la-CalKL.Tpo $(DEPDIR)/dic_la-CalKL.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CalKL.cc' object='dic_la-CalKL.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-CalKL.lo `test -f 'CalKL.cc' || echo '$(srcdir)/'`CalKL.cc - -dic_la-CalKLExact.lo: CalKLExact.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-CalKLExact.lo -MD -MP -MF $(DEPDIR)/dic_la-CalKLExact.Tpo -c -o dic_la-CalKLExact.lo `test -f 'CalKLExact.cc' || echo '$(srcdir)/'`CalKLExact.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dic_la-CalKLExact.Tpo $(DEPDIR)/dic_la-CalKLExact.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CalKLExact.cc' object='dic_la-CalKLExact.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-CalKLExact.lo `test -f 'CalKLExact.cc' || echo '$(srcdir)/'`CalKLExact.cc - -dic_la-CalKLApprox.lo: CalKLApprox.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-CalKLApprox.lo -MD -MP -MF $(DEPDIR)/dic_la-CalKLApprox.Tpo -c -o dic_la-CalKLApprox.lo `test -f 'CalKLApprox.cc' || echo '$(srcdir)/'`CalKLApprox.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dic_la-CalKLApprox.Tpo $(DEPDIR)/dic_la-CalKLApprox.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CalKLApprox.cc' object='dic_la-CalKLApprox.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-CalKLApprox.lo `test -f 'CalKLApprox.cc' || echo '$(srcdir)/'`CalKLApprox.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-PDMonitorFactory.lo `test -f 'PDMonitorFactory.cc' || echo '$(srcdir)/'`PDMonitorFactory.cc dic_la-PDTrace.lo: PDTrace.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-PDTrace.lo -MD -MP -MF $(DEPDIR)/dic_la-PDTrace.Tpo -c -o dic_la-PDTrace.lo `test -f 'PDTrace.cc' || echo '$(srcdir)/'`PDTrace.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dic_la-PDTrace.Tpo $(DEPDIR)/dic_la-PDTrace.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='PDTrace.cc' object='dic_la-PDTrace.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-PDTrace.lo -MD -MP -MF $(DEPDIR)/dic_la-PDTrace.Tpo -c -o dic_la-PDTrace.lo `test -f 'PDTrace.cc' || echo '$(srcdir)/'`PDTrace.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dic_la-PDTrace.Tpo $(DEPDIR)/dic_la-PDTrace.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='PDTrace.cc' object='dic_la-PDTrace.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-PDTrace.lo `test -f 'PDTrace.cc' || echo '$(srcdir)/'`PDTrace.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-PDTrace.lo `test -f 'PDTrace.cc' || echo '$(srcdir)/'`PDTrace.cc dic_la-PDTraceFactory.lo: PDTraceFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-PDTraceFactory.lo -MD -MP -MF $(DEPDIR)/dic_la-PDTraceFactory.Tpo -c -o dic_la-PDTraceFactory.lo `test -f 'PDTraceFactory.cc' || echo '$(srcdir)/'`PDTraceFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dic_la-PDTraceFactory.Tpo $(DEPDIR)/dic_la-PDTraceFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='PDTraceFactory.cc' object='dic_la-PDTraceFactory.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-PDTraceFactory.lo `test -f 'PDTraceFactory.cc' || echo '$(srcdir)/'`PDTraceFactory.cc - -dic_la-KLBern.lo: KLBern.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-KLBern.lo -MD -MP -MF $(DEPDIR)/dic_la-KLBern.Tpo -c -o dic_la-KLBern.lo `test -f 'KLBern.cc' || echo '$(srcdir)/'`KLBern.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dic_la-KLBern.Tpo $(DEPDIR)/dic_la-KLBern.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='KLBern.cc' object='dic_la-KLBern.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dic_la-PDTraceFactory.lo -MD -MP -MF $(DEPDIR)/dic_la-PDTraceFactory.Tpo -c -o dic_la-PDTraceFactory.lo `test -f 'PDTraceFactory.cc' || echo '$(srcdir)/'`PDTraceFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dic_la-PDTraceFactory.Tpo $(DEPDIR)/dic_la-PDTraceFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='PDTraceFactory.cc' object='dic_la-PDTraceFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-KLBern.lo `test -f 'KLBern.cc' || echo '$(srcdir)/'`KLBern.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dic_la-PDTraceFactory.lo `test -f 'PDTraceFactory.cc' || echo '$(srcdir)/'`PDTraceFactory.cc mostlyclean-libtool: -rm -f *.lo @@ -548,26 +558,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -579,15 +578,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -596,6 +591,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -740,19 +750,22 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-jagsmodLTLIBRARIES clean-libtool ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am \ - install-jagsmodLTLIBRARIES install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-jagsmodLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-jagsmodLTLIBRARIES clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-jagsmodLTLIBRARIES install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-jagsmodLTLIBRARIES + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/dic/PDMonitor.cc jags-4.0.0/src/modules/dic/PDMonitor.cc --- jags-3.4.0/src/modules/dic/PDMonitor.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/PDMonitor.cc 2015-04-21 21:07:18.000000000 +0000 @@ -1,9 +1,9 @@ #include #include "PDMonitor.h" -#include "CalKL.h" #include #include +#include #include @@ -11,6 +11,8 @@ using std::string; using std::copy; +namespace jags { + static vector toNodeVec(vector const &s) { vector ans(s.size()); @@ -21,21 +23,20 @@ namespace dic { PDMonitor::PDMonitor(vector const &snodes, - vector const &calkl, double scale) - : Monitor("mean", toNodeVec(snodes)), _calkl(calkl), + vector const &rngs, + unsigned int nrep, double scale) + : Monitor("mean", toNodeVec(snodes)), _snodes(snodes), _rngs(rngs), + _nrep(nrep), _values(snodes.size(), 0), _weights(snodes.size(), 0), - _scale(scale), _nchain(snodes[0]->nchain()) + _scale(scale), _nchain(rngs.size()) { - if (snodes[0]->nchain() < 2) { + if (_nchain < 2) { throwLogicError("PDMonitor needs at least 2 chains"); } } PDMonitor::~PDMonitor() { - for (unsigned int i = 0; i < _calkl.size(); ++i) { - delete _calkl[i]; - } } vector PDMonitor::dim() const @@ -48,10 +49,6 @@ return _values; } - void PDMonitor::reserve(unsigned int niter) - { - } - bool PDMonitor::poolChains() const { return true; @@ -70,9 +67,11 @@ double pdsum = 0; double wsum = 0; for (unsigned int i = 0; i < _nchain; ++i) { - w[i] = weight(k, i); + w[i] = weight(_snodes[k], i); for (unsigned int j = 0; j < i; ++j) { - pdsum += w[i] * w[j] * _calkl[k]->divergence(i, j); + pdsum += w[i] * w[j] * ( + _snodes[k]->KL(i, j, _rngs[i], _nrep) + + _snodes[k]->KL(j, i, _rngs[j], _nrep)); wsum += w[i] * w[j]; } } @@ -85,9 +84,9 @@ } - double PDMonitor::weight(unsigned int k, unsigned int ch) const + double PDMonitor::weight(StochasticNode const *snode, unsigned int ch) const { return 1; } -} +}} diff -Nru jags-3.4.0/src/modules/dic/PDMonitorFactory.cc jags-4.0.0/src/modules/dic/PDMonitorFactory.cc --- jags-3.4.0/src/modules/dic/PDMonitorFactory.cc 2012-02-16 14:53:59.000000000 +0000 +++ jags-4.0.0/src/modules/dic/PDMonitorFactory.cc 2015-04-21 22:13:37.000000000 +0000 @@ -1,9 +1,6 @@ #include "PDMonitorFactory.h" #include "PDMonitor.h" #include "PoptMonitor.h" -#include "KLTab.h" -#include "CalKLExact.h" -#include "CalKLApprox.h" #include #include @@ -15,13 +12,9 @@ using std::string; using std::vector; +namespace jags { namespace dic { - static KL const *findKL(string const &name) { - static KLTab _kltab; - return _kltab.find(name); - } - Monitor *PDMonitorFactory::getMonitor(string const &name, Range const &range, BUGSModel *model, @@ -35,11 +28,11 @@ return 0; if (!isNULL(range)) { - msg = string("cannot monitor a subset of ") + name; + msg = string("Cannot monitor a subset of ") + name; } if (model->nchain() < 2) { - msg = string("at least two parallel chains needed to monitor ") + msg = string("At least two parallel chains needed to monitor ") + name; return 0; } @@ -47,7 +40,7 @@ vector observed_nodes; vector const &snodes = model->stochasticNodes(); for (unsigned int i = 0; i < snodes.size(); ++i) { - if (snodes[i]->isObserved()) { + if (snodes[i]->isFixed()) { if (isSupportFixed(snodes[i])) { observed_nodes.push_back(snodes[i]); } @@ -58,7 +51,7 @@ } } if (observed_nodes.empty()) { - msg = "There are no observed nodes"; + msg = "There are no observed stochastic nodes"; return 0; } @@ -68,25 +61,12 @@ rngs.push_back(model->rng(i)); } - vector calkl; - for (unsigned int i = 0; i < observed_nodes.size(); ++i) { - - StochasticNode const *snode = observed_nodes[i]; - KL const *kl = findKL(snode->distribution()->name()); - if (kl) { - calkl.push_back(new CalKLExact(snode, kl)); - } - else { - calkl.push_back(new CalKLApprox(snode, rngs, 10)); - } - } - Monitor *m = 0; if (name =="pD") { - m = new PDMonitor(observed_nodes, calkl); + m = new PDMonitor(observed_nodes, rngs, 10); } else if (name == "popt") { - m = new PoptMonitor(observed_nodes, calkl); + m = new PoptMonitor(observed_nodes, rngs, 10); } if (m) { m->setName(name); @@ -103,4 +83,5 @@ { return "dic::PD"; } -} + +}} diff -Nru jags-3.4.0/src/modules/dic/PDMonitorFactory.h jags-4.0.0/src/modules/dic/PDMonitorFactory.h --- jags-3.4.0/src/modules/dic/PDMonitorFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/PDMonitorFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace dic { class PDMonitorFactory : public MonitorFactory @@ -14,6 +15,6 @@ std::string name() const; }; -} +}} #endif /* PD_MONITOR_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/dic/PDMonitor.h jags-4.0.0/src/modules/dic/PDMonitor.h --- jags-3.4.0/src/modules/dic/PDMonitor.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/PDMonitor.h 2015-07-27 20:28:22.000000000 +0000 @@ -5,14 +5,17 @@ #include -class StochasticNode; +namespace jags { + class StochasticNode; + struct RNG; + namespace dic { - class CalKL; - class PDMonitor : public Monitor { - std::vector _calkl; + std::vector _snodes; + std::vector _rngs; + unsigned int _nrep; std::vector _values; std::vector _weights; double _scale; @@ -20,18 +23,19 @@ unsigned int _n; public: PDMonitor(std::vector const &snodes, - std::vector const &calkl, double scale=1); + std::vector const &rngs, + unsigned int nrep, double scale=1); ~PDMonitor(); std::vector dim() const; std::vector const &value(unsigned int chain) const; - void reserve(unsigned int niter); SArray dump() const; bool poolChains() const; bool poolIterations() const; void update(); - virtual double weight(unsigned int k, unsigned int ch) const; + virtual double weight(StochasticNode const *snode, + unsigned int ch) const; }; -} +}} #endif /* PD_MONITOR_H_ */ diff -Nru jags-3.4.0/src/modules/dic/PDTrace.cc jags-4.0.0/src/modules/dic/PDTrace.cc --- jags-3.4.0/src/modules/dic/PDTrace.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/PDTrace.cc 2015-04-24 19:39:41.000000000 +0000 @@ -1,7 +1,6 @@ #include #include "PDTrace.h" -#include "CalKL.h" #include #include @@ -11,6 +10,8 @@ using std::string; using std::copy; +namespace jags { + static vector toNodeVec(vector const &s) { vector ans(s.size()); @@ -21,23 +22,18 @@ namespace dic { PDTrace::PDTrace(vector const &snodes, - vector const &calkl) - : Monitor("trace", toNodeVec(snodes)), _calkl(calkl), - _values(0), _nchain(snodes[0]->nchain()) + vector const &rngs, unsigned int nrep) + : Monitor("trace", toNodeVec(snodes)), + _snodes(snodes), _rngs(rngs), _nrep(nrep), + _nchain(rngs.size()), _values() { - if (calkl.size() != snodes.size()) { - throwLogicError("Length mismatch in PDTrace constructor"); - } - if (snodes[0]->nchain() < 2) { + if (_nchain < 2) { throwLogicError("PDTrace needs at least 2 chains"); } } PDTrace::~PDTrace() { - for (unsigned int i = 0; i < _calkl.size(); ++i) { - delete _calkl[i]; - } } vector PDTrace::dim() const @@ -50,11 +46,6 @@ return _values; } - void PDTrace::reserve(unsigned int niter) - { - _values.reserve(_values.size() + niter); - } - bool PDTrace::poolChains() const { return true; @@ -68,10 +59,11 @@ void PDTrace::update() { double pd = 0; - for (unsigned int k = 0; k < _calkl.size(); ++k) { + for (unsigned int k = 0; k < _snodes.size(); ++k) { for (unsigned int i = 0; i < _nchain; ++i) { for (unsigned int j = 0; j < i; ++j) { - pd += _calkl[k]->divergence(i, j); + pd += _snodes[k]->KL(i, j, _rngs[i], _nrep); + pd += _snodes[k]->KL(j, i, _rngs[j], _nrep); } } } @@ -79,4 +71,4 @@ _values.push_back(pd); } -} +}} diff -Nru jags-3.4.0/src/modules/dic/PDTraceFactory.cc jags-4.0.0/src/modules/dic/PDTraceFactory.cc --- jags-3.4.0/src/modules/dic/PDTraceFactory.cc 2011-07-20 10:08:44.000000000 +0000 +++ jags-4.0.0/src/modules/dic/PDTraceFactory.cc 2015-04-24 19:46:36.000000000 +0000 @@ -1,8 +1,5 @@ #include "PDTraceFactory.h" #include "PDTrace.h" -#include "KLTab.h" -#include "CalKLExact.h" -#include "CalKLApprox.h" #include #include @@ -14,13 +11,9 @@ using std::string; using std::vector; +namespace jags { namespace dic { - static KL const *findKL(string const &name) { - static KLTab _kltab; - return _kltab.find(name); - } - Monitor *PDTraceFactory::getMonitor(string const &name, Range const &range, BUGSModel *model, @@ -43,7 +36,7 @@ vector observed_nodes; vector const &snodes = model->stochasticNodes(); for (unsigned int i = 0; i < snodes.size(); ++i) { - if (snodes[i]->isObserved()) { + if (snodes[i]->isFixed()) { observed_nodes.push_back(snodes[i]); } if (!isSupportFixed(snodes[i])) { @@ -62,20 +55,7 @@ rngs.push_back(model->rng(i)); } - vector calkl; - for (unsigned int i = 0; i < observed_nodes.size(); ++i) { - - StochasticNode const *snode = observed_nodes[i]; - KL const *kl = findKL(snode->distribution()->name()); - if (kl) { - calkl.push_back(new CalKLExact(snode, kl)); - } - else { - calkl.push_back(new CalKLApprox(snode, rngs, 10)); - } - } - - Monitor *m = new PDTrace(observed_nodes, calkl); + Monitor *m = new PDTrace(observed_nodes, rngs, 10); m->setName("pD"); m->setElementNames(vector(1,"pD")); return m; @@ -85,4 +65,5 @@ { return "dic::PDTrace"; } -} + +}} diff -Nru jags-3.4.0/src/modules/dic/PDTraceFactory.h jags-4.0.0/src/modules/dic/PDTraceFactory.h --- jags-3.4.0/src/modules/dic/PDTraceFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/PDTraceFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace dic { class PDTraceFactory : public MonitorFactory @@ -14,6 +15,6 @@ std::string name() const; }; -} +}} #endif /* PD_TRACE_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/dic/PDTrace.h jags-4.0.0/src/modules/dic/PDTrace.h --- jags-3.4.0/src/modules/dic/PDTrace.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/PDTrace.h 2015-07-27 20:28:22.000000000 +0000 @@ -5,29 +5,31 @@ #include +namespace jags { + class StochasticNode; +struct RNG; namespace dic { - class CalKL; - class PDTrace : public Monitor { - std::vector _calkl; - std::vector _values; + std::vector _snodes; + std::vector _rngs; + unsigned int _nrep; unsigned int _nchain; - unsigned int _n; + std::vector _values; + public: PDTrace(std::vector const &snodes, - std::vector const &calkl); + std::vector const &rngs, unsigned int nrep); ~PDTrace(); std::vector dim() const; std::vector const &value(unsigned int chain) const; - void reserve(unsigned int niter); bool poolChains() const; bool poolIterations() const; void update(); }; -} +}} #endif /* PD_TRACE_H_ */ diff -Nru jags-3.4.0/src/modules/dic/PoptMonitor.cc jags-4.0.0/src/modules/dic/PoptMonitor.cc --- jags-3.4.0/src/modules/dic/PoptMonitor.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/PoptMonitor.cc 2015-04-21 21:06:46.000000000 +0000 @@ -8,16 +8,19 @@ using std::vector; using std::exp; +namespace jags { namespace dic { PoptMonitor::PoptMonitor(vector const &snodes, - vector const &calkl) - : PDMonitor(snodes, calkl, 2.0), _snodes(snodes) + vector const &rngs, unsigned int nrep) + : PDMonitor(snodes, rngs, nrep, 2.0) { } - double PoptMonitor::weight(unsigned int k, unsigned int ch) const + double PoptMonitor::weight(StochasticNode const *snode, + unsigned int ch) const { - return exp(-_snodes[k]->logDensity(ch, PDF_FULL)); + return exp(-snode->logDensity(ch, PDF_FULL)); } -} + +}} diff -Nru jags-3.4.0/src/modules/dic/PoptMonitor.h jags-4.0.0/src/modules/dic/PoptMonitor.h --- jags-3.4.0/src/modules/dic/PoptMonitor.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/dic/PoptMonitor.h 2015-04-21 21:10:02.000000000 +0000 @@ -8,16 +8,17 @@ class StochasticNode; class CalKL; +namespace jags { namespace dic { class PoptMonitor : public PDMonitor { std::vector _snodes; public: PoptMonitor(std::vector const &snodes, - std::vector const &calkl); - double weight(unsigned int k, unsigned int ch) const; + std::vector const &rngs, unsigned int nrep); + double weight(StochasticNode const *snode, unsigned int ch) const; }; -} +}} #endif /* POPT_MONITOR_H_ */ diff -Nru jags-3.4.0/src/modules/glm/CSparse/Makefile.in jags-4.0.0/src/modules/glm/CSparse/Makefile.in --- jags-3.4.0/src/modules/glm/CSparse/Makefile.in 2013-08-30 13:23:28.000000000 +0000 +++ jags-4.0.0/src/modules/glm/CSparse/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/glm/CSparse -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,6 +99,8 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -83,22 +120,47 @@ cs_dfs.lo cs_reach.lo cs_spsolve.lo cs_ereach.lo cs_leaf.lo \ cs_randperm.lo csparse_la_OBJECTS = $(am_csparse_la_OBJECTS) -csparse_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +csparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(csparse_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(csparse_la_SOURCES) DIST_SOURCES = $(csparse_la_SOURCES) am__can_run_installinfo = \ @@ -107,11 +169,30 @@ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -125,6 +206,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -194,10 +278,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -294,7 +374,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/glm/CSparse/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/glm/CSparse/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -315,14 +394,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + csparse.la: $(csparse_la_OBJECTS) $(csparse_la_DEPENDENCIES) $(EXTRA_csparse_la_DEPENDENCIES) - $(csparse_la_LINK) $(csparse_la_OBJECTS) $(csparse_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(csparse_la_LINK) $(csparse_la_OBJECTS) $(csparse_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -383,25 +465,28 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cs_utsolve.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -409,26 +494,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -440,15 +514,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -457,6 +527,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -598,18 +683,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/glm/glm.cc jags-4.0.0/src/modules/glm/glm.cc --- jags-3.4.0/src/modules/glm/glm.cc 2012-09-18 07:26:28.000000000 +0000 +++ jags-4.0.0/src/modules/glm/glm.cc 2015-02-22 08:33:05.000000000 +0000 @@ -1,13 +1,13 @@ -#include +#include #include "samplers/LinearFactory.h" #include "samplers/LinearGibbsFactory.h" #include "samplers/IWLSFactory.h" -#include "samplers/HolmesHeldFactory.h" +//#include "samplers/HolmesHeldFactory.h" #include "samplers/AlbertChibFactory.h" #include "samplers/AlbertChibGibbsFactory.h" #include "samplers/AMFactory.h" -#include "samplers/ConjugateFFactory.h" +//#include "samplers/ConjugateFFactory.h" #include @@ -15,6 +15,7 @@ cholmod_common *glm_wk = 0; /* Workspace for CHOLMOD */ +namespace jags { namespace glm { class GLMModule : public Module { @@ -52,8 +53,8 @@ insert(new AMFactory); insert(new AlbertChibGibbsFactory); insert(new AlbertChibFactory); - insert(new HolmesHeldFactory); - insert(new ConjugateFFactory); + //insert(new HolmesHeldFactory); + //insert(new ConjugateFFactory); } GLMModule::~GLMModule() { @@ -66,6 +67,7 @@ cholmod_finish(glm_wk); delete glm_wk; } -} -glm::GLMModule _glm_module; +}} + +jags::glm::GLMModule _glm_module; diff -Nru jags-3.4.0/src/modules/glm/Makefile.am jags-4.0.0/src/modules/glm/Makefile.am --- jags-3.4.0/src/modules/glm/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/glm/Makefile.am 2015-09-28 21:37:57.000000000 +0000 @@ -9,12 +9,34 @@ -I$(top_srcdir)/src/modules/glm/SSparse/UFconfig \ -I$(top_srcdir)/src/modules/glm/SSparse/CHOLMOD/Include -glm_la_LIBADD = samplers/glmsampler.la CSparse/csparse.la \ +glm_la_LIBADD = samplers/libglmsampler.la CSparse/csparse.la \ SSparse/ssparse.la $(top_builddir)/src/lib/libjags.la \ $(top_builddir)/src/jrmath/libjrmath.la @LAPACK_LIBS@ \ - @BLAS_LIBS@ + @BLAS_LIBS@ glm_la_LDFLAGS = -module -avoid-version if WINDOWS glm_la_LDFLAGS += -no-undefined +else +# Adding FLIBS here allows static linking, but on Windows we don't want to +# do this as it will cause failure to build glm.dll using Rtools +glm_la_LIBADD += @FLIBS@ endif + +### Test library + +check_LTLIBRARIES = libglmtest.la +libglmtest_la_SOURCES = testglm.cc testglm.h +libglmtest_la_CPPFLAGS = -I$(top_srcdir)/src/include +libglmtest_la_CXXFLAGS = $(CPPUNIT_CFLAGS) +libglmtest_la_LDFLAGS = $(CPPUNIT_LIBS) +libglmtest_la_LIBADD = samplers/libglmsamptest.la \ + samplers/libglmsampler.la \ + $(top_builddir)/src/lib/libtest.la \ + $(top_builddir)/src/lib/libjags.la \ + $(top_builddir)/src/jrmath/libjrmath.la + +if WINDOWS +libglmtest_la_LDFLAGS += -no-undefined +endif + diff -Nru jags-3.4.0/src/modules/glm/Makefile.in jags-4.0.0/src/modules/glm/Makefile.in --- jags-3.4.0/src/modules/glm/Makefile.in 2013-08-30 13:23:28.000000000 +0000 +++ jags-4.0.0/src/modules/glm/Makefile.in 2015-09-28 21:41:14.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +89,11 @@ build_triplet = @build@ host_triplet = @host@ @WINDOWS_TRUE@am__append_1 = -no-undefined +# Adding FLIBS here allows static linking, but on Windows we don't want to +# do this as it will cause failure to build glm.dll using Rtools +@WINDOWS_FALSE@am__append_2 = @FLIBS@ +@WINDOWS_TRUE@am__append_3 = -no-undefined subdir = src/modules/glm -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -63,6 +103,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -96,36 +137,91 @@ } am__installdirs = "$(DESTDIR)$(jagsmoddir)" LTLIBRARIES = $(jagsmod_LTLIBRARIES) -glm_la_DEPENDENCIES = samplers/glmsampler.la CSparse/csparse.la \ +am__DEPENDENCIES_1 = +glm_la_DEPENDENCIES = samplers/libglmsampler.la CSparse/csparse.la \ SSparse/ssparse.la $(top_builddir)/src/lib/libjags.la \ - $(top_builddir)/src/jrmath/libjrmath.la + $(top_builddir)/src/jrmath/libjrmath.la $(am__DEPENDENCIES_1) am_glm_la_OBJECTS = glm_la-glm.lo glm_la_OBJECTS = $(am_glm_la_OBJECTS) -glm_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ - $(glm_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +glm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(glm_la_LDFLAGS) $(LDFLAGS) -o $@ +libglmtest_la_DEPENDENCIES = samplers/libglmsamptest.la \ + samplers/libglmsampler.la $(top_builddir)/src/lib/libtest.la \ + $(top_builddir)/src/lib/libjags.la \ + $(top_builddir)/src/jrmath/libjrmath.la +am_libglmtest_la_OBJECTS = libglmtest_la-testglm.lo +libglmtest_la_OBJECTS = $(am_libglmtest_la_OBJECTS) +libglmtest_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ + $(libglmtest_la_CXXFLAGS) $(CXXFLAGS) $(libglmtest_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(glm_la_SOURCES) -DIST_SOURCES = $(glm_la_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(glm_la_SOURCES) $(libglmtest_la_SOURCES) +DIST_SOURCES = $(glm_la_SOURCES) $(libglmtest_la_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -133,12 +229,33 @@ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ @@ -167,6 +284,7 @@ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -180,6 +298,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -249,10 +370,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -326,12 +443,24 @@ -I$(top_srcdir)/src/modules/glm/SSparse/UFconfig \ -I$(top_srcdir)/src/modules/glm/SSparse/CHOLMOD/Include -glm_la_LIBADD = samplers/glmsampler.la CSparse/csparse.la \ - SSparse/ssparse.la $(top_builddir)/src/lib/libjags.la \ - $(top_builddir)/src/jrmath/libjrmath.la @LAPACK_LIBS@ \ - @BLAS_LIBS@ - +glm_la_LIBADD = samplers/libglmsampler.la CSparse/csparse.la \ + SSparse/ssparse.la $(top_builddir)/src/lib/libjags.la \ + $(top_builddir)/src/jrmath/libjrmath.la @LAPACK_LIBS@ \ + @BLAS_LIBS@ $(am__append_2) glm_la_LDFLAGS = -module -avoid-version $(am__append_1) + +### Test library +check_LTLIBRARIES = libglmtest.la +libglmtest_la_SOURCES = testglm.cc testglm.h +libglmtest_la_CPPFLAGS = -I$(top_srcdir)/src/include +libglmtest_la_CXXFLAGS = $(CPPUNIT_CFLAGS) +libglmtest_la_LDFLAGS = $(CPPUNIT_LIBS) $(am__append_3) +libglmtest_la_LIBADD = samplers/libglmsamptest.la \ + samplers/libglmsampler.la \ + $(top_builddir)/src/lib/libtest.la \ + $(top_builddir)/src/lib/libjags.la \ + $(top_builddir)/src/jrmath/libjrmath.la + all: all-recursive .SUFFIXES: @@ -348,7 +477,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/glm/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/glm/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -366,6 +494,18 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + +clean-checkLTLIBRARIES: + -test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES) + @list='$(check_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + install-jagsmodLTLIBRARIES: $(jagsmod_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(jagsmod_LTLIBRARIES)'; test -n "$(jagsmoddir)" || list=; \ @@ -392,14 +532,20 @@ clean-jagsmodLTLIBRARIES: -test -z "$(jagsmod_LTLIBRARIES)" || rm -f $(jagsmod_LTLIBRARIES) - @list='$(jagsmod_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(jagsmod_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + glm.la: $(glm_la_OBJECTS) $(glm_la_DEPENDENCIES) $(EXTRA_glm_la_DEPENDENCIES) - $(glm_la_LINK) -rpath $(jagsmoddir) $(glm_la_OBJECTS) $(glm_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(glm_la_LINK) -rpath $(jagsmoddir) $(glm_la_OBJECTS) $(glm_la_LIBADD) $(LIBS) + +libglmtest.la: $(libglmtest_la_OBJECTS) $(libglmtest_la_DEPENDENCIES) $(EXTRA_libglmtest_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libglmtest_la_LINK) $(libglmtest_la_OBJECTS) $(libglmtest_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -408,34 +554,45 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glm_la-glm.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmtest_la-testglm.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< glm_la-glm.lo: glm.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glm_la-glm.lo -MD -MP -MF $(DEPDIR)/glm_la-glm.Tpo -c -o glm_la-glm.lo `test -f 'glm.cc' || echo '$(srcdir)/'`glm.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glm_la-glm.Tpo $(DEPDIR)/glm_la-glm.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='glm.cc' object='glm_la-glm.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glm_la-glm.lo -MD -MP -MF $(DEPDIR)/glm_la-glm.Tpo -c -o glm_la-glm.lo `test -f 'glm.cc' || echo '$(srcdir)/'`glm.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/glm_la-glm.Tpo $(DEPDIR)/glm_la-glm.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='glm.cc' object='glm_la-glm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glm_la-glm.lo `test -f 'glm.cc' || echo '$(srcdir)/'`glm.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glm_la-glm.lo `test -f 'glm.cc' || echo '$(srcdir)/'`glm.cc + +libglmtest_la-testglm.lo: testglm.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmtest_la_CPPFLAGS) $(CPPFLAGS) $(libglmtest_la_CXXFLAGS) $(CXXFLAGS) -MT libglmtest_la-testglm.lo -MD -MP -MF $(DEPDIR)/libglmtest_la-testglm.Tpo -c -o libglmtest_la-testglm.lo `test -f 'testglm.cc' || echo '$(srcdir)/'`testglm.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmtest_la-testglm.Tpo $(DEPDIR)/libglmtest_la-testglm.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='testglm.cc' object='libglmtest_la-testglm.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmtest_la_CPPFLAGS) $(CPPFLAGS) $(libglmtest_la_CXXFLAGS) $(CXXFLAGS) -c -o libglmtest_la-testglm.lo `test -f 'testglm.cc' || echo '$(srcdir)/'`testglm.cc mostlyclean-libtool: -rm -f *.lo @@ -444,22 +601,25 @@ -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -474,57 +634,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -540,12 +655,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -557,15 +667,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -574,6 +680,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -634,6 +755,7 @@ fi; \ done check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_LTLIBRARIES) check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive @@ -673,8 +795,8 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-generic clean-jagsmodLTLIBRARIES clean-libtool \ - mostlyclean-am +clean-am: clean-checkLTLIBRARIES clean-generic \ + clean-jagsmodLTLIBRARIES clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) @@ -742,13 +864,12 @@ uninstall-am: uninstall-jagsmodLTLIBRARIES -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) check-am install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic \ - clean-jagsmodLTLIBRARIES clean-libtool ctags ctags-recursive \ - distclean distclean-compile distclean-generic \ +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-checkLTLIBRARIES clean-generic \ + clean-jagsmodLTLIBRARIES clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -758,8 +879,10 @@ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-jagsmodLTLIBRARIES + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-jagsmodLTLIBRARIES + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/glm/samplers/AlbertChib.cc jags-4.0.0/src/modules/glm/samplers/AlbertChib.cc --- jags-3.4.0/src/modules/glm/samplers/AlbertChib.cc 2011-11-14 08:22:13.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/AlbertChib.cc 2015-02-22 08:33:05.000000000 +0000 @@ -2,10 +2,12 @@ #include "AlbertChib.h" #include "KS.h" +#include "Outcome.h" #include #include #include +#include #include #include #include @@ -17,85 +19,29 @@ using std::exp; using std::fabs; -//Regularization penalty to stop precision going to zero in logistic model -#define REG_PENALTY 0.001 - -//FIXME: maybe use R math library here - -//Random sample from a left-truncated logistic distribution -static double llogit(double left, RNG *rng, double mu) -{ - double qleft = 1/(1 + exp(mu-left)); - double x = qleft + (1 - qleft) * rng->uniform(); - return mu + log(x) - log(1 - x); -} - -//Random sample from a right-truncated logistc distribution -static double rlogit(double right, RNG *rng, double mu) -{ - double qright = 1/(1 + exp(mu-right)); - double x = qright * rng->uniform(); - return mu + log(x) - log(1 - x); -} - -#define CHILD(i) (_view->stochasticChildren()[i]) - +namespace jags { namespace glm { AlbertChib::AlbertChib(GraphView const *view, - vector const &sub_views, + vector const &sub_views, + vector const &outcomes, unsigned int chain, bool gibbs) - : BinaryGLM(view, sub_views, chain), _gibbs(gibbs), _aux_init(true) + : GLMMethod(view, sub_views, outcomes, chain, true), _gibbs(gibbs) { } void AlbertChib::update(RNG *rng) { - if (_aux_init) { - initAuxiliary(rng); - _aux_init = false; - } - /* Note that we must update the auxiliary variables *before* calling updateLM. This ordering is important for models with a variable design matrix (e.g. measurement error models). */ - unsigned int nrow = _view->stochasticChildren().size(); - - double y, mu; - for (unsigned int r = 0; r < nrow; ++r) { - switch(_outcome[r]) { - case BGLM_NORMAL: - break; - case BGLM_PROBIT: - y = CHILD(r)->value(_chain)[0]; - if (y == 1) { - _z[r] = lnormal(0, rng, getMean(r)); - } - else if (y == 0) { - _z[r] = rnormal(0, rng, getMean(r)); - } - else { - throwLogicError("Invalid child value in HolmesHeld"); - } - break; - case BGLM_LOGIT: - y = CHILD(r)->value(_chain)[0]; - mu = getMean(r); - if (y == 1) { - _z[r] = llogit(0, rng, mu); - } - else if (y == 0) { - _z[r] = rlogit(0, rng, mu); - } - else { - throwLogicError("Invalid child value in HolmesHeld"); - } - _tau[r] = REG_PENALTY + 1/sample_lambda(fabs(_z[r] - mu), rng); - break; - } + for (vector::const_iterator p = _outcomes.begin(); + p != _outcomes.end(); ++p) + { + (*p)->update(rng); } if (_gibbs) { @@ -106,12 +52,6 @@ } } - string AlbertChib::name() const - { - if (_gibbs) - return "Albert-Chib-Gibbs"; - else - return "Albert-Chib"; - } -} +}} + diff -Nru jags-3.4.0/src/modules/glm/samplers/AlbertChibFactory.cc jags-4.0.0/src/modules/glm/samplers/AlbertChibFactory.cc --- jags-3.4.0/src/modules/glm/samplers/AlbertChibFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/AlbertChibFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -6,18 +6,21 @@ using std::vector; +namespace jags { namespace glm { AlbertChibFactory::AlbertChibFactory() : BinaryFactory("glm::Albert-Chib", false) {} - BinaryGLM * + GLMMethod * AlbertChibFactory::newBinary(GraphView const *view, - vector const &sub_views, + vector const &sub_views, + vector const &outcomes, unsigned int chain) const { - return new AlbertChib(view, sub_views, chain, false); + + return new AlbertChib(view, sub_views, outcomes, chain, false); } -} +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/AlbertChibFactory.h jags-4.0.0/src/modules/glm/samplers/AlbertChibFactory.h --- jags-3.4.0/src/modules/glm/samplers/AlbertChibFactory.h 2011-11-10 09:37:57.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/AlbertChibFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include "BinaryFactory.h" +namespace jags { namespace glm { /** @@ -18,11 +19,12 @@ * Returns a newly allocated object of class AlbertChib for * sampling binary GLMs with probit or logistic link. */ - BinaryGLM *newBinary(GraphView const *view, - std::vector const &sub_views, + GLMMethod *newBinary(GraphView const *view, + std::vector const &sub_views, + std::vector const &outcomes, unsigned int chain) const; }; -} +}} #endif /* ALBERT_CHIB_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/AlbertChibGibbsFactory.cc jags-4.0.0/src/modules/glm/samplers/AlbertChibGibbsFactory.cc --- jags-3.4.0/src/modules/glm/samplers/AlbertChibGibbsFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/AlbertChibGibbsFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -5,18 +5,20 @@ using std::vector; +namespace jags { namespace glm { AlbertChibGibbsFactory::AlbertChibGibbsFactory() : BinaryFactory("glm::Albert-Chib-Gibbs", true) {} - BinaryGLM * + GLMMethod * AlbertChibGibbsFactory::newBinary(GraphView const *view, - vector const &sub_views, - unsigned int chain) const + vector const &sub_views, + vector const &outcomes, + unsigned int chain) const { - return new AlbertChib(view, sub_views, chain, true); + return new AlbertChib(view, sub_views, outcomes, chain, true); } -} +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/AlbertChibGibbsFactory.h jags-4.0.0/src/modules/glm/samplers/AlbertChibGibbsFactory.h --- jags-3.4.0/src/modules/glm/samplers/AlbertChibGibbsFactory.h 2011-11-10 09:38:34.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/AlbertChibGibbsFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include "BinaryFactory.h" +namespace jags { namespace glm { /** @@ -21,11 +22,12 @@ * so that updating of the regression parameters is done * element-wise by Gibbs sampling. */ - BinaryGLM *newBinary(GraphView const *view, - std::vector const &sub_views, + GLMMethod *newBinary(GraphView const *view, + std::vector const &sub_views, + std::vector const &outcomes, unsigned int chain) const; }; -} +}} #endif /* ALBERT_CHIB_GIBBS_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/AlbertChib.h jags-4.0.0/src/modules/glm/samplers/AlbertChib.h --- jags-3.4.0/src/modules/glm/samplers/AlbertChib.h 2011-11-10 09:40:20.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/AlbertChib.h 2015-02-22 14:59:15.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef ALBERT_CHIB_H_ #define ALBERT_CHIB_H_ -#include "BinaryGLM.h" +#include "GLMMethod.h" +namespace jags { namespace glm { /** @@ -24,9 +25,8 @@ * A second algorithm for binary logistic models is implemented * in the class HolmesHeld. */ - class AlbertChib : public BinaryGLM { + class AlbertChib : public GLMMethod { bool _gibbs; //Do we update parameters individually? - bool _aux_init; //Do we need to initialize auxiliary variables? public: /** * Constructor. @@ -37,24 +37,20 @@ * @see GLMMethod#GLMMethod */ AlbertChib(GraphView const *view, - std::vector const &sub_views, + std::vector const &sub_views, + std::vector const &outcomes, unsigned int chain, bool gibbs); /** - * Returns "Albert-Chib" or "Albert-Chib-Gibbs" depending on - * whether Gibbs sampling is being used. - */ - std::string name() const; - /** * The update takes place in two steps. First the auxiliary - * variables provided by the parent class BinaryGLM are - * updated. Then the parameters of the model are updated by - * calling either GLMMethod#updateLM or - * GLMMethod#updateLMGibbs. The latter is used if the - * parameter "gibbs" was set to true in the constructor. + * variables provided by the Outcome class are updated. Then + * the parameters of the model are updated by calling either + * GLMMethod#updateLM or GLMMethod#updateLMGibbs. The latter + * is used if the parameter "gibbs" was set to true in the + * constructor. */ void update(RNG *rng); }; -} +}} #endif /* ALBERT_CHIB_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/AMFactory.cc jags-4.0.0/src/modules/glm/samplers/AMFactory.cc --- jags-3.4.0/src/modules/glm/samplers/AMFactory.cc 2011-11-14 08:22:13.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/AMFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -7,65 +7,68 @@ #include "AMMethod.h" #include "Linear.h" +#include "AuxMixPoisson.h" +#include "AuxMixBinomial.h" +#include "NormalLinear.h" + #include #include #include +#include +#include using std::string; using std::vector; +namespace jags { namespace glm { AMFactory::AMFactory() : GLMFactory("glm::Auxiliary-Mixture") {} - bool AMFactory::checkOutcome(StochasticNode const *snode, - LinkNode const *lnode) const + bool AMFactory::checkOutcome(StochasticNode const *snode) const { - string linkname; - if (lnode) { - linkname = lnode->linkName(); - } - - switch(GLMMethod::getFamily(snode)) { - case GLM_BERNOULLI: case GLM_BINOMIAL: - return linkname=="logit"; - case GLM_POISSON: - return linkname=="log"; - /* - case GLM_NORMAL: - return lnode == 0; - */ - default: - return false; - } + return AuxMixPoisson::canRepresent(snode) || + AuxMixBinomial::canRepresent(snode) || + NormalLinear::canRepresent(snode); } GLMMethod * AMFactory::newMethod(GraphView const *view, - vector const &sub_views, - unsigned int chain) const + vector const &sub_views, + unsigned int chain) const { - /* - If we have a pure guassian linear model then make a - conjugate linear sampler instead. - */ bool linear = true; - vector const &children = - view->stochasticChildren(); - for (unsigned int i = 0; i < children.size(); ++i) { - if (GLMMethod::getFamily(children[i]) != GLM_NORMAL) { + vector outcomes; + + for (vector::const_iterator + p = view->stochasticChildren().begin(); + p != view->stochasticChildren().end(); ++p) + { + Outcome *outcome = 0; + if (NormalLinear::canRepresent(*p)) { + outcome = new NormalLinear(*p, chain); + } + else if (AuxMixBinomial::canRepresent(*p)) { + outcome = new AuxMixBinomial(*p, chain); + linear = false; + } + else if (AuxMixPoisson::canRepresent(*p)) { + outcome = new AuxMixPoisson(*p, chain); linear = false; - break; } + else { + throwLogicError("Invalid outcome in BinaryFactory"); + } + outcomes.push_back(outcome); } if (linear) { - return new Linear(view, sub_views, chain, false); + return new Linear(view, sub_views, outcomes, chain, false); } else { - return new AMMethod(view, sub_views, chain); + return new AMMethod(view, sub_views, outcomes, chain); } } @@ -74,4 +77,4 @@ return !isBounded(snode); } -} +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/AMFactory.h jags-4.0.0/src/modules/glm/samplers/AMFactory.h --- jags-3.4.0/src/modules/glm/samplers/AMFactory.h 2011-11-10 10:34:50.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/AMFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -4,6 +4,7 @@ #include "GLMFactory.h" #include "AMMethod.h" +namespace jags { namespace glm { /** @@ -19,8 +20,7 @@ * Returns true if the outcome has a Poisson distribution with * log link, or a Binomial distribution with logit link. */ - bool checkOutcome(StochasticNode const *snode, - LinkNode const *lnode) const; + bool checkOutcome(StochasticNode const *snode) const; /** * Returns true if the node is not bounded */ @@ -31,10 +31,10 @@ * with logistic link. */ GLMMethod * newMethod(GraphView const *view, - std::vector const &sub_views, + std::vector const &sub_views, unsigned int chain) const; }; -} +}} #endif /* AM_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/AMMethod.cc jags-4.0.0/src/modules/glm/samplers/AMMethod.cc --- jags-3.4.0/src/modules/glm/samplers/AMMethod.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/AMMethod.cc 2015-02-22 08:33:05.000000000 +0000 @@ -1,97 +1,38 @@ #include #include "AMMethod.h" -#include "AuxMixBinomial.h" -#include "AuxMixPoisson.h" -#include "AuxMixNormal.h" -#include "AuxMix.h" - -#include -#include -#include +#include "Outcome.h" using std::vector; using std::string; -static double const & one() -{ - static const double x = 1; - return x; -} - +namespace jags { namespace glm { AMMethod::AMMethod(GraphView const *view, - vector const &sub_views, + vector const &sub_views, + vector const &outcomes, unsigned int chain) - : GLMMethod(view, sub_views, chain, true), - _aux(view->stochasticChildren().size()) - { - vector const &children = - _view->stochasticChildren(); - - for (unsigned int i = 0; i < children.size(); ++i) { - - StochasticNode const *y = children[i]; - Node const *eta = y->parents()[0]->parents()[0]; - Node const *tau = 0; - - switch(GLMMethod::getFamily(y)) { - case GLM_BERNOULLI: - _aux[i] = new AuxMixBinomial(eta->value(chain)[0], one(), - y->value(chain)[0]); - break; - case GLM_BINOMIAL: - tau = y->parents()[1]; - _aux[i] = new AuxMixBinomial(eta->value(chain)[0], - tau->value(chain)[0], - y->value(chain)[0]); - break; - case GLM_POISSON: - _aux[i] = new AuxMixPoisson(eta->value(chain)[0], - y->value(chain)[0]); - break; - case GLM_NORMAL: - tau = y->parents()[1]; - _aux[i] = new AuxMixNormal(tau->value(chain)[0], - y->value(chain)[0]); - break; - default: - throwLogicError("Invalid family in AMMethod"); - break; - } - } - } - - AMMethod::~AMMethod() - { - for (unsigned int i = 0; i < _aux.size(); ++i) { - delete _aux[i]; - } - } - - double AMMethod::getValue(unsigned int i) const - { - return _aux[i]->value(); - } - - double AMMethod::getPrecision(unsigned int i) const - { - return _aux[i]->precision(); - } + : GLMMethod(view, sub_views, outcomes, chain, true) + {} void AMMethod::update(RNG *rng) { - for (unsigned int r = 0; r < _aux.size(); ++r) - { - _aux[r]->update(rng); + /* + Note that we must update the auxiliary variables *before* + calling updateLM. This ordering is important for models with + a variable design matrix (e.g. measurement error models). + */ + + for (vector::const_iterator p = _outcomes.begin(); + p != _outcomes.end(); ++p) + { + (*p)->update(rng); } + + //FIXME: Why not allow Gibbs sampling? updateLM(rng); } - string AMMethod::name() const - { - return "AuxiliaryMixture"; - } -} +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/AMMethod.h jags-4.0.0/src/modules/glm/samplers/AMMethod.h --- jags-3.4.0/src/modules/glm/samplers/AMMethod.h 2011-11-10 11:10:31.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/AMMethod.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include "GLMMethod.h" +namespace jags { namespace glm { class AuxMix; @@ -21,34 +22,17 @@ * the auxiliary variables as normal. */ class AMMethod : public GLMMethod { - std::vector _aux; public: AMMethod(GraphView const *view, - std::vector const &sub_views, + std::vector const &sub_views, + std::vector const &outcomes, unsigned int chain); - ~AMMethod(); - /** - * Returns "AuxiliaryMixture" - */ - std::string name() const; - /** - * Returns the precision parameter of the auxiliary variable - * for the outcome variable with index i, according to the - * current normal mixture approximation. - */ - double getPrecision(unsigned int i) const; - /** - * Returns the value of the auxiliary variable for the outcome - * with index i, according to the current normal mixture - * approximation. - */ - double getValue(unsigned int i) const; /** * Updates the auxiliary variables and then calls updateLM */ void update(RNG *rng); }; -} +}} #endif /* AM_METHOD_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/AuxMixBinomial.cc jags-4.0.0/src/modules/glm/samplers/AuxMixBinomial.cc --- jags-3.4.0/src/modules/glm/samplers/AuxMixBinomial.cc 2012-02-20 09:41:31.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/AuxMixBinomial.cc 2015-02-22 08:33:05.000000000 +0000 @@ -1,19 +1,43 @@ #include + #include "AuxMixBinomial.h" #include "LGMix.h" +#include "Classify.h" + #include #include +#include +#include + #include using std::exp; +namespace jags { namespace glm { + + static double const &getDenominator(StochasticNode const *snode, unsigned int chain) + { + static const double one = 1; + + switch(getFamily(snode)) { + case GLM_BERNOULLI: + return one; + case GLM_BINOMIAL: + return snode->parents()[1]->value(chain)[0]; + default: + throwLogicError("Invalid outcome in AuxMixBinomial"); + } + + return one; //Wall + } - AuxMixBinomial::AuxMixBinomial(double const &eta, double const &nb, - double const &y) - : _eta(eta), _nb(nb), _y(y) + + AuxMixBinomial::AuxMixBinomial(StochasticNode const *snode, unsigned int chain) + : Outcome(snode, chain), _nb(getDenominator(snode, chain)), + _y(snode->value(chain)[0]), _y_star(0), _mix(0) { - _mix = new LGMix(nb); + _mix = new LGMix(_nb); } AuxMixBinomial::~AuxMixBinomial() @@ -27,7 +51,7 @@ return; // sample the aggregated utility - double lambda = exp(_eta); + double lambda = exp(_lp); double u = rgamma(_nb, 1.0, rng); double v = 0.0; @@ -37,7 +61,7 @@ _y_star = -log(u / (1.0 + lambda) + v / lambda); // ...then the mixture representation - _mix->update(_y_star - _eta, _nb, rng); + _mix->update(_y_star - _lp, _nb, rng); } double AuxMixBinomial::value() const @@ -59,4 +83,11 @@ return _mix->precision(); } } -} + + bool AuxMixBinomial::canRepresent(StochasticNode const *snode) + { + return (getFamily(snode) == GLM_BINOMIAL || getFamily(snode) == GLM_BERNOULLI) && getLink(snode) == LNK_LOGIT; + } + +}} + diff -Nru jags-3.4.0/src/modules/glm/samplers/AuxMixBinomial.h jags-4.0.0/src/modules/glm/samplers/AuxMixBinomial.h --- jags-3.4.0/src/modules/glm/samplers/AuxMixBinomial.h 2011-11-10 11:25:55.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/AuxMixBinomial.h 2015-02-22 08:33:05.000000000 +0000 @@ -1,40 +1,36 @@ #ifndef AUX_MIX_BINOM_H_ #define AUX_MIX_BINOM_H_ -#include "AuxMix.h" +#include "Outcome.h" +namespace jags { namespace glm { class LGMix; /** - * @short Finite normal mixture approximation for Binomial variables + * @short Finite normal mixture approximation for Binomial + * logistic variables * * Represents a binomial outcome with logit link in terms of an * underlying continuous auxiliary variable. The distribution of * the auxiliary variable is approximated by a finite mixture of * normals. */ - class AuxMixBinomial : public AuxMix + class AuxMixBinomial : public Outcome { - double const &_eta; - double const &_nb; - double const &_y; - double _y_star; // the aggregated utility - LGMix *_mix; // the normal mixture - int _r; // the component indicator + double const &_nb; // sample size of binomial distribution + double const &_y; // value of binomial random variable + double _y_star; // aggregated utility + LGMix *_mix; // normal mixture public: - /** - * Constructor. The constructor uses constant references to - * the three parameters that define the model. The member - * functions update uses the current value of these parameters - * - * @param eta Linear predictor for the probability of success - * (assuming logit link) - * @param nb Sample size of binomial distribution - * @param y Value of binomial random variable - */ - AuxMixBinomial(double const &eta, double const &nb, double const &y); + /** + * @param snode Stochastic node representing the true outcome + * variable of a GLM + * + * @param chain Index number of the chain (starting from zero) + * to use */ + AuxMixBinomial(StochasticNode const *snode, unsigned int chain); ~AuxMixBinomial(); /** * Samples the auxiliary variable from its posterior distribution @@ -51,8 +47,13 @@ * the current normal approximation */ double precision() const; + /** + * AuxMixBinomial represents binary or binomial outcomes with + * a logistic link + */ + static bool canRepresent (StochasticNode const *snode); }; -} +}} #endif /* AUX_MIX_BINOM_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/AuxMix.cc jags-4.0.0/src/modules/glm/samplers/AuxMix.cc --- jags-3.4.0/src/modules/glm/samplers/AuxMix.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/AuxMix.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -#include -#include "AuxMix.h" - -namespace glm { - - AuxMix::~AuxMix() - {} - -} diff -Nru jags-3.4.0/src/modules/glm/samplers/AuxMix.h jags-4.0.0/src/modules/glm/samplers/AuxMix.h --- jags-3.4.0/src/modules/glm/samplers/AuxMix.h 2011-11-10 11:26:54.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/AuxMix.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -#ifndef AUX_MIX_H_ -#define AUX_MIX_H_ - -class RNG; - -namespace glm { - - /** - * @short Finite normal mixture representation - * - * Abstract class for representing the outcome variable in a - * generalized linear model as a finite mixture of normals. It is - * used by AMMethod. - * - * @see AMMethod - */ - class AuxMix { - public: - /** - * Virtual destructor - */ - virtual ~AuxMix(); - /** - * Value of the current normal approximation. - */ - virtual double value() const = 0; - /** - * Precision of the current normal approximation. - */ - virtual double precision() const = 0; - /** - * Samples a new auxiliary variable from its posterior - * distribution and updates the normal approximation.. - */ - virtual void update(RNG *rng) = 0; - }; - -} - -#endif /* AUX_MIX_H_ */ - - diff -Nru jags-3.4.0/src/modules/glm/samplers/AuxMixNormal.cc jags-4.0.0/src/modules/glm/samplers/AuxMixNormal.cc --- jags-3.4.0/src/modules/glm/samplers/AuxMixNormal.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/AuxMixNormal.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -#include -#include "AuxMixNormal.h" - -namespace glm { - - AuxMixNormal::AuxMixNormal(double const &tau, double const &y) - : _tau(tau), _y(y) - { - } - - void AuxMixNormal::update(RNG *rng) - { - //Nothing to do - } - - double AuxMixNormal::value() const - { - return _y; - } - - double AuxMixNormal::precision() const - { - return _tau; - } - -} diff -Nru jags-3.4.0/src/modules/glm/samplers/AuxMixNormal.h jags-4.0.0/src/modules/glm/samplers/AuxMixNormal.h --- jags-3.4.0/src/modules/glm/samplers/AuxMixNormal.h 2011-11-10 11:29:28.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/AuxMixNormal.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ -#ifndef AUX_MIX_NORMAL_H_ -#define AUX_MIX_NORMAL_H_ - -#include "AuxMix.h" - -namespace glm { - - /** - * @short Normal distribution as a trivial auxiliary mixture - * - * In order to allow GLMs with heterogeneous outcomes, we provide - * a trivial AuxMix wrapper for normal random variables. - */ - class AuxMixNormal : public AuxMix - { - double const &_tau; - double const &_y; - public: - /** - * Constructor. - * - * @param tau Precision of normal distribution - * @param y Value of normal random variable - */ - AuxMixNormal(double const &tau, double const &y); - /** - * This does nothing, as there is no approximation to update. - */ - void update(RNG *rng); - /** - * Returns the value of the normal random variable (y in the - * constructor) - */ - double value() const; - /** - * Returns the precision of the normal random variable (tau - * in the constructor) - */ - double precision() const; - }; - -} - -#endif /* AUX_MIX_NORMAL_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/AuxMixPoisson.cc jags-4.0.0/src/modules/glm/samplers/AuxMixPoisson.cc --- jags-3.4.0/src/modules/glm/samplers/AuxMixPoisson.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/AuxMixPoisson.cc 2015-02-22 08:33:05.000000000 +0000 @@ -1,16 +1,21 @@ #include #include "AuxMixPoisson.h" #include "LGMix.h" -#include "JRmath.h" +#include "Classify.h" + #include +#include +#include + #include using std::exp; +namespace jags { namespace glm { - AuxMixPoisson::AuxMixPoisson(double const &eta, double const &y) - : _eta(eta), _y(y), _mix1(0), _mix2(0), _tau1(0), _tau2(0) + AuxMixPoisson::AuxMixPoisson(StochasticNode const *snode, unsigned int chain) + : Outcome(snode, chain), _y(snode->value(chain)[0]), _mix1(0), _mix2(0), _tau1(0), _tau2(0) { _mix1 = new LGMix(1); _mix2 = new LGMix(_y); @@ -24,7 +29,7 @@ void AuxMixPoisson::update(RNG * rng) { - double lambda = exp(_eta); + double lambda = exp(_lp); double xi = rng->exponential() / lambda; //Time of y'th jump @@ -33,12 +38,12 @@ } else { _tau2 = rbeta(_y, 1, rng); - _mix2->update(-log(_tau2) - _eta, _y, rng); + _mix2->update(-log(_tau2) - _lp, _y, rng); } //Inter-arrival time to (y+1)'th jump _tau1 = 1 - _tau2 + xi; - _mix1->update(-log(_tau1) - _eta, 1, rng); + _mix1->update(-log(_tau1) - _lp, 1, rng); } double AuxMixPoisson::precision() const @@ -67,4 +72,10 @@ } } -} + bool AuxMixPoisson::canRepresent(StochasticNode const *snode) + { + return getFamily(snode) == GLM_POISSON && getLink(snode) == LNK_LOG; + } + +}} + diff -Nru jags-3.4.0/src/modules/glm/samplers/AuxMixPoisson.h jags-4.0.0/src/modules/glm/samplers/AuxMixPoisson.h --- jags-3.4.0/src/modules/glm/samplers/AuxMixPoisson.h 2011-11-10 11:36:35.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/AuxMixPoisson.h 2015-02-22 08:33:05.000000000 +0000 @@ -1,8 +1,9 @@ #ifndef AUX_MIX_POISSON_H_ #define AUX_MIX_POISSON_H_ -#include "AuxMix.h" +#include "Outcome.h" +namespace jags { namespace glm { class LGMix; @@ -19,28 +20,26 @@ * Poisson process. If the Poisson count is zero, only one * auxiliary variable is required. Otherwise two are used. */ - class AuxMixPoisson : public AuxMix + class AuxMixPoisson : public Outcome { - double const &_eta; double const &_y; - LGMix *_mix1, *_mix2; /* the normal mixtures */ - double _tau1, _tau2; /* inter-arrival times */ + LGMix *_mix1, *_mix2; // the normal mixtures + double _tau1, _tau2; // inter-arrival times public: - /** - * Constructor. The constructor uses references to the - * parameters of the model and the member function update uses - * the current values of these parameters. + /** + * Constructor * - * @param eta Linear predictor for the mean (assuming log link) - * @param y Value of Poisson random variable - * @param rng Random number generator used to initialize mixture + * @param snode Stochastic node representing a Poisson outcome + * variable of a GLM with log link. + * + * @param chain Index number of the chain (starting from zero). */ - AuxMixPoisson(double const &eta, double const &y); + AuxMixPoisson(StochasticNode const *snode, unsigned int chain); ~AuxMixPoisson(); /** - * Samples the auxiliary variable from its posterior distribution - * given the outcome (y in the constructor) and then calculates - * a new normal approximation + * Samples the auxiliary variables from their posterior + * distribution given the outcome and then calculates a new + * normal approximation */ void update(RNG *rng); /** @@ -54,8 +53,13 @@ * Returns the sum of the precisions of the two auxiliary variables */ double precision() const; + /** + * AuxMixPoisson represents Poisson outcomes with a log link + */ + static bool canRepresent (StochasticNode const *snode); }; -} +}} + #endif /* AUX_MIX_POISSON_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/BinaryFactory.cc jags-4.0.0/src/modules/glm/samplers/BinaryFactory.cc --- jags-3.4.0/src/modules/glm/samplers/BinaryFactory.cc 2011-11-14 08:22:13.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/BinaryFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -3,77 +3,69 @@ #include #include "BinaryFactory.h" -#include "BinaryGLM.h" #include "Linear.h" +#include "NormalLinear.h" +#include "BinaryProbit.h" +#include "BinaryLogit.h" + #include #include #include +#include +#include using std::string; using std::vector; +namespace jags { namespace glm { BinaryFactory::BinaryFactory(string const &name, bool gibbs) : GLMFactory(name), _gibbs(gibbs) {} - bool BinaryFactory::checkOutcome(StochasticNode const *snode, - LinkNode const *lnode) const + bool BinaryFactory::checkOutcome(StochasticNode const *snode) const { - Node const *N = 0; - string linkname; - if (lnode) { - linkname = lnode->linkName(); - } - - GLMFamily family = GLMMethod::getFamily(snode); - - switch(family) { - case GLM_BERNOULLI: - return linkname == "probit" || linkname=="logit"; - case GLM_BINOMIAL: - N = snode->parents()[1]; - if (N->length() != 1) - return false; - if (!N->isObserved()) - return false; - if (N->value(0)[0] != 1) - return false; - return linkname == "probit" || linkname=="logit"; - case GLM_NORMAL: - return lnode == 0; - default: - return false; - } + return (BinaryProbit::canRepresent(snode) || + BinaryLogit::canRepresent(snode) || + NormalLinear::canRepresent(snode)); } - + GLMMethod * BinaryFactory::newMethod(GraphView const *view, - vector const &sub_views, + vector const &subviews, unsigned int chain) const { - /* - If we have a pure gaussian linear model then make a - conjugate linear sampler instead. There is no need, in this - case, for the extra machinery. - */ bool linear = true; - vector const &children = - view->stochasticChildren(); - for (unsigned int i = 0; i < children.size(); ++i) { - if (GLMMethod::getFamily(children[i]) != GLM_NORMAL) { + vector outcomes; + + for (vector::const_iterator p = view->stochasticChildren().begin(); + p != view->stochasticChildren().end(); ++p) + { + Outcome *outcome = 0; + if (NormalLinear::canRepresent(*p)) { + outcome = new NormalLinear(*p, chain); + } + else if (BinaryProbit::canRepresent(*p)) { + outcome = new BinaryProbit(*p, chain); + linear = false; + } + else if (BinaryLogit::canRepresent(*p)) { + outcome = new BinaryLogit(*p, chain); linear = false; - break; } + else { + throwLogicError("Invalid outcome in BinaryFactory"); + } + outcomes.push_back(outcome); } if (linear) { - return new Linear(view, sub_views, chain, _gibbs); + return new Linear(view, subviews, outcomes, chain, _gibbs); } else { - return newBinary(view, sub_views, chain); + return newBinary(view, subviews, outcomes, chain); } } @@ -86,4 +78,5 @@ return !isBounded(snode); } } -} + +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/BinaryFactory.h jags-4.0.0/src/modules/glm/samplers/BinaryFactory.h --- jags-3.4.0/src/modules/glm/samplers/BinaryFactory.h 2011-11-10 11:41:12.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/BinaryFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,10 +3,9 @@ #include "GLMFactory.h" +namespace jags { namespace glm { - class BinaryGLM; - /** * @short Base class for Binary GLM factories */ @@ -21,36 +20,34 @@ * the link function is logit or probit. Linear models with * identity link are also permitted. */ - bool checkOutcome(StochasticNode const *snode, - LinkNode const *lnode) const; + bool checkOutcome(StochasticNode const *snode) const; /** - * Returns a newly allocated object of class BinaryGLM, unless + * Returns a newly allocated object of class GLMMethod, unless * we have a pure linear model with normal outcome variables. - * In this case, an object of class Linear is returned, as - * the overhead of the BinaryGLM class is not required. + * In this case, an object of class Linear is returned. * * This function is called by GLMFactory#makeSampler */ GLMMethod *newMethod(GraphView const *view, - std::vector const &sub_views, + std::vector const &sub_views, unsigned int chain) const; /** * If the factory was constructed with parameter "gibbs" set * to true, then snode must be scalar. Otherwise, snode must * be unbounded. * - * @param snode Candidate node for sampling by BinaryGLM + * @param snode Candidate node for sampling */ bool canSample(StochasticNode const *snode) const; /** - * Returns a newly allocated BinaryGLM object. + * Returns a newly allocated GLMMethod object. */ - virtual BinaryGLM *newBinary(GraphView const *view, - std::vector const - &sub_views, + virtual GLMMethod *newBinary(GraphView const *view, + std::vector const &sub_views, + std::vector const &outcomes, unsigned int chain) const = 0; }; -} +}} #endif /* BINARY_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/BinaryGLM.cc jags-4.0.0/src/modules/glm/samplers/BinaryGLM.cc --- jags-3.4.0/src/modules/glm/samplers/BinaryGLM.cc 2011-11-09 14:19:52.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/BinaryGLM.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,123 +0,0 @@ -#include - -#include "BinaryGLM.h" - -#include -#include -#include -#include -#include -#include - -using std::vector; -using std::string; - -#define CHILD(i) (_view->stochasticChildren()[i]) - -static inline unsigned int nchildren(GraphView const *view) -{ - return view->stochasticChildren().size(); -} - -static BGLMOutcome getOutcome(StochasticNode const *snode) -{ - LinkNode const *lnode = 0; - - switch(glm::GLMMethod::getFamily(snode)) { - case GLM_NORMAL: - return BGLM_NORMAL; - case GLM_BERNOULLI: case GLM_BINOMIAL: - lnode = dynamic_cast(snode->parents()[0]); - if (!lnode) { - throwLogicError("No link in BinaryGLM"); - } - else if (lnode->linkName() == "probit") { - return BGLM_PROBIT; - } - else if (lnode->linkName() == "logit") { - return BGLM_LOGIT; - } - else { - throwLogicError("Invalid link in BinaryGLM"); - } - break; - default: - throwLogicError("Invalid family in BinaryGLM"); - } - return BGLM_NORMAL; //-Wall -} - -namespace glm { - - BinaryGLM::BinaryGLM(GraphView const *view, - vector const &sub_views, - unsigned int chain) - : GLMMethod(view, sub_views, chain, true), - _outcome(nchildren(view)), - _z(nchildren(view), 0), _tau(nchildren(view), 1) - { - for (unsigned int i = 0; i < _outcome.size(); ++i) { - _outcome[i] = getOutcome(CHILD(i)); - } - } - - double BinaryGLM::getValue(unsigned int i) const - { - double z = 0; - - switch(_outcome[i]) { - case BGLM_NORMAL: - z = CHILD(i)->value(_chain)[0]; - break; - case BGLM_PROBIT: case BGLM_LOGIT: - z = _z[i]; - break; - } - - return z; - } - - double BinaryGLM::getPrecision(unsigned int i) const - { - double tau = 0; - switch(_outcome[i]) { - case BGLM_NORMAL: - tau = CHILD(i)->parents()[1]->value(_chain)[0]; - break; - case BGLM_PROBIT: - tau = 1; - break; - case BGLM_LOGIT: - tau = _tau[i]; - break; - } - - return tau; - } - - - void BinaryGLM::initAuxiliary(RNG *rng) - { - for (unsigned int i = 0; i < _z.size(); ++i) { - double y = CHILD(i)->value(_chain)[0]; - switch(_outcome[i]) { - case BGLM_PROBIT: case BGLM_LOGIT: - if (y == 1) { - _z[i] = lnormal(0, rng, getMean(i)); - } - else if (y == 0) { - _z[i] = rnormal(0, rng, getMean(i)); - } - else { - throwLogicError("Invalid child value in BinaryGLM"); - } - break; - case BGLM_NORMAL: - break; //We don't use _z[i] for normal outcomes - } - } - } - -} - - diff -Nru jags-3.4.0/src/modules/glm/samplers/BinaryGLM.h jags-4.0.0/src/modules/glm/samplers/BinaryGLM.h --- jags-3.4.0/src/modules/glm/samplers/BinaryGLM.h 2011-11-10 11:42:45.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/BinaryGLM.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,75 +0,0 @@ -#ifndef BINARY_GLM_H_ -#define BINARY_GLM_H_ - -#include "GLMMethod.h" - -/** - * Enumeration that allows us to classify the GLMs handled by the - * class BinaryGLM. - */ -enum BGLMOutcome {BGLM_NORMAL, BGLM_LOGIT, BGLM_PROBIT}; - -namespace glm { - - /** - * @short Base class for binary GLM sampling methods. - * - * Methods inheriting from BinaryGLM are capable of handling - * heterogeneous GLMs that include both normal outcomes (with - * identity link) and binary outcomes (with probit or logit link). - * - * For binary outcomes, GLMMethod provides auxiliary variables - * representing a latent normal variable (z[i]) and its precision - * (tau[i]). These are used to by the parent GLMMethod class to - * treat the model as a linear model. The auxiliary variables are - * protected and are thus directly available to sub-classes. - */ - class BinaryGLM : public GLMMethod { - protected: - std::vector _outcome; // Classify outcome and link - std::vector _z; // Latent normal variable for binary outcomes - std::vector _tau; // Precision parameter for logit link - public: - /** - * Constructor. The outcome is classified as one of: normal - * outcome with identity link; binary outcome with probit link; - * binary outcome with logit link. A logic error is thrown - * if the outcome does not fit into any of these three categories. - * - * See GLMMethod#GLMMethod for a description of the parameters - */ - BinaryGLM(GraphView const *view, - std::vector const &sub_views, - unsigned int chain); - /** - * Initializes the auxiliary variables. For binary outcomes, the - * auxiliary variable z[i] is initialized based on the - * observed value: z[i] is sampled from a truncated normal - * distribution with mean given by GLMMethod#getMean and - * variance 1. The sampling truncated to I(z<0) if the outcome - * is 0 and I(z>=0) if the outcome is 1. - * - * Sub-classes of BinaryGLM must call this function on the - * first call to the update function. - */ - void initAuxiliary(RNG *rng); - /** - * Returns the outcome of observation i. For normal outcomes, - * this is the observed value. For binary outcomes, it is the - * value of an auxiliary variable with a normal distribution - * (z[i]). - */ - double getValue(unsigned int i) const; - /** - * Returns the precision of outcome i. For gaussian outcomes, - * this is the variance of the observed outcome. For binary - * outcomes, it is an auxiliary variable representing the - * precision of the latent normal variable (tau[i]) returned - * by getValue. - */ - double getPrecision(unsigned int i) const; - }; - -} - -#endif /* BINARY_GLM_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/BinaryLogit.cc jags-4.0.0/src/modules/glm/samplers/BinaryLogit.cc --- jags-3.4.0/src/modules/glm/samplers/BinaryLogit.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/BinaryLogit.cc 2015-09-10 05:42:23.000000000 +0000 @@ -0,0 +1,142 @@ +#include "BinaryLogit.h" +#include "Classify.h" + +#include "KS.h" + +#include +#include +#include + +#include + +using std::exp; +using std::log; +using std::sqrt; + +#define REG_PENALTY 0.001 + +//Left truncated logistic distribution +static double llogit(double left, jags::RNG *rng, double mu) +{ + double qleft = 1/(1 + exp(mu-left)); + double x = qleft + (1 - qleft) * rng->uniform(); + return mu + log(x) - log(1 - x); +} + +//Right truncated logistic distribution +static double rlogit(double right, jags::RNG *rng, double mu) +{ + double qright = 1/(1 + exp(mu-right)); + double x = qright * rng->uniform(); + return mu + log(x) - log(1 - x); +} + + +double sample_lp(double y, double delta, double mean, double var, jags::RNG *rng) +{ + /* + * Helper function for marginal sampling. Samples the linear + * predictor "mu" given prior mean, variance and posterior + * constraint that "z = mu + delta < 0" or "z = mu + delta >= 0" + * depending on the value of y. + */ + if (y) { + return lnormal(-delta, rng, mean, sqrt(var)); + } + else { + return rnormal(-delta, rng, mean, sqrt(var)); + } +} + +double sample_delta(double y, double mu, jags::RNG *rng) +{ + /* + * Helper function for marginal sampling. Samples the residual + * "delta = z - mu" of the auxiliary variable, which has a prior + * logistic distribution, given posterior constraint that "z < 0" + * or "z >= 0", depending on the value of y + */ + if (y) { + return llogit(-mu, rng, 0); + } + else { + return rlogit(-mu, rng, 0); + } +} + +namespace jags { +namespace glm { + + BinaryLogit::BinaryLogit(StochasticNode const *snode, unsigned int chain) + : Outcome(snode, chain), _y(snode->value(chain)[0]), _z(0), _delta(0), _tau(1) + { + //fixme: sanity checks on snode + } + + double BinaryLogit::value() const + { + return _z; + } + + double BinaryLogit::precision() const + { + return _tau; + } + + void BinaryLogit::update(RNG *rng) + { + /* Albert Chib update */ + if (_y) { + _z = llogit(0, rng, _lp); + } + else { + _z = rlogit(0, rng, _lp); + } + _tau = REG_PENALTY + 1/sample_lambda(_z - _lp, rng); + + } + + void BinaryLogit::update(double mean, double var, RNG *rng) + { + /* Holmes Held update */ + + /* We generate a reversible transition for z using the + partitioning "z = lp + _delta". Instead of using the + current value of the linear predictor (_lp inherited from + Outcome) we sample a private copy. */ + + double lp = sample_lp(_y, _delta, mean, var, rng); + _delta = sample_delta(_y, lp, rng); + lp = sample_lp(_y, _delta, mean, var, rng); + + _z = lp + _delta; + _tau = REG_PENALTY + 1/sample_lambda(_z - lp, rng); + } + + bool BinaryLogit::canRepresent(StochasticNode const *snode) + { + //FIXME: Big overlap with BinaryProbit::canRepresent + + Node const *N = 0; + + switch(getFamily(snode)) { + case GLM_BERNOULLI: + break; + case GLM_BINOMIAL: + // We can also model binomial distribution if the denominator is fixed to be 1. + N = snode->parents()[1]; + if (N->length() != 1) + return false; + if (!N->isFixed()) + return false; + if (N->value(0)[0] != 1) + return false; + break; + default: + return false; + } + + return getLink(snode) == LNK_LOGIT; + } + +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/BinaryLogit.h jags-4.0.0/src/modules/glm/samplers/BinaryLogit.h --- jags-3.4.0/src/modules/glm/samplers/BinaryLogit.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/BinaryLogit.h 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,32 @@ +#ifndef BINARY_LOGIT_H_ +#define BINARY_LOGIT_H_ + +#include + +#include "Outcome.h" +#include + +namespace jags { + +class StochasticNode; + +namespace glm { + + class BinaryLogit : public Outcome + { + double const &_y; + double _z; + double _delta; + double _tau; + public: + BinaryLogit(StochasticNode const *snode, unsigned int chain); + double value() const; + double precision() const; + void update(RNG *rng); + void update(double mean, double var, RNG *rng); + static bool canRepresent(StochasticNode const *snode); + }; + +}} + +#endif /* BINARY_LOGIT_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/BinaryProbit.cc jags-4.0.0/src/modules/glm/samplers/BinaryProbit.cc --- jags-3.4.0/src/modules/glm/samplers/BinaryProbit.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/BinaryProbit.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,74 @@ +#include "BinaryProbit.h" +#include "Classify.h" + +#include +#include + +#include + +using std::sqrt; + +namespace jags { +namespace glm { + + BinaryProbit::BinaryProbit(StochasticNode const *snode, unsigned int chain) + : Outcome(snode, chain), _y(snode->value(chain)[0]), _z(0) + { + //Fixme: sanity checks on snode + } + + double BinaryProbit::value() const + { + return _z; + } + + double BinaryProbit::precision() const + { + return 1; + } + + void BinaryProbit::update(RNG *rng) + { + if (_y) { + _z = lnormal(0, rng, _lp, 1); + } + else { + _z = rnormal(0, rng, _lp, 1); + } + } + + void BinaryProbit::update(double mean, double var, RNG *rng) + { + if (_y) { + _z = lnormal(0, rng, mean, sqrt(var + 1)); + } + else { + _z = rnormal(0, rng, mean, sqrt(var + 1)); + } + } + + bool BinaryProbit::canRepresent(StochasticNode const *snode) + { + Node const *N = 0; + + switch(getFamily(snode)) { + case GLM_BERNOULLI: + break; + case GLM_BINOMIAL: + // We can also model binomial distribution if the denominator is fixed to be 1. + N = snode->parents()[1]; + if (N->length() != 1) + return false; + if (!N->isFixed()) + return false; + if (N->value(0)[0] != 1) + return false; + break; + default: + return false; + } + + return getLink(snode) == LNK_PROBIT; + } + +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/BinaryProbit.h jags-4.0.0/src/modules/glm/samplers/BinaryProbit.h --- jags-3.4.0/src/modules/glm/samplers/BinaryProbit.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/BinaryProbit.h 2015-02-22 14:58:45.000000000 +0000 @@ -0,0 +1,30 @@ +#ifndef BINARY_PROBIT_H_ +#define BINARY_PROBIT_H_ + +#include + +#include "Outcome.h" +#include + +namespace jags { + +class StochasticNode; + +namespace glm { + + class BinaryProbit : public Outcome + { + double const &_y; + double _z; + public: + BinaryProbit(StochasticNode const *snode, unsigned int chain); + double value() const; + double precision() const; + void update(RNG *rng); + void update(double mean, double var, RNG *rng); + static bool canRepresent(StochasticNode const *snode); + }; + +}} + +#endif /* BINARY_PROBIT_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/Classify.cc jags-4.0.0/src/modules/glm/samplers/Classify.cc --- jags-3.4.0/src/modules/glm/samplers/Classify.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/Classify.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,55 @@ +#include "Classify.h" + +#include +#include + +#include + +using std::vector; +using std::string; + +namespace jags { +namespace glm { + + GLMFamily getFamily(StochasticNode const *snode) + { + string const &name = snode->distribution()->name(); + if (name == "dbern") { + return GLM_BERNOULLI; + } + else if (name == "dbin") { + return GLM_BINOMIAL; + } + else if (name == "dpois") { + return GLM_POISSON; + } + else if (name == "dnorm") { + return GLM_NORMAL; + } + else { + return GLM_UNKNOWN; + } + } + + GLMLink getLink(StochasticNode const *snode) + { + vector const ¶m = snode->parents(); + LinkNode const *lnode = dynamic_cast(param[0]); + + if (lnode) { + string const &linkname = lnode->linkName(); + if (linkname == "log") + return LNK_LOG; + else if (linkname == "logit") + return LNK_LOGIT; + else if (linkname == "probit") + return LNK_PROBIT; + else + return LNK_UNKNOWN; + } + else { + return LNK_LINEAR; + } + } + +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/Classify.h jags-4.0.0/src/modules/glm/samplers/Classify.h --- jags-3.4.0/src/modules/glm/samplers/Classify.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/Classify.h 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,37 @@ +#ifndef CLASSIFY_H_ +#define CLASSIFY_H_ + +namespace jags { + +class StochasticNode; + +namespace glm { + + /** + * Enumerates distribution families for generalized linear models + */ + enum GLMFamily {GLM_NORMAL, GLM_BERNOULLI, GLM_BINOMIAL, GLM_POISSON, + GLM_UNKNOWN}; + + /** + * Enumerates link functions for generalized linear models + */ + enum GLMLink {LNK_LINEAR, LNK_LOG, LNK_LOGIT, LNK_PROBIT, LNK_UNKNOWN}; + + /** + * Utility function that classifies the distribution of a + * stochastic node into one of the classes defined by the + * enumeration GLMFamily. + */ + GLMFamily getFamily(StochasticNode const *snode); + + /** + * Utility function that classifies the link function of a + * stochastic node into one of the classes defined by the + * enumeration GLMLink. + */ + GLMLink getLink(StochasticNode const *snode); + +}} + +#endif /* CLASSIFY_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/ConjugateFFactory.cc jags-4.0.0/src/modules/glm/samplers/ConjugateFFactory.cc --- jags-3.4.0/src/modules/glm/samplers/ConjugateFFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/ConjugateFFactory.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,203 +0,0 @@ -#include - -#include "ConjugateFFactory.h" -#include "ConjugateFSampler.h" -#include "ConjugateFMethod.h" - -#include -#include -#include -#include -#include -#include - -#include -#include - -using std::vector; -using std::string; -using std::set; -using std::copy; -using std::stable_sort; - -static void getStochasticChildren(Node *node, set &sset) -{ - //Find all stochastic descendants of the given node and add them to the - //given set - - set const *schildren = node->stochasticChildren(); - sset.insert(schildren->begin(), schildren->end()); - - set const *dchildren = node->deterministicChildren(); - set::const_iterator p; - for (p = dchildren->begin(); p != dchildren->end(); ++p) { - getStochasticChildren(*p, sset); - } -} - -static bool lt_snodeptr (StochasticNode const **arg1, - StochasticNode const **arg2) -{ - return *arg1 < *arg2; -} - -static void convertStochasticChildren(StochasticNode *snode, - vector const &in, - vector &out) -{ - /* - We need this function to convert the stochastic children from - const pointers to non-const pointers in the same order. - - FIXME: This might prompt a review of the GraphView class - */ - set sset; - getStochasticChildren(snode, sset); - - /* - It is much more efficient to work with a sorted vector. But we - need to keep track of the original ordering so we can assign - the elements of the out vector in the same order as the in - vector. - */ - unsigned int N = in.size(); - StochasticNode const **inarray = new StochasticNode const *[N]; - copy(in.begin(), in.end(), inarray); - StochasticNode const ***inptrs = new StochasticNode const **[N]; - for (unsigned int i = 0; i < N; ++i) { - inptrs[i] = inarray + i; - } - stable_sort(inptrs, inptrs + N, lt_snodeptr); - - out.resize(N); - bool ok = true; - set::const_iterator p = sset.begin(); - for (unsigned int i = 0; i < N; ++i) { - Node const *cnode = *inptrs[i]; - while (cnode > *p) { - ++p; - } - if (cnode == *p) { - out[inptrs[i] - inarray] = *p; - } - else { - ok = false; - break; - } - } - - delete [] inarray; - delete [] inptrs; - - if (!ok) { - throwLogicError("Conversion mismatch in Conjugate F Factory"); - } -} - -namespace glm { - - ConjugateFFactory::~ConjugateFFactory() - { - //Nothing to do here; only for vtable. BUT WHY??? - } - - bool - ConjugateFFactory::canSample(StochasticNode *snode, Graph const &graph) const - { - /* - The target node has an F(m,1) prior, where m is fixed. It cannot - be bounded - */ - if (snode->distribution()->name() != "df") - return false; - if (!snode->parents()[0]->isObserved()) - return false; //FIXME. Is this necessary? - if (!snode->parents()[1]->isObserved()) - return false; - if (*snode->parents()[1]->value(0) != 1) - return false; - if (isBounded(snode)) - return false; //FIXME. We could include this case - - /* - The stochastic children of the sampled node must be unobserved, - normally distributed random variables, such that the precision - is a scale function of the sampled node and the mean is independent - of the sampled node - */ - - GraphView gv1(vector(1,snode), graph); - - // Check stochastic children - vector const &schildren1 = gv1.stochasticChildren(); - for (unsigned int i = 0; i < schildren1.size(); ++i) { - if (schildren1[i]->distribution()->name() != "dnorm") { - return false; - } - if (gv1.isDependent(schildren1[i]->parents()[0])) { - return false; //mean parameter depends on snode - } - if (isBounded(schildren1[i])) { - return false; - } - if (schildren1[i]->isObserved()) { - return false; - } - } - - // Check that deterministic descendants are scale transformations - if (!checkScale(&gv1, false)) { - return false; - } - - // Need to get non-const pointers to stochastic children - vector snodes; - convertStochasticChildren(snode, schildren1, snodes); - - /* The stochastic children themselves must form a linear model */ - - GraphView gv2(snodes, graph); - if (!checkLinear(&gv2, false, false)) - return false; - - vector const &schildren2 = gv2.stochasticChildren(); - for (unsigned int i = 0; i < schildren2.size(); ++i) { - if (schildren2[i]->distribution()->name() != "dnorm") { - return false; - } - if (isBounded(schildren2[i])) { - return false; - } - if (gv2.isDependent(schildren2[i]->parents()[1])) { - return false; //Precision parameter is dependent - } - } - - return true; - } - - Sampler *ConjugateFFactory::makeSampler(StochasticNode *snode1, - Graph const &graph) const - { - unsigned int nchain = snode1->nchain(); - vector methods(nchain, 0); - - GraphView *gv1 = new GraphView(snode1, graph); - - vector snodes2; - convertStochasticChildren(snode1, gv1->stochasticChildren(), snodes2); - GraphView *gv2 = new GraphView(snodes2, graph); - - for (unsigned int ch = 0; ch < nchain; ++ch) { - methods[ch] = new ConjugateFMethod(gv1, gv2, ch); - } - - return new ConjugateFSampler(gv1, gv2, methods); - } - - string ConjugateFFactory::name() const - { - return "glm::ConjugateF"; - } - -} diff -Nru jags-3.4.0/src/modules/glm/samplers/ConjugateFFactory.h jags-4.0.0/src/modules/glm/samplers/ConjugateFFactory.h --- jags-3.4.0/src/modules/glm/samplers/ConjugateFFactory.h 2011-11-10 12:43:54.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/ConjugateFFactory.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ -#ifndef CONJUGATE_F_FACTORY_H_ -#define CONJUGATE_F_FACTORY_H_ - -#include - -namespace glm { - - /** - * @short Factory for Conjugate F Sampler - * - * @see ConjugateFSampler - */ - class ConjugateFFactory : public SingletonFactory - { - public: - ~ConjugateFFactory(); - /** - * If a stochastic node is the precision hyper-parameter of one or - * more parameters in a linear model, with an F(m, 1) distribution - * for fixed m, then it may be sampled by a ConjugateFSampler. - * Scale transformations are also permitted. - * - * ConjugateFSampler works by marginalizing over the coefficients - * of the linear model. It requires that these coefficients have - * unbounded normal distributions. - */ - bool canSample(StochasticNode *snode, Graph const &graph) const; - /** - * Creates a ConjugateFSampler for a stochastic node. - */ - Sampler *makeSampler(StochasticNode *snode, Graph const &graph) const; - /** - * returns "glm::ConjugateF" - */ - std::string name() const; - }; - -} - -#endif /* CONJUGATE_F_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/ConjugateFMethod.cc jags-4.0.0/src/modules/glm/samplers/ConjugateFMethod.cc --- jags-3.4.0/src/modules/glm/samplers/ConjugateFMethod.cc 2011-11-10 12:57:50.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/ConjugateFMethod.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,219 +0,0 @@ -#include - -#include "ConjugateFMethod.h" - -#include -#include -#include -#include -#include - -#include -#include -#include - -#include - -using std::vector; -using std::set; -using std::sqrt; -using std::string; -using std::fabs; - -/* - We need to prevent the scale parameter from becoming degenerate. - These two constants are used by the update member function to avoid - this - - MIN_SCALE Minimum value of abs(_scale), used to bound it away from zero. - MAX_RNORM Maximum number of attempts to get random value of _scale in - range. -*/ - -#define MIN_SCALE 1.0E-3 -#define MAX_RNORM 20 - -static double getScale(StochasticNode const *snode, unsigned int chain) -{ - //Get precision parameter of normal distribution - return *snode->parents()[1]->value(chain); -} - -static double getMean(StochasticNode const *snode, unsigned int chain) -{ - //Get the mean of a normal distribution - return *snode->parents()[0]->value(chain); -} - -static double getValue(StochasticNode const *snode, unsigned int chain) -{ - //Get the current value of a scalar node - return *snode->value(chain); -} - -static void calCoef(double *coef, GraphView const *gv, unsigned int chain) -{ - //Calculate the coefficients when the stochastic children in the - //GraphView are all normal random variables such that the precision - //is a scale function of the sample node - - const double xold = *gv->nodes()[0]->value(chain); - vector const &schildren = gv->stochasticChildren(); - unsigned long nchildren = schildren.size(); - - for (unsigned int i = 0; i < nchildren; ++i) { - coef[i] = -getScale(schildren[i], chain); - } - double val = xold + 1; - gv->setValue(&val, 1, chain); - for (unsigned int i = 0; i < nchildren; ++i) { - coef[i] += getScale(schildren[i], chain); - } - gv->setValue(&xold, 1, chain); -} - -namespace glm { - - ConjugateFMethod::ConjugateFMethod(GraphView *gv1, GraphView *gv2, - unsigned int chain) - : _gv1(gv1), _gv2(gv2), _chain(chain), - _scale(1), _tau(gv1->nodes()[0]->value(chain)[0]), - _coef(0) - { - if(!_gv1->deterministicChildren().empty() && checkScale(_gv1, true)) - { - //One-off calculation of fixed scale transformation - _coef = new double[_gv1->stochasticChildren().size()]; - calCoef(_coef, _gv1, chain); - } - } - - ConjugateFMethod::~ConjugateFMethod() - { - delete [] _coef; - } - - - //#include //debuggin - void ConjugateFMethod::update(RNG *rng) - { - /* There are three levels - - X - variance parameter with F(m,1) prior - - X is represented internally using a redundant parameterization - X = tau/scale^2 - where tau has a Chi-square distribution on m degrees of freedom - and scale has a standard normal distribution - - Y - Stochastic children of X, which are normally distributed - random effects with precision that is a scale function of X - - Z - Stochastic Children of Y, which are normally distributed - random variables forming a linear model in X - */ - - /* Reparametrize from Y to scaled Y*/ - - vector const &Ynodes = _gv1->stochasticChildren(); - unsigned int J = Ynodes.size(); - vector scaledY(J); - for (unsigned int j = 0; j < J; ++j) { - scaledY[j] -= getValue(Ynodes[j], _chain) - getMean(Ynodes[j], _chain); - scaledY[j] /= _scale; - } - - /* - Update _tau, which has a conjugate gamma distribution, conditional - on scaledY. (Note that _tau is independent of _scale). - */ - - //Prior - vector const &Xparam = _gv1->nodes()[0]->parents(); - double tau_shape = *Xparam[0]->value(_chain)/2; - double tau_rate = 0.5; - - //Likelihood - double *coef = 0; - bool empty = _gv1->deterministicChildren().empty(); - if (!empty && _coef == 0) { - coef = new double[J]; - calCoef(coef, _gv1, _chain); - } - else { - coef = _coef; - } - - for (unsigned int j = 0; j < J; ++j) { - double coef_j = empty ? 1 : coef[j]; - if (coef_j > 0) { - tau_shape += 0.5; - tau_rate += coef_j * scaledY[j] * scaledY[j] / 2; - } - } - if (coef != _coef) { - delete [] coef; - coef = 0; - } - - // Sample from the posterior - _tau = rgamma(tau_shape, 1/tau_rate, rng); - - /* - Update _scale, which has a conjugate normal distribution given - Y and scaledY (Note that it is independent of _tau) - */ - vector Yold(J); //Current value of Y - vector Ymean(J); //Prior mean of Y - for (unsigned int j = 0; j < J; ++j) { - Yold[j] = getValue(Ynodes[j], _chain); - Ymean[j] = getMean(Ynodes[j], _chain); - } - - vector const &Znodes = _gv2->stochasticChildren(); - unsigned int I = Znodes.size(); - - /* - Zprecision[i] is the precision of Z[i] - Zresidual[i] is the difference between Z[i] and its prior mean - when scaledY==0 - Zlp[i] is the contribution of scaledY to the linear predictor - (excluding intercept terms) - */ - vector Zlp(I), Zresidual(I), Zprecision(I); - for (unsigned int i = 0; i < I; ++i) { - Zresidual[i] = *Znodes[i]->value(_chain); - Zlp[i] = getMean(Znodes[i], _chain); - Zprecision[i] = getScale(Znodes[i], _chain); - } - _gv2->setValue(Ymean, _chain); - for (unsigned int i = 0; i < I; ++i) { - Zresidual[i] -= getMean(Znodes[i], _chain); - Zlp[i] -= getMean(Znodes[i], _chain); - Zlp[i] /= _scale; - } - _gv2->setValue(Yold, _chain); - - double mean_scale = 0, precision_scale=1; - for (unsigned int i = 0; i < I; ++i) { - precision_scale += Zlp[i] * Zlp[i] * Zprecision[i]; - mean_scale += Zresidual[i] * Zprecision[i] * Zlp[i]; - } - mean_scale /= precision_scale; - - for(unsigned int r = 0; r <= MAX_RNORM; r++) { - if (r == MAX_RNORM) { - throwRuntimeError("Degenerate scale in Conjugate F Sampler"); - } - _scale = rnorm(mean_scale, 1/sqrt(precision_scale), rng); - if (fabs(_scale) > MIN_SCALE) { - break; - } - } - - double xnew = _tau/(_scale * _scale); - //std::cout << _tau << " " << _scale << " " << xnew << std::endl; - _gv1->setValue(&xnew, 1, _chain); - } - -} diff -Nru jags-3.4.0/src/modules/glm/samplers/ConjugateFMethod.h jags-4.0.0/src/modules/glm/samplers/ConjugateFMethod.h --- jags-3.4.0/src/modules/glm/samplers/ConjugateFMethod.h 2011-11-10 12:59:31.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/ConjugateFMethod.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -#ifndef CONJUGATE_F_METHOD_H_ -#define CONJUGATE_F_METHOD_H_ - -#include -#include - -namespace glm { - - /** - * @short Sampling method for precision parameters of random effects. - * - * When an F distribution is used as a prior for the precision of - * normally distributed random effects in a linear model, it has a - * conditionally conjugate distribution using a redundant - * parametrization. - * - * This is described by Gelman A (2006) Prior distributions for - * variance parameters in hierarchical models. Bayesian Analysis - * 1:515–533. Gelman describes the half-t distribution of the standard - * deviation. This corresponds to an F(m,1) prior on the precision - * parameter. - * - * This is currently an experimental sampling method. - */ - class ConjugateFMethod { - GraphView *_gv1, *_gv2; - unsigned int _chain; - double _scale, _tau; - double *_coef; - public: - ConjugateFMethod(GraphView *gv1, GraphView *gv2, unsigned int chain); - ~ConjugateFMethod(); - void update(RNG *rng); - }; - -} - -#endif /* CONJUGATE_F_METHOD_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/ConjugateFSampler.cc jags-4.0.0/src/modules/glm/samplers/ConjugateFSampler.cc --- jags-3.4.0/src/modules/glm/samplers/ConjugateFSampler.cc 2011-11-10 12:58:51.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/ConjugateFSampler.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -#include -#include "ConjugateFSampler.h" -#include "ConjugateFMethod.h" - -using std::string; -using std::vector; - -namespace glm { - - ConjugateFSampler::ConjugateFSampler(GraphView *gv1, GraphView *gv2, - vector const &methods) - : Sampler(gv1), _gv2(gv2), _methods(methods) - {} - - ConjugateFSampler::~ConjugateFSampler() - { - delete _gv2; - } - - bool ConjugateFSampler::isAdaptive() const - { - return false; - } - - void ConjugateFSampler::adaptOff() - { - } - - bool ConjugateFSampler::checkAdaptation() const - { - return true; - } - string ConjugateFSampler::name() const - { - return "conjugateF"; - } - - void ConjugateFSampler::update(vector const &rngs) - { - for (unsigned int i = 0; i < _methods.size(); ++i) { - _methods[i]->update(rngs[i]); - } - } - -} diff -Nru jags-3.4.0/src/modules/glm/samplers/ConjugateFSampler.h jags-4.0.0/src/modules/glm/samplers/ConjugateFSampler.h --- jags-3.4.0/src/modules/glm/samplers/ConjugateFSampler.h 2011-11-10 12:56:19.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/ConjugateFSampler.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -#ifndef CONJUGATE_F_SAMPLER_H_ -#define CONJUGATE_F_SAMPLER_H_ - -#include - -namespace glm { - - class ConjugateFMethod; - - /** - * @short Sampler for precision parameter of random effects - * - * The Conjugate F method requires two GraphView objects, instead of - * the usual single GraphView, as it works on hierarchical models. - * - * @see ConjugateFMethod - */ - class ConjugateFSampler : public Sampler - { - GraphView *_gv2; - std::vector _methods; - public: - ConjugateFSampler(GraphView *gv1, GraphView *gv2, - std::vector const &methods); - ~ConjugateFSampler(); - void update(std::vector const &rngs); - /** - * Returns false. This is not an adaptive sampler - */ - bool isAdaptive() const; - /** - * Does nothing. This is not an adaptive sampler - */ - void adaptOff(); - /** - * Returns true. This is not an adaptive sampler. - */ - bool checkAdaptation() const; - /** - * Returns "conjugateF" - */ - std::string name() const; - }; - -} - -#endif /* CONJUGATE_F_SAMPLER_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/GLMFactory.cc jags-4.0.0/src/modules/glm/samplers/GLMFactory.cc --- jags-3.4.0/src/modules/glm/samplers/GLMFactory.cc 2012-07-23 13:26:01.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/GLMFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -11,6 +11,7 @@ #include #include #include +#include #include #include @@ -21,23 +22,14 @@ using std::map; using std::stable_sort; using std::string; +using std::list; + +namespace jags { /* Aggregates candidate Nodes into a joint linear model. - - Although each candidate node has a conjugate normal distribution, - together they may not form a valid linear model. We therefore test - the validity of the joint linear model before aggregating. - - returns 2 if the candidate can be aggregated with the sample nodes - returns 1 if the candidate cannot be aggregated because there is - overlap but the joint model is non-linear - returns 0 if there is no overlap - - If return value is 2, the arguments sample_nodes and stochastic_children - are augmented. */ -static bool aggregateLinear(GraphView const *candidate, +static bool aggregateLinear(SingletonGraphView const *candidate, set &stochastic_children, Graph const &graph) { @@ -45,7 +37,7 @@ // Check that there is some overlap in stochastic children between // candidate node and current set. - vector const &candidate_children = + vector const &candidate_children = candidate->stochasticChildren(); bool overlap = false; @@ -79,24 +71,23 @@ : _name(name) {} - bool GLMFactory::checkDescendants(GraphView const *view) const + bool GLMFactory::checkDescendants(SingletonGraphView const *view) const { // Check stochastic children - vector const &stoch_nodes = + vector const &stoch_nodes = view->stochasticChildren(); for (unsigned int i = 0; i < stoch_nodes.size(); ++i) { if (isBounded(stoch_nodes[i])) { return false; //Truncated outcome variable } - vector const ¶m = stoch_nodes[i]->parents(); - LinkNode const *lnode = dynamic_cast(param[0]); - if (!checkOutcome(stoch_nodes[i], lnode)) { + if (!checkOutcome(stoch_nodes[i])) { return false; //Invalid outcome or link } - if (fixedOutcome() && !stoch_nodes[i]->isObserved()) { + if (fixedOutcome() && !isObserved(stoch_nodes[i])) { return false; //Unobserved outcome not allowed by sampler } //Check that other parameters do not depend on snode + vector const ¶m = stoch_nodes[i]->parents(); for (unsigned int j = 1; j < param.size(); ++j) { if (view->isDependent(param[j])) { return false; @@ -112,7 +103,7 @@ } - GraphView * + SingletonGraphView * GLMFactory::makeView(StochasticNode *snode, Graph const &graph) const { /* @@ -127,7 +118,7 @@ if (!canSample(snode)) return 0; - GraphView *view = new GraphView(snode, graph); + SingletonGraphView *view = new SingletonGraphView(snode, graph); if (!checkDescendants(view)) { delete view; return 0; @@ -141,18 +132,18 @@ {} Sampler * - GLMFactory::makeSampler(set const &nodes, + GLMFactory::makeSampler(list const &free_nodes, Graph const &graph) const { /* Find candidate nodes that could be in a linear model. Keep track of the number of stochastic children */ - vector candidates; - for (set::const_iterator p = nodes.begin(); - p != nodes.end(); ++p) + vector candidates; + for (list::const_iterator p = free_nodes.begin(); + p != free_nodes.end(); ++p) { - GraphView *up = makeView(*p, graph); + SingletonGraphView *up = makeView(*p, graph); if (up) { candidates.push_back(up); } @@ -202,7 +193,7 @@ set all_children; for (unsigned int j = 0; j < candidates.size(); ++j) { if (keep[j]) { - vector const &children_j = + vector const &children_j = candidates[j]->stochasticChildren(); all_children.insert(children_j.begin(), children_j.end()); } @@ -236,7 +227,7 @@ } } - vector sub_views; + vector sub_views; for (unsigned int i = 0; i < Nc; ++i) { if (keep[i]) { sub_views.push_back(candidates[i]); @@ -249,16 +240,17 @@ if (!sub_views.empty()) { unsigned int Nch = nchain(view); - vector methods(Nch, 0); + vector methods(Nch, 0); - vector const_sub_views(sub_views.size()); + vector const_sub_views(sub_views.size()); + //FIXME: std::copy for (unsigned int i = 0; i < sub_views.size(); ++i) { const_sub_views[i] = sub_views[i]; } for (unsigned int ch = 0; ch < Nch; ++ch) { methods[ch] = newMethod(view, const_sub_views, ch); } - return new GLMSampler(view, sub_views, methods); + return new GLMSampler(view, sub_views, methods, _name); } else { return 0; @@ -271,7 +263,7 @@ } vector - GLMFactory::makeSamplers(set const &nodes, + GLMFactory::makeSamplers(list const &nodes, Graph const &graph) const { Sampler *s = makeSampler(nodes, graph); @@ -290,6 +282,6 @@ { return false; } - -} + +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/GLMFactory.h jags-4.0.0/src/modules/glm/samplers/GLMFactory.h --- jags-3.4.0/src/modules/glm/samplers/GLMFactory.h 2011-11-14 08:22:13.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/GLMFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -4,7 +4,10 @@ #include "GLMMethod.h" #include -class LinkNode; +namespace jags { + + class LinkNode; + class SingletonGraphView; namespace glm { @@ -20,8 +23,9 @@ class GLMFactory : public SamplerFactory { std::string _name; - GraphView * makeView(StochasticNode *snode, Graph const &graph) const; - bool checkDescendants(GraphView const *view) const; + SingletonGraphView * makeView(StochasticNode *snode, + Graph const &graph) const; + bool checkDescendants(SingletonGraphView const *view) const; public: GLMFactory(std::string const &name); virtual ~GLMFactory(); @@ -29,44 +33,39 @@ * Creates a newly-allocated Sampler for the set of candidate nodes, * or a NULL pointer. Sub-classes of GLMFactory only have to * implement the abstract member function newMethod. - * the */ - Sampler * makeSampler(std::set const &nodes, + Sampler * makeSampler(std::list const &free_nodes, Graph const &graph) const; /** * Wraps GLMFactory#makeSampler and returns a single * newly-allocated sampler in a vector. */ std::vector - makeSamplers(std::set const &nodes, + makeSamplers(std::list const &free_nodes, Graph const &graph) const; /** * Checks that an outcome variable in a GLM has the correct * family and link function. * * @param snode Stochastic node representing an outcome variable - * - * @param lnode LinkNode representing a link function. The identity - * link is represented by a NULL pointer. */ - virtual bool checkOutcome(StochasticNode const *snode, - LinkNode const *lnode) const = 0; + virtual bool checkOutcome(StochasticNode const *snode) const = 0; /** * Function for returning a newly allocated GLMMethod. This * is called by GLMFactory#makeSampler * * @param view Pointer to a GraphView object for all sampled nodes. * - * @param sub_views Vector of pointers to GraphView objects with - * length equal to the number of sampled nodes. Each sub-view - * corresponds to a single sampled node. + * @param sub_views Vector of pointers to SingletonGraphView + * objects with length equal to the number of sampled + * nodes. Each sub-view corresponds to a single sampled node. * * @param chain Number of the chain (starting from 0) to which * the sampling method will be applied. */ virtual GLMMethod * newMethod(GraphView const *view, - std::vector const &sub_views, + std::vector const &sub_views, unsigned int chain) const = 0; /** * Virtual function for checking that that a candidate @@ -114,6 +113,6 @@ virtual bool fixedDesign() const; }; -} +}} #endif /* GLM_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/GLMMethod.cc jags-4.0.0/src/modules/glm/samplers/GLMMethod.cc --- jags-3.4.0/src/modules/glm/samplers/GLMMethod.cc 2012-09-18 07:26:28.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/GLMMethod.cc 2015-07-15 19:17:08.000000000 +0000 @@ -7,8 +7,9 @@ #include #include "GLMMethod.h" +#include "Outcome.h" -#include +#include #include #include #include @@ -26,8 +27,10 @@ extern cholmod_common *glm_wk; -static void getIndices(set const &schildren, - vector const &rows, +namespace jags { + +static void getIndices(set const &schildren, + vector const &rows, vector &indices) { indices.clear(); @@ -43,31 +46,12 @@ } } -static Node const *getLinearPredictor(StochasticNode const *snode) -{ - Node const *lp = 0; - - switch(glm::GLMMethod::getFamily(snode)) { - case GLM_NORMAL: case GLM_BERNOULLI: case GLM_BINOMIAL: case GLM_POISSON: - lp = snode->parents()[0]; - break; - case GLM_UNKNOWN: - break; - } - - LinkNode const *ln = dynamic_cast(lp); - if (ln) - lp = ln->parents()[0]; - - return lp; -} - namespace glm { void GLMMethod::calDesign() const { vector const &snodes = _view->nodes(); - vector const &schildren = + vector const &schildren = _view->stochasticChildren(); int *Xi = static_cast(_x->i); @@ -91,7 +75,7 @@ for (unsigned int j = 0; j < length; ++j) { for (int r = Xp[c+j]; r < Xp[c+j+1]; ++r) { - Xx[r] = -getMean(Xi[r]); + Xx[r] = -_outcomes[Xi[r]]->mean(); } } @@ -103,7 +87,7 @@ xnew[j] += 1; _sub_views[i]->setValue(xnew, length, _chain); for (int r = Xp[c+j]; r < Xp[c+j+1]; ++r) { - Xx[r] += getMean(Xi[r]); + Xx[r] += _outcomes[Xi[r]]->mean(); } xnew[j] -= 1; } @@ -118,24 +102,21 @@ } GLMMethod::GLMMethod(GraphView const *view, - vector const &sub_views, + vector const &sub_views, + vector const &outcomes, unsigned int chain, bool link) - : _lp(view->stochasticChildren().size()), - _view(view), _chain(chain), _sub_views(sub_views), + : _view(view), _chain(chain), _sub_views(sub_views), _outcomes(outcomes), _x(0), _factor(0), _fixed(sub_views.size(), false), _length_max(0), _nz_prior(0), _init(true) { - vector const &schildren = + view->checkFinite(chain); //Check validity of initial values + + vector const &schildren = view->stochasticChildren(); int nrow = schildren.size(); int ncol = view->length(); - //Set up linear predictor - for (int i = 0; i < nrow; ++i) { - _lp[i] = getLinearPredictor(schildren[i])->value(chain); - } - vector Xp(ncol + 1); vector Xi; @@ -144,7 +125,7 @@ for (unsigned int p = 0; p < _sub_views.size(); ++p) { - set children_p; + set children_p; children_p.insert(sub_views[p]->stochasticChildren().begin(), sub_views[p]->stochasticChildren().end()); vector indices; @@ -182,6 +163,10 @@ GLMMethod::~GLMMethod() { + while(!_outcomes.empty()) { + delete _outcomes.back(); + _outcomes.pop_back(); + } cholmod_free_sparse(&_x, glm_wk); } @@ -311,8 +296,8 @@ double *Tx = static_cast(t_x->x); for (unsigned int c = 0; c < t_x->ncol; ++c) { - double tau = getPrecision(c); - double delta = tau * (getValue(c) - getMean(c)); + double tau = _outcomes[c]->precision(); + double delta = tau * (_outcomes[c]->value() - _outcomes[c]->mean()); double sigma = sqrt(tau); for (int r = Tp[c]; r < Tp[c+1]; ++r) { b[Ti[r]] += Tx[r] * delta; @@ -505,33 +490,8 @@ return true; } - double GLMMethod::getMean(unsigned int i) const - { - return *_lp[i]; - } - - GLMFamily GLMMethod::getFamily(StochasticNode const *snode) - { - string const &name = snode->distribution()->name(); - if (name == "dbern") { - return GLM_BERNOULLI; - } - else if (name == "dbin") { - return GLM_BINOMIAL; - } - else if (name == "dpois") { - return GLM_POISSON; - } - else if (name == "dnorm") { - return GLM_NORMAL; - } - else { - return GLM_UNKNOWN; - } - } - void GLMMethod::updateAuxiliary(cholmod_dense *b, cholmod_factor *N, RNG *rng) { } -} +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/GLMMethod.h jags-4.0.0/src/modules/glm/samplers/GLMMethod.h --- jags-3.4.0/src/modules/glm/samplers/GLMMethod.h 2011-11-28 15:49:21.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/GLMMethod.h 2015-02-22 16:52:12.000000000 +0000 @@ -1,8 +1,7 @@ #ifndef GLM_METHOD_H_ #define GLM_METHOD_H_ -#include -#include +#include #include #include @@ -11,32 +10,22 @@ #include } -class Graph; -class RNG; -class StochasticNode; +namespace jags { -enum GLMFamily {GLM_NORMAL, GLM_BERNOULLI, GLM_BINOMIAL, GLM_POISSON, - GLM_UNKNOWN}; + struct RNG; + class GraphView; + class SingletonGraphView; namespace glm { + class Outcome; + /** * @short Abstract class for sampling generalized linear models. * * GLMMethod provides a base class for sampling methods that work * on generalized linear models (GLMs). Most of the update - * machinery is provided by GLMMethod itself. Sub-classes have to - * define member functions that define the inputs to the sampling - * algorithm. - * - * Classes inheriting from GLMMethod typically use auxiliary - * variable sampling. This is a form of data augmentation in - * which additional latent (auxiliary) variables are added to the - * model to reduce it to the form of a linear model with normal - * outcome variables. We also assume that that the regression - * parameters have a prior multivariate normal distribution. Thus - * the posterior distribution is also multivariate normal and the - * the regression parameters can be sampled efficiently in a block. + * machinery is provided by GLMMethod itself. * * GLMMethod uses sparse matrix algebra provided by the libraries * CHOLMOD and CSparse. In the context of a hierarchical model, @@ -44,15 +33,15 @@ * that mixed models have a design matrix that is sparse. The use * of CHOLMOD and CSparse, along with auxiliary variable sampling, * allows us to handle both fixed and random effects in a - * consistent way without needing to distinguish between them, or - * rely on asymptotic approximations. + * consistent way without needing to distinguish between them or + * relying on asymptotic approximations. */ - class GLMMethod : public SampleMethod { - std::vector _lp; + class GLMMethod : public MutableSampleMethod { protected: GraphView const *_view; unsigned int _chain; - std::vector _sub_views; + std::vector _sub_views; + std::vector _outcomes; cholmod_sparse *_x; cholmod_factor *_factor; private: @@ -68,10 +57,15 @@ * * @param view Pointer to a GraphView object for all sampled nodes. * - * @param sub_views Vector of pointers to GraphView objects with - * length equal to the number of sampled nodes. Each sub-view - * corresponds to a single sampled node. - * + * @param sub_views Vector of pointers to SingletonGraphView + * objects with length equal to the number of sampled + * nodes. Each sub-view corresponds to a single sampled node. + * + * @param outcomes Vector of pointers to Outcome objects with length + * equal to the number of stochastic children of the sampled nodes. + * The GLMMethod objects takes ownership of each Outcome in the vector + * and frees the memory in the destructor. + * * @param chain Number of the chain (starting from 0) to which * the sampling method will be applied. * @@ -82,7 +76,8 @@ * descendants) may be link nodes. */ GLMMethod(GraphView const *view, - std::vector const &sub_views, + std::vector const &sub_views, + std::vector const &outcomes, unsigned int chain, bool link); /** * Virtual destructor @@ -90,16 +85,12 @@ virtual ~GLMMethod(); /** * Updates the regression parameters by treating the GLM as a - * linear model (LM), either by a linear approximation or by - * using auxiliary variables. All regression parameters are - * updated together in a block. - * - * The updateLM function relies on virtual functions which are - * implemented by sub-classes: getPrecision, getValue and - * updateAuxiliary. + * linear model (LM). All regression parameters are updated + * together in a block. * - * In order to provide more flexibility, updateLM has an optional - * arguments stochastic. + * In order to provide more flexibility, updateLM has an + * optional argument stochastic, which may be set to false for + * a deterministic update. * * @param rng Random number generator used for sampling * @@ -132,21 +123,6 @@ */ void calCoef(double *&b, cholmod_sparse *&A); /** - * Returns the linear predictor for the outcome variable with index i. - */ - double getMean(unsigned int i) const; - /** - * Returns the precision of the outcome variable with index i. - * This may be the precision parameter of an auxiliary variable. - */ - virtual double getPrecision(unsigned int i) const = 0; - /** - * Returns the value of the outcome variable with index i. - * This may be an auxiliary variable, rather than the observed - * outcome. - */ - virtual double getValue(unsigned int i) const = 0; - /** * Updates auxiliary variables. The default method does * nothing. Sampling methods that use auxiliary variables to * reduce the GLM to a linear model must provide their own @@ -193,13 +169,8 @@ * Returns true, as GLMMethod is not adaptive */ bool checkAdaptation() const; - /** - * Utility function that classifies the distribution of a - * stochastic node into one of the classes defined by the - * enumeration GLMFamily. - */ - static GLMFamily getFamily(StochasticNode const *snode); }; -} +}} + #endif /* GLM_METHOD_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/GLMSampler.cc jags-4.0.0/src/modules/glm/samplers/GLMSampler.cc --- jags-3.4.0/src/modules/glm/samplers/GLMSampler.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/GLMSampler.cc 2015-02-22 08:33:05.000000000 +0000 @@ -1,15 +1,18 @@ #include #include "GLMSampler.h" #include +#include using std::vector; +namespace jags { namespace glm { GLMSampler::GLMSampler(GraphView *view, - vector const &sub_views, - vector const &methods) - : ParallelSampler(view, methods), _sub_views(sub_views) + vector const &sub_views, + vector const &methods, + std::string const &name) + : MutableSampler(view, methods, name), _sub_views(sub_views) { } @@ -21,4 +24,4 @@ } } -} +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/GLMSampler.h jags-4.0.0/src/modules/glm/samplers/GLMSampler.h --- jags-3.4.0/src/modules/glm/samplers/GLMSampler.h 2011-11-10 13:21:29.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/GLMSampler.h 2015-02-22 08:33:05.000000000 +0000 @@ -1,26 +1,49 @@ #ifndef GLM_SAMPLER_H_ #define GLM_SAMPLER_H_ -#include +#include #include -class GraphView; +namespace jags { + + class GraphView; + class SingletonGraphView; namespace glm { /** * @short Base class for GLM samplers. */ - class GLMSampler : public ParallelSampler + class GLMSampler : public MutableSampler { - std::vector _sub_views; + std::vector _sub_views; public: - GLMSampler(GraphView *view, std::vector const &sub_views, - std::vector const &methods); + /** + * Constructor. + * + * @param view Pointer to a GraphView object for all sampled nodes. + * + * @param sub_views Vector of pointers to SingletonGraphView + * objects with length equal to the number of sampled + * nodes. Each sub-view corresponds to a single sampled node. + * The GLMSampler object takes ownership of these sub-views + * and deletes them when its destructor is called. + * + * @param methods Vector of sampling methods + */ + GLMSampler(GraphView *view, + std::vector const &sub_views, + std::vector const &methods, + std::string const &name); + /** + * Destructor + * + * Deletes the sub-views passed to the constructor. + */ ~GLMSampler(); }; -} +}} #endif /* GLM_SAMPLER_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/HolmesHeld.cc jags-4.0.0/src/modules/glm/samplers/HolmesHeld.cc --- jags-3.4.0/src/modules/glm/samplers/HolmesHeld.cc 2011-11-28 15:49:21.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/HolmesHeld.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,207 +0,0 @@ -#include - -#include "HolmesHeld.h" -#include "KS.h" - -#include -#include -#include -#include -#include -#include - -extern "C" { -#include -} - -#include - -// Regularization penalty for precision -#define REG_PENALTY 0.001 - -using std::vector; -using std::string; -using std::sqrt; - -extern cholmod_common *glm_wk; - -static cs shallow_copy(cholmod_sparse *s) -{ - //Copy a cholmod_sparse struct to a cs struct without allocating - //any memory - - cs c; - c.nzmax = s->nzmax; - c.n = s->nrow; - c.m = s->ncol; - c.p = static_cast(s->p); - c.i = static_cast(s->i); - c.x = static_cast(s->x); - c.nz = -1; - return c; -} - -namespace glm { - - HolmesHeld::HolmesHeld(GraphView const *view, - vector const &sub_views, - unsigned int chain) - : BinaryGLM(view, sub_views, chain), _aux_init(true) - { - } - - void HolmesHeld::updateAuxiliary(cholmod_dense *w, - cholmod_factor *N, RNG *rng) - { - /* - In the parent GLMMethod class, the posterior precision of - the regression parameters is represented by the matrix "A"; - the posterior mean "mu" solves A %*% mu = b. - - In this call, "N" holds the factorization of P %*% A %*% t(P), - where P is a permutation matrix. The factorization takes - the form L %*% D %*% t(L), where D is diagonal and L is - a lower triangular matrix. The parameter "w" solves - L %*% w = P %*% b - - IMPORTANT NOTE: mu, b use a parameterization in which the - current value of the regressions parameters is taken as the - origin. This requires us to adjust the calculations using - the current value of the linear predictor (mu_r). - */ - - vector const &schildren = - _view->stochasticChildren(); - - unsigned int nrow = schildren.size(); - - //Transpose and permute the design matrix - cholmod_sparse *t_x = cholmod_transpose(_x, 1, glm_wk); - int *fperm = static_cast(_factor->Perm); - cholmod_sparse *Pt_x = cholmod_submatrix(t_x, fperm, t_x->nrow, - 0, -1, 1, 1, glm_wk); - cholmod_free_sparse(&t_x, glm_wk); - - //Turn the factor into a matrix. Since this modifies the factor - //we need to take a copy first - cholmod_factor *f = cholmod_copy_factor(_factor, glm_wk); - cholmod_sparse *L = cholmod_factor_to_sparse(f, glm_wk); - if (!L->packed || !L->sorted) { - throwLogicError("Cholesky factor is not packed or not sorted"); - } - cholmod_free_factor(&f, glm_wk); - - unsigned int ncol = L->ncol; - vector d(ncol, 1); - if (!_factor->is_ll) { - //Extract D from the diagonal of L and set the diagonal to 1 - int *Lp = static_cast(L->p); - double *Lx = static_cast(L->x); - for (unsigned int r = 0; r < ncol; ++r) { - d[r] = Lx[Lp[r]]; - Lx[Lp[r]] = 1; - } - } - - // Now make shallow copies of L and Pt_x so we can pass them - // to cs_sparse from the CSparse library - - cs cs_L = shallow_copy(L); - cs cs_Ptx = shallow_copy(Pt_x); - - double *ur = new double[ncol]; - int *xi = new int[2*ncol]; //Stack - - double *wx = static_cast(w->x); - - for (unsigned int r = 0; r < nrow; ++r) { - - // In a heterogeneous GLM, we may have some normal - // outcomes as well as binary outcomes. These can be - // skipped as there is no need for auxiliary variables - if (_outcome[r] == BGLM_NORMAL) - continue; - - int top = cs_spsolve(&cs_L, &cs_Ptx, r, xi, ur, 0, 1); - - double mu_r = getMean(r); // See IMPORTANT NOTE above - double tau_r = getPrecision(r); - - //Calculate mean and precision of z[r] conditional - //on z[s] for s != r - double zr_mean = 0; - double Hr = 0; // Diagonal of hat matrix - - if (_factor->is_ll) { - for (unsigned int j = top; j < ncol; ++j) { - zr_mean += ur[xi[j]] * wx[xi[j]]; - Hr += ur[xi[j]] * ur[xi[j]]; - } - } - else { - for (unsigned int j = top; j < ncol; ++j) { - zr_mean += ur[xi[j]] * wx[xi[j]] / d[xi[j]]; - Hr += ur[xi[j]] * ur[xi[j]] / d[xi[j]]; - } - } - Hr *= tau_r; - if (1 - Hr <= 0) { - // Theoretically this should never happen, but numerical instability may cause it - StochasticNode const *snode = _view->stochasticChildren()[r]; - throwNodeError(snode, "Highly influential outcome variable in Holmes-Held update method."); - } - zr_mean -= Hr * (_z[r] - mu_r); - zr_mean /= (1 - Hr); - double zr_prec = (1 - Hr) * tau_r; - - double yr = schildren[r]->value(_chain)[0]; - double zold = _z[r]; - if (yr == 1) { - _z[r] = lnormal(0, rng, mu_r + zr_mean, 1/sqrt(zr_prec)); - } - else if (yr == 0) { - _z[r] = rnormal(0, rng, mu_r + zr_mean, 1/sqrt(zr_prec)); - } - else { - throwLogicError("Invalid child value in HolmesHeld"); - } - - //Add new contribution of row r back to b - double zdelta = (_z[r] - zold) * tau_r; - for (unsigned int j = top; j < ncol; ++j) { - wx[xi[j]] += ur[xi[j]] * zdelta; - } - } - - //Free workspace - delete [] ur; - delete [] xi; - - cholmod_free_sparse(&Pt_x, glm_wk); - cholmod_free_sparse(&L, glm_wk); - } - - void HolmesHeld::update(RNG *rng) - { - if (_aux_init) { - initAuxiliary(rng); - _aux_init = false; - } - - for (unsigned int r = 0; r < _tau.size(); ++r) - { - if (_outcome[r] == BGLM_LOGIT) { - double delta = fabs(getValue(r) - getMean(r)); - _tau[r] = REG_PENALTY + 1/sample_lambda(delta, rng); - } - } - - updateLM(rng); - } - - string HolmesHeld::name() const - { - return "Holmes-Held"; - } -} - diff -Nru jags-3.4.0/src/modules/glm/samplers/HolmesHeldFactory.cc jags-4.0.0/src/modules/glm/samplers/HolmesHeldFactory.cc --- jags-3.4.0/src/modules/glm/samplers/HolmesHeldFactory.cc 2011-11-14 08:22:13.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/HolmesHeldFactory.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -#include - -#include "HolmesHeldFactory.h" -#include "HolmesHeld.h" - -using std::vector; - -namespace glm { - - HolmesHeldFactory::HolmesHeldFactory() - : BinaryFactory("glm::Holmes-Held", false) - {} - - BinaryGLM * - HolmesHeldFactory::newBinary(GraphView const *view, - vector const &sub_views, - unsigned int chain) const - { - return new HolmesHeld(view, sub_views, chain); - } - - - bool HolmesHeldFactory::fixedOutcome() const - { - return true; - } - - bool HolmesHeldFactory::fixedDesign() const - { - return true; - } -} diff -Nru jags-3.4.0/src/modules/glm/samplers/HolmesHeldFactory.h jags-4.0.0/src/modules/glm/samplers/HolmesHeldFactory.h --- jags-3.4.0/src/modules/glm/samplers/HolmesHeldFactory.h 2011-11-14 08:22:13.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/HolmesHeldFactory.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -#ifndef HOLMES_HELD_FACTORY_H_ -#define HOLMES_HELD_FACTORY_H_ - -#include "BinaryFactory.h" - -namespace glm { - - /** - * @short Factory object for the Holmes-Held sampling method - */ - class HolmesHeldFactory : public BinaryFactory - { - public: - HolmesHeldFactory(); - /** - * Returns a newly allocated object of class HolmesHeld for - * sampling binary GLMs with probit or logistic link. - */ - BinaryGLM *newBinary(GraphView const *view, - std::vector const &sub_views, - unsigned int chain) const; - /** - * Returns true. The Holmes-Held update method requires a - * fixed outcome because the auxiliary variables are updated - * by a reversible transition from their current values. - */ - bool fixedOutcome() const; - /** - * Returns true. The Holmes-Held update method requires a - * fixed design matrix - */ - bool fixedDesign() const; - }; - -} - -#endif /* HOLMES_HELD_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/HolmesHeld.h jags-4.0.0/src/modules/glm/samplers/HolmesHeld.h --- jags-3.4.0/src/modules/glm/samplers/HolmesHeld.h 2011-11-28 15:49:21.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/HolmesHeld.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,76 +0,0 @@ -#ifndef HOLMES_HELD_H_ -#define HOLMES_HELD_H_ - -#include "BinaryGLM.h" - -namespace glm { - - /** - * @short Holmes Held sampler for binary GLMs - * - * Sampler for probit and logistic regression models with binary - * outcome data, based on Holmes C and Held L (2006). Bayesian - * Auxiliary Variables Models for Binary and Multinomial - * Regression, Bayesian Analysis, 1:148-168. - * - * In the Holmes-Held sampling method auxiliary normal variables - * (z[i]) are sampled from their joint distribution after - * marginalizing over the regression parameters of the GLM. In - * probit models, this provides improved mixing over the - * Albert-Chib algorithm (See class AlbertChib). In logistic - * regression models, z[i] has a logistic distribution, which is - * represented by a scale mixture of normals. The scale parameter - * (tau[i]) is sampled by the update method. - * - * For logistic regression the improvement over the standard - * Albert-Chib algorithm is not so clear cut. - */ - class HolmesHeld : public BinaryGLM { - bool _aux_init; //Do we need to initialize auxiliary variables? - public: - /** - * Constructor. - * - * @see GLMMethod#GLMMethod - */ - HolmesHeld(GraphView const *view, - std::vector const &sub_views, - unsigned int chain); - /** - * Updates the auxiliary variables (z[]) provided by the - * parent BinaryGLM class. This function is called by - * GLMMethod#updateLM. - * - * In the parent GLMMethod class, the posterior precision of - * the regression parameters is represented by the matrix "A" - * and the posterior mean "mu" solves A %*% mu = b. - * - * In this call, "N" holds the factorization - * P %*% A %*% t(P) = L %*% D %*% t(L) - * where P is a permutation matrix chosen to make - * the factorization more efficient, and "w" solves - * the equation L %*% w = P %*% b, - * - * These values are then used to calculate the marginal mean - * and variance of z[], which forms a multivariate truncated - * normal distribution. Each element of z[] is updated in turn - * by Gibbs sampling. - */ - void updateAuxiliary(cholmod_dense *b, cholmod_factor *N, RNG *rng); - /** - * Returns "Holmes-Held" - */ - std::string name() const; - /** - * The update takes place in two steps. Firstly, for logistic - * regression, the auxiliary variables tau[i] (representing - * the precision of the latent variable z[i]) are updated - * using the current values of z[], then GLMMethod#updateLM is - * called. For probit regression, tau[i] is fixed at 1. - */ - void update(RNG *rng); - }; - -} - -#endif /* HOLMES_HELD_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/IWLS.cc jags-4.0.0/src/modules/glm/samplers/IWLS.cc --- jags-3.4.0/src/modules/glm/samplers/IWLS.cc 2012-09-18 07:26:28.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/IWLS.cc 2015-02-22 08:33:05.000000000 +0000 @@ -4,6 +4,7 @@ #include //#include #include +#include #include #include @@ -22,11 +23,6 @@ using std::log; using std::copy; -static unsigned int nchildren(GraphView const *view) -{ - return view->stochasticChildren().size(); -} - static double logDet(cholmod_factor *F) { //NB Requiring simplicial factorization here. See glm.cc. @@ -43,88 +39,18 @@ #define MAX_ITER 100 +namespace jags { namespace glm { IWLS::IWLS(GraphView const *view, - vector const &sub_views, + vector const &sub_views, + vector const &outcomes, unsigned int chain) - : GLMMethod(view, sub_views, chain, true), - _link(nchildren(view)), _family(nchildren(view)), - _init(true), _w(0) + : GLMMethod(view, sub_views, outcomes, chain, true), _init(true) { - vector const &children = - view->stochasticChildren(); - - for (unsigned int i = 0; i < children.size(); ++i) { - _link[i] = dynamic_cast(children[i]->parents()[0]); - _family[i] = getFamily(children[i]); - if ((_link[i] == 0) != (_family[i] == GLM_NORMAL)) { - throwLogicError("Invalid link"); - } - } } - string IWLS::name() const - { - return "IWLS"; - } - - double IWLS::getPrecision(unsigned int i) const - { - double w = _w; - if(_family[i] == GLM_BINOMIAL || _family[i] == GLM_NORMAL) { - Node const *scale = _view->stochasticChildren()[i]->parents()[1]; - w *= scale->value(_chain)[0]; - } - - double grad = _link[i] ? _link[i]->grad(_chain) : 1; - return (w * grad * grad)/ var(i); - } - - double IWLS::getValue(unsigned int i) const - { - Node const *child = _view->stochasticChildren()[i]; - - double y = child->value(_chain)[0]; - if (_family[i] == GLM_BINOMIAL) { - double N = child->parents()[1]->value(_chain)[0]; - y /= N; - } - - if (_link[i] == 0) { - return y; - } - else { - double mu = _link[i]->value(_chain)[0]; - double eta = _link[i]->eta(_chain); - double grad = _link[i]->grad(_chain); - - return eta + (y - mu) / grad; - } - } - - double IWLS::var(unsigned int i) const - { - double mu = _link[i] ? _link[i]->value(_chain)[0] : 0; - - switch(_family[i]) { - case GLM_BERNOULLI: case GLM_BINOMIAL: - return mu * (1 - mu); - break; - case GLM_POISSON: - return mu; - break; - case GLM_NORMAL: - return 1; - break; - case GLM_UNKNOWN: - throwLogicError("Unknown GLM family in IWLS"); - } - - return 0; //-Wall - } - double IWLS::logPTransition(vector const &xold, vector const &xnew, double *b, cholmod_sparse *A) @@ -179,9 +105,7 @@ void IWLS::update(RNG *rng) { if (_init) { - _w = 0; for (unsigned int i = 0; i < MAX_ITER; ++i) { - _w += 1.0/MAX_ITER; updateLM(rng, false); } _init = false; @@ -215,4 +139,5 @@ _view->setValue(xold, _chain); //reject proposal } } -} + +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/IWLSFactory.cc jags-4.0.0/src/modules/glm/samplers/IWLSFactory.cc --- jags-3.4.0/src/modules/glm/samplers/IWLSFactory.cc 2013-08-30 08:16:57.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/IWLSFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -1,57 +1,64 @@ #include -#include - #include "IWLSFactory.h" #include "IWLS.h" -#include +#include "Linear.h" +#include "NormalLinear.h" +#include "IWLSOutcome.h" + +#include +#include using std::vector; using std::string; +namespace jags { namespace glm { IWLSFactory::IWLSFactory() : GLMFactory("glm::IWLS") {} - bool IWLSFactory::checkOutcome(StochasticNode const *snode, - LinkNode const *lnode) const + bool IWLSFactory::checkOutcome(StochasticNode const *snode) const { - GLMFamily family = GLMMethod::getFamily(snode); - if (family == GLM_NORMAL) { - return lnode == 0; - } - else if (!lnode) { - return false; - } - else { - string link = lnode->linkName(); - switch(family) { - case GLM_BERNOULLI: case GLM_BINOMIAL: - return link == "probit" || link == "logit"; - case GLM_POISSON: - return link == "log"; - case GLM_UNKNOWN: case GLM_NORMAL: - return false; - } - } - return false; //icpc -Wall + return NormalLinear::canRepresent(snode) || + IWLSOutcome::canRepresent(snode); } GLMMethod * IWLSFactory::newMethod(GraphView const *view, - vector const &sub_views, - unsigned int chain) const + vector const &sub_views, + unsigned int chain) const { - return new IWLS(view, sub_views, chain); + bool linear = true; + vector outcomes; + + for (vector::const_iterator p = view->stochasticChildren().begin(); + p != view->stochasticChildren().end(); ++p) + { + Outcome *outcome = 0; + if (NormalLinear::canRepresent(*p)) { + outcome = new NormalLinear(*p, chain); + } + else if (IWLSOutcome::canRepresent(*p)) { + outcome = new IWLSOutcome(*p, chain); + linear = false; + } + outcomes.push_back(outcome); + } + + if (linear) { + return new Linear(view, sub_views, outcomes, chain, false); + } + + return new IWLS(view, sub_views, outcomes, chain); } bool IWLSFactory::canSample(StochasticNode const *snode) const { vector const &parents = snode->parents(); for (unsigned int i = 0; i < parents.size(); ++i) { - if (!parents[i]->isObserved()) + if (!parents[i]->isFixed()) return false; } return !isBounded(snode); @@ -61,4 +68,5 @@ { return true; } -} + +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/IWLSFactory.h jags-4.0.0/src/modules/glm/samplers/IWLSFactory.h --- jags-3.4.0/src/modules/glm/samplers/IWLSFactory.h 2011-11-14 08:22:13.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/IWLSFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include "GLMFactory.h" +namespace jags { namespace glm { /** @@ -21,13 +22,12 @@ * families, but in the BUGS language, these are not * parameterized in terms of their mean and precision. */ - bool checkOutcome(StochasticNode const *snode, - LinkNode const *lnode) const; + bool checkOutcome(StochasticNode const *snode) const; /** * Returns a newly allocated object of class IWLS */ GLMMethod *newMethod(GraphView const *view, - std::vector const &sub_views, + std::vector const &sub_views, unsigned int chain) const; /** * Returns false if any parents of the candidate node are @@ -48,6 +48,6 @@ bool fixedDesign() const; }; -} +}} #endif /* IWLS_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/IWLS.h jags-4.0.0/src/modules/glm/samplers/IWLS.h --- jags-3.4.0/src/modules/glm/samplers/IWLS.h 2011-11-10 14:02:50.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/IWLS.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,8 @@ #include "GLMMethod.h" +namespace jags { + class LinkNode; namespace glm { @@ -22,33 +24,16 @@ * effects models. */ class IWLS : public GLMMethod { - std::vector _link; - std::vector _family; bool _init; - double _w; - double var(unsigned int i) const; double logPTransition(std::vector const &xorig, std::vector const &x, double *b, cholmod_sparse *A); public: IWLS(GraphView const *view, - std::vector const &sub_views, + std::vector const &sub_views, + std::vector const &outcomes, unsigned int chain); /** - * Returns "IWLS" - */ - std::string name() const; - /** - * Returns the value of the outcome variable in a local linear - * approximation to the GLM - */ - double getValue(unsigned int i) const; - /** - * Returns the precision of the outcome variable in a local - * linear approximation to the GLM - */ - double getPrecision(unsigned int i) const; - /** * Generates a new proposal from an approximation to the posterior * distribution derived by a single IWLS step, then carries out * a Metropolis-Hastings acceptance step. @@ -56,6 +41,6 @@ void update(RNG *rng); }; -} +}} #endif /* IWLS_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/IWLSOutcome.cc jags-4.0.0/src/modules/glm/samplers/IWLSOutcome.cc --- jags-3.4.0/src/modules/glm/samplers/IWLSOutcome.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/IWLSOutcome.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,88 @@ +#include + +#include "IWLSOutcome.h" +#include "Classify.h" + +#include +#include +#include + +namespace jags { +namespace glm { + + /* + * Work-around for the binomial distribution where the outcome of + * Y ~ dbin(p, N) is Y/N + */ + static double const &getScale(StochasticNode const *snode, unsigned int chain) + { + static const double one = 1; + + if (getFamily(snode) == GLM_BINOMIAL) { + Node const *N = snode->parents()[1]; + return N->value(chain)[0]; + } + else { + return one; + } + } + + IWLSOutcome::IWLSOutcome(StochasticNode const *snode, unsigned int chain) + : Outcome(snode, chain), _link(dynamic_cast(snode->parents()[0])), _family(getFamily(snode)), + _y(snode->value(chain)[0]), _scale(getScale(snode, chain)), _chain(chain) + { + } + + double IWLSOutcome::precision() const + { + double grad = _link->grad(_chain); + + return (_scale * grad * grad)/ var(); + } + + double IWLSOutcome::value() const + { + double mu = _link->value(_chain)[0]; + double grad = _link->grad(_chain); + + return _lp + (_y / _scale - mu) / grad; + } + + double IWLSOutcome::var() const + { + double mu = _link->value(_chain)[0]; + + //FIXME, should be sub-classes + switch(_family) { + case GLM_BERNOULLI: case GLM_BINOMIAL: + return mu * (1 - mu); + break; + case GLM_POISSON: + return mu; + break; + default: + throwLogicError("Invalid GLM family in IWLS"); + } + + return 0; //-Wall + } + + bool IWLSOutcome::canRepresent(StochasticNode const *snode) + { + GLMFamily family = getFamily(snode); + GLMLink link = getLink(snode); + + switch(family) { + case GLM_BINOMIAL: case GLM_BERNOULLI: + return link == LNK_PROBIT || link == LNK_LOGIT; + case GLM_POISSON: + return link == LNK_LOG; + default: + break; + } + + return false; + + } + +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/IWLSOutcome.h jags-4.0.0/src/modules/glm/samplers/IWLSOutcome.h --- jags-3.4.0/src/modules/glm/samplers/IWLSOutcome.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/IWLSOutcome.h 2015-02-22 09:45:58.000000000 +0000 @@ -0,0 +1,50 @@ +#ifndef IWLS_OUTCOME_H_ +#define IWLS_OUTCOME_H_ + +#include "Outcome.h" +#include "Classify.h" + +namespace jags { + +class LinkNode; + +namespace glm { + + /** + * @short Outcome for GLMs with Iteratively Weighted Least Squares + * + * The IWLSOutcome method uses a local linear approximation as + * used by the IWLS algorithm + */ + class IWLSOutcome : public Outcome { + LinkNode const * _link; + GLMFamily _family; + double const &_y; + double const &_scale; + unsigned int _chain; + public: + IWLSOutcome(StochasticNode const *snode, unsigned int chain); + /** + * Returns the value of the outcome variable in a local linear + * approximation to the GLM + */ + double value() const; + /** + * Returns the precision of the outcome variable in a local + * linear approximation to the GLM + */ + double precision() const; + /** + * Returns the variance function + */ + double var() const; + /** + * IWLSOutcome can currently represent Poisson outcomes with log link + * and Bernoulli or Binomial outcomes with probit or logit link. + */ + static bool canRepresent(StochasticNode const *snode); + }; + +}} + +#endif /* IWLS_OUTCOME_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/KS.cc jags-4.0.0/src/modules/glm/samplers/KS.cc --- jags-3.4.0/src/modules/glm/samplers/KS.cc 2012-01-12 13:27:07.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/KS.cc 2015-02-22 08:33:05.000000000 +0000 @@ -12,6 +12,8 @@ using std::sqrt; using std::fabs; +namespace jags { + static bool r_intvl(double u, double lambda) { // Rejection algorithm based on an alternating series expansion @@ -127,5 +129,5 @@ } } -} +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/KS.h jags-4.0.0/src/modules/glm/samplers/KS.h --- jags-3.4.0/src/modules/glm/samplers/KS.h 2011-11-15 15:56:18.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/KS.h 2015-02-22 16:51:28.000000000 +0000 @@ -1,9 +1,11 @@ #ifndef KS_H_ #define KS_H_ -class RNG; +namespace jags { -namespace glm { + struct RNG; + + namespace glm { /** * Utility function used by the HolmesHeld and AlbertChib sampling * methods in binary logistic regression models. @@ -26,6 +28,7 @@ * @param rng Random number generator used for sampling */ double sample_lambda(double Z, RNG *rng); -} + +}} #endif /* KS_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/LGMix.cc jags-4.0.0/src/modules/glm/samplers/LGMix.cc --- jags-3.4.0/src/modules/glm/samplers/LGMix.cc 2012-02-20 09:47:53.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/LGMix.cc 2015-02-22 08:33:05.000000000 +0000 @@ -23,9 +23,12 @@ #include #include +#include using std::sqrt; using std::vector; +using std::max_element; +using std::upper_bound; /* * Exact mixture parameters are stored for integer n in the range 1 ... 19. @@ -277,7 +280,7 @@ }; /* - * n from 1600 to 10000 + * n from 1600 to 9999 */ static const double Coef_p6[2][4] = { {-1.586037487404490e-13, 3.575996226727867e-09, @@ -323,35 +326,36 @@ /* * Approximate mixture parameters using a rational function that is * quadratic in the numerator and linear in the denominator. The - * coefficients are in an nrow x 4 array. If the elements of a row + * coefficients are in an ncomp x 4 array. If the elements of a row * are a,b,c,d then the rational approximation is: * * (a * n^2 + b * n + 1)/(c * n + d) * */ -static void rational_approx(double n, const double (*coef)[4], int nrow, +static void rational_approx(double n, const double (*coef)[4], int ncomp, double *out) { - for (int i = 0; i < nrow; i++) { + for (int i = 0; i < ncomp; i++) { double num = coef[i][0] * n * n + coef[i][1] * n + 1; double denom = coef[i][2] * n + coef[i][3]; out[i] = num / denom; } } +namespace jags { namespace glm { LGMix::LGMix(double n) - : _nlast(n), _r(0), _ncomp(0) + : _n(n), _r(0), _ncomp(0) { if (n > 0) - updateN(n); + updateShape(n); } /* * Exact mixture parameters for all integer n less than 20 */ - void LGMix::updateNExact(int n) + void LGMix::updateShapeExact(int n) { if (n < 5) { _ncomp = 10; @@ -372,7 +376,7 @@ /* * Approximate mixture parameters for n >= 20 using rational functions */ - void LGMix::updateNApprox(double n) + void LGMix::updateShapeApprox(double n) { //Upper limit of range of n supported by each approximation const int upper[5] = {50, 440, 1600, 10000, 30000}; @@ -403,20 +407,20 @@ _ncomp = 1; } - void LGMix::updateN(double n) + void LGMix::updateShape(double n) { if (n <= 0) { - throwLogicError("n out of range in LGMix::updateN"); + throwLogicError("shape out of range in LGMix::updateShape"); } else if (n < 20) { int nr = static_cast(n); if (nr != n) { - throwLogicError("Invalid in in LGMix::updateN"); + throwLogicError("Invalid shape in LGMix::updateShape"); } - updateNExact(nr); + updateShapeExact(nr); } else { - updateNApprox(n); + updateShapeApprox(n); } // Rescale by mean and standard deviation of the negative @@ -429,41 +433,33 @@ _means[i] = _means[i] * sigma + mu; _variances[i] *= sigma2; } - _nlast = n; + _n = n; } void LGMix::update(double z, double n, RNG *rng) { // Check whether value of n has changed since last update - if (n != _nlast) { - updateN(n); - } + if (n != _n) updateShape(n); - vector p(_ncomp); //Log probabilities - double maxp = 0; + vector p(_ncomp); for (int i = 0; i < _ncomp; i++) { p[i] = dnorm(z, _means[i], sqrt(_variances[i]), true) + log(_weights[i]); - if (i == 0 || p[i] > maxp) - maxp = p[i]; } + double maxp = *max_element(p.begin(), p.end()); - //Cumulative probabilities - double sump = 0; + //Cumulative probabilities (unnormalized) + double sump = 0.0; for (int i = 0; i < _ncomp; i++) { - p[i] = sump + exp(p[i] - maxp); - sump = p[i]; + sump += exp(p[i] - maxp); + p[i] = sump; } //Sample _r from cumulative probabilities double u = rng->uniform() * sump; - for (_r = 0; _r < _ncomp - 1; _r++) { - if (u < p[_r]) { - break; - } - } + _r = upper_bound(p.begin(), p.end(), u) - p.begin(); } double LGMix::mean() const @@ -475,4 +471,20 @@ { return 1/_variances[_r]; } -} + + void LGMix::getParameters(vector &weights, + vector &means, + vector &variances) + { + weights.clear(); + means.clear(); + variances.clear(); + + for (int i = 0; i < _ncomp; ++i) { + weights.push_back(_weights[i]); + means.push_back(_means[i]); + variances.push_back(_variances[i]); + } + } + +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/LGMix.h jags-4.0.0/src/modules/glm/samplers/LGMix.h --- jags-3.4.0/src/modules/glm/samplers/LGMix.h 2012-02-20 09:49:04.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/LGMix.h 2015-02-22 16:51:59.000000000 +0000 @@ -4,36 +4,40 @@ #include #include #include - -class RNG; +#include using std::copy; +namespace jags { + +struct RNG; + namespace glm { /** * @short Finite mixture representation of negative log-gamma distribution * - * Represents a negative log gamma distribution with integer shape n > 0 and - * scale 1 as a finite mixture of normals. This is used by the - * AMMethod sampling method for Poisson and binomial GLMs. + * Represents a negative log gamma distribution with integer shape + * n > 0 and scale 1 as a finite mixture of normals. This is used + * by the AuxMixPoisson and AuxMixBinomial Outcome classes. */ class LGMix { - double _nlast; + double _n; int _r; int _ncomp; double _weights[10]; double _means[10]; double _variances[10]; - void updateNExact(int n); - void updateNApprox(double n); - void updateN(double n); + void updateShapeExact(int n); + void updateShapeApprox(double n); + void updateShape(double n); public: LGMix(double n); /** * Updates the mixture representation * * @param z Value sampled from negative log gamma distribution + * with shape parameter n. * @param n Value of n, which may be different from value used in * constructor. * @param rng Random number generator @@ -44,15 +48,21 @@ */ double mean() const; /** - * Returns the variance of the current normal component - */ - double variance() const; - /** * Returns the precision of the current normal component */ double precision() const; + /** + * Gets the parameters of the mixture distribution. + * + * This is not required by the GLM machinery, bu it is useful + * to expose the parameters of the mixture distribution for + * testing purposes. + */ + void getParameters(std::vector &weights, + std::vector &means, + std::vector &variances); }; - -} + +}} #endif /* LG_MIX_H */ diff -Nru jags-3.4.0/src/modules/glm/samplers/Linear.cc jags-4.0.0/src/modules/glm/samplers/Linear.cc --- jags-3.4.0/src/modules/glm/samplers/Linear.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/Linear.cc 2015-02-22 08:33:05.000000000 +0000 @@ -2,17 +2,19 @@ #include "Linear.h" #include -#include +#include using std::vector; using std::string; +namespace jags { namespace glm { Linear::Linear(GraphView const *view, - vector const &sub_views, + vector const &sub_views, + vector const &outcomes, unsigned int chain, bool gibbs) - : GLMMethod(view, sub_views, chain, false), _gibbs(gibbs) + : GLMMethod(view, sub_views, outcomes, chain, false), _gibbs(gibbs) { } @@ -26,14 +28,6 @@ return _view->stochasticChildren()[i]->value(_chain)[0]; } - string Linear::name() const - { - if (_gibbs) - return "LinearGibbs"; - else - return "Linear"; - } - void Linear::update(RNG *rng) { if (_gibbs) @@ -41,4 +35,5 @@ else updateLM(rng); } -} + +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/LinearFactory.cc jags-4.0.0/src/modules/glm/samplers/LinearFactory.cc --- jags-3.4.0/src/modules/glm/samplers/LinearFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/LinearFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -2,12 +2,15 @@ #include "LinearFactory.h" #include "Linear.h" +#include "NormalLinear.h" #include #include +#include using std::vector; +namespace jags { namespace glm { LinearFactory::LinearFactory() @@ -15,22 +18,28 @@ { } - bool LinearFactory::checkOutcome(StochasticNode const *snode, - LinkNode const *lnode) const + bool LinearFactory::checkOutcome(StochasticNode const *snode) const { - return snode->distribution()->name() == "dnorm" && lnode == 0; + return NormalLinear::canRepresent(snode); } GLMMethod* LinearFactory::newMethod(GraphView const *view, - vector const &sub_views, + vector const &subviews, unsigned int chain) const { - return new Linear(view, sub_views, chain, false); + vector outcomes; + for (vector::const_iterator p = view->stochasticChildren().begin(); + p != view->stochasticChildren().end(); ++p) + { + outcomes.push_back(new NormalLinear(*p, chain)); + } + return new Linear(view, subviews, outcomes, chain, false); } bool LinearFactory::canSample(StochasticNode const *snode) const { return !isBounded(snode); } -} + +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/LinearFactory.h jags-4.0.0/src/modules/glm/samplers/LinearFactory.h --- jags-3.4.0/src/modules/glm/samplers/LinearFactory.h 2011-11-10 14:19:17.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/LinearFactory.h 2015-02-22 15:00:00.000000000 +0000 @@ -3,6 +3,7 @@ #include "GLMFactory.h" +namespace jags { namespace glm { /** @@ -10,20 +11,18 @@ */ class LinearFactory : public GLMFactory { - bool _gibbs; public: LinearFactory(); /** * Checks that the outcome is from the normal family with identity - * link (i.e. lnode is NULL) + * link */ - bool checkOutcome(StochasticNode const *snode, - LinkNode const *lnode) const; + bool checkOutcome(StochasticNode const *snode) const; /** * Returns a newly allocated object of class Linear */ GLMMethod *newMethod(GraphView const *view, - std::vector const &sub_views, + std::vector const &sub_views, unsigned int chain) const; /** * Checks that the candidate node is not bounded. This is @@ -33,6 +32,6 @@ bool canSample(StochasticNode const *snode) const; }; -} +}} #endif /* LINEAR_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/LinearGibbsFactory.cc jags-4.0.0/src/modules/glm/samplers/LinearGibbsFactory.cc --- jags-3.4.0/src/modules/glm/samplers/LinearGibbsFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/LinearGibbsFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -2,12 +2,15 @@ #include "LinearGibbsFactory.h" #include "Linear.h" +#include "NormalLinear.h" #include #include +#include using std::vector; +namespace jags { namespace glm { LinearGibbsFactory::LinearGibbsFactory() @@ -15,22 +18,29 @@ { } - bool LinearGibbsFactory::checkOutcome(StochasticNode const *snode, - LinkNode const *lnode) const + bool LinearGibbsFactory::checkOutcome(StochasticNode const *snode) const { - return snode->distribution()->name() == "dnorm" && lnode == 0; + return NormalLinear::canRepresent(snode); } GLMMethod* LinearGibbsFactory::newMethod(GraphView const *view, - vector const &sub_views, - unsigned int chain) const + vector const &sub_views, + unsigned int chain) const { - return new Linear(view, sub_views, chain, true); + vector outcomes; + for (vector::const_iterator p = view->stochasticChildren().begin(); + p != view->stochasticChildren().end(); ++p) + { + outcomes.push_back(new NormalLinear(*p, chain)); + } + + return new Linear(view, sub_views, outcomes, chain, true); } bool LinearGibbsFactory::canSample(StochasticNode const *snode) const { return snode->length() == 1; } -} + +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/LinearGibbsFactory.h jags-4.0.0/src/modules/glm/samplers/LinearGibbsFactory.h --- jags-3.4.0/src/modules/glm/samplers/LinearGibbsFactory.h 2011-11-10 14:22:28.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/LinearGibbsFactory.h 2015-02-22 14:59:38.000000000 +0000 @@ -3,6 +3,7 @@ #include "GLMFactory.h" +namespace jags { namespace glm { /** @@ -17,20 +18,18 @@ */ class LinearGibbsFactory : public GLMFactory { - bool _gibbs; public: LinearGibbsFactory(); /** * Checks that the outcome variable is from a normal family * with identity link (i.e. lnode is NULL) */ - bool checkOutcome(StochasticNode const *snode, - LinkNode const *lnode) const; + bool checkOutcome(StochasticNode const *snode) const; /** * Returns a newly allocated object of class Linear */ GLMMethod *newMethod(GraphView const *view, - std::vector const &sub_views, + std::vector const &sub_views, unsigned int chain) const; /** * Checks that the candidate node is scalar @@ -38,6 +37,6 @@ bool canSample(StochasticNode const *snode) const; }; -} +}} #endif /* LINEAR_GIBBS_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/Linear.h jags-4.0.0/src/modules/glm/samplers/Linear.h --- jags-3.4.0/src/modules/glm/samplers/Linear.h 2011-11-10 14:25:35.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/Linear.h 2015-02-22 08:33:05.000000000 +0000 @@ -3,6 +3,7 @@ #include "GLMMethod.h" +namespace jags { namespace glm { /** @@ -21,7 +22,8 @@ * joint posterior */ Linear(GraphView const *view, - std::vector const &sub_views, + std::vector const &sub_views, + std::vector const &outcomes, unsigned int chain, bool gibbs); /** * Returns the precision of the outcome variable with index i @@ -36,13 +38,8 @@ * on the value of the parameter "gibbs" in the constructor. */ void update(RNG *rng); - /** - * Returns "Linear" or "LinearGibbs" depending on the value of the - * parameter "gibbs" in the constructor - */ - std::string name() const; }; -} +}} #endif /* LINEAR_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/Makefile.am jags-4.0.0/src/modules/glm/samplers/Makefile.am --- jags-3.4.0/src/modules/glm/samplers/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/Makefile.am 2015-09-27 11:40:27.000000000 +0000 @@ -1,24 +1,25 @@ -noinst_LTLIBRARIES = glmsampler.la +noinst_LTLIBRARIES = libglmsampler.la -glmsampler_la_CPPFLAGS = -I$(top_srcdir)/src/include \ +libglmsampler_la_CPPFLAGS = -I$(top_srcdir)/src/include \ -I$(top_srcdir)/src/modules/glm/CSparse \ -I$(top_srcdir)/src/modules/glm/SSparse/UFconfig \ -I$(top_srcdir)/src/modules/glm/SSparse/CHOLMOD/Include -glmsampler_la_LDFLAGS = -no-undefined -module -avoid-version +libglmsampler_la_SOURCES = GLMFactory.cc GLMSampler.cc GLMMethod.cc \ + LinearFactory.cc LinearGibbsFactory.cc Linear.cc BinaryFactory.cc \ + KS.cc AlbertChibFactory.cc AlbertChibGibbsFactory.cc AlbertChib.cc \ + IWLSFactory.cc IWLS.cc LGMix.cc AuxMixPoisson.cc AuxMixBinomial.cc \ + AMMethod.cc AMFactory.cc Outcome.cc NormalLinear.cc BinaryProbit.cc \ + BinaryLogit.cc Classify.cc IWLSOutcome.cc -glmsampler_la_SOURCES = GLMFactory.cc GLMSampler.cc GLMMethod.cc \ -LinearFactory.cc LinearGibbsFactory.cc Linear.cc BinaryFactory.cc \ -BinaryGLM.cc KS.cc AlbertChibFactory.cc AlbertChibGibbsFactory.cc \ -AlbertChib.cc HolmesHeldFactory.cc HolmesHeld.cc IWLSFactory.cc \ -IWLS.cc LGMix.cc AuxMix.cc AuxMixPoisson.cc AuxMixBinomial.cc \ -AuxMixNormal.cc AMMethod.cc AMFactory.cc ConjugateFMethod.cc \ -ConjugateFSampler.cc ConjugateFFactory.cc - -noinst_HEADERS = GLMFactory.h GLMSampler.h GLMMethod.h LinearFactory.h \ -LinearGibbsFactory.h Linear.h BinaryFactory.h BinaryGLM.h KS.h \ -AlbertChibFactory.h AlbertChibGibbsFactory.h AlbertChib.h \ -HolmesHeldFactory.h HolmesHeld.h IWLSFactory.h IWLS.h LGMix.h AuxMix.h \ -AuxMixPoisson.h AuxMixBinomial.h AuxMixNormal.h AMMethod.h AMFactory.h \ -ConjugateFMethod.h ConjugateFSampler.h ConjugateFFactory.h +noinst_HEADERS = GLMFactory.h GLMSampler.h GLMMethod.h \ + LinearFactory.h LinearGibbsFactory.h Linear.h BinaryFactory.h KS.h \ + AlbertChibFactory.h AlbertChibGibbsFactory.h AlbertChib.h \ + IWLSFactory.h IWLS.h LGMix.h AuxMixPoisson.h AuxMixBinomial.h \ + AMMethod.h AMFactory.h Outcome.h NormalLinear.h BinaryProbit.h \ + BinaryLogit.h Classify.h IWLSOutcome.h +check_LTLIBRARIES = libglmsamptest.la +libglmsamptest_la_SOURCES = testglmsamp.cc testglmsamp.h +libglmsamptest_la_CPPFLAGS = -I$(top_srcdir)/src/include +libglmsamptest_la_CXXFLAGS = $(CPPUNIT_CFLAGS) diff -Nru jags-3.4.0/src/modules/glm/samplers/Makefile.in jags-4.0.0/src/modules/glm/samplers/Makefile.in --- jags-3.4.0/src/modules/glm/samplers/Makefile.in 2013-08-30 13:23:29.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/glm/samplers -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,58 +99,127 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) -glmsampler_la_LIBADD = -am_glmsampler_la_OBJECTS = glmsampler_la-GLMFactory.lo \ - glmsampler_la-GLMSampler.lo glmsampler_la-GLMMethod.lo \ - glmsampler_la-LinearFactory.lo \ - glmsampler_la-LinearGibbsFactory.lo glmsampler_la-Linear.lo \ - glmsampler_la-BinaryFactory.lo glmsampler_la-BinaryGLM.lo \ - glmsampler_la-KS.lo glmsampler_la-AlbertChibFactory.lo \ - glmsampler_la-AlbertChibGibbsFactory.lo \ - glmsampler_la-AlbertChib.lo glmsampler_la-HolmesHeldFactory.lo \ - glmsampler_la-HolmesHeld.lo glmsampler_la-IWLSFactory.lo \ - glmsampler_la-IWLS.lo glmsampler_la-LGMix.lo \ - glmsampler_la-AuxMix.lo glmsampler_la-AuxMixPoisson.lo \ - glmsampler_la-AuxMixBinomial.lo glmsampler_la-AuxMixNormal.lo \ - glmsampler_la-AMMethod.lo glmsampler_la-AMFactory.lo \ - glmsampler_la-ConjugateFMethod.lo \ - glmsampler_la-ConjugateFSampler.lo \ - glmsampler_la-ConjugateFFactory.lo -glmsampler_la_OBJECTS = $(am_glmsampler_la_OBJECTS) -glmsampler_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ - $(CXXFLAGS) $(glmsampler_la_LDFLAGS) $(LDFLAGS) -o $@ +libglmsampler_la_LIBADD = +am_libglmsampler_la_OBJECTS = libglmsampler_la-GLMFactory.lo \ + libglmsampler_la-GLMSampler.lo libglmsampler_la-GLMMethod.lo \ + libglmsampler_la-LinearFactory.lo \ + libglmsampler_la-LinearGibbsFactory.lo \ + libglmsampler_la-Linear.lo libglmsampler_la-BinaryFactory.lo \ + libglmsampler_la-KS.lo libglmsampler_la-AlbertChibFactory.lo \ + libglmsampler_la-AlbertChibGibbsFactory.lo \ + libglmsampler_la-AlbertChib.lo libglmsampler_la-IWLSFactory.lo \ + libglmsampler_la-IWLS.lo libglmsampler_la-LGMix.lo \ + libglmsampler_la-AuxMixPoisson.lo \ + libglmsampler_la-AuxMixBinomial.lo \ + libglmsampler_la-AMMethod.lo libglmsampler_la-AMFactory.lo \ + libglmsampler_la-Outcome.lo libglmsampler_la-NormalLinear.lo \ + libglmsampler_la-BinaryProbit.lo \ + libglmsampler_la-BinaryLogit.lo libglmsampler_la-Classify.lo \ + libglmsampler_la-IWLSOutcome.lo +libglmsampler_la_OBJECTS = $(am_libglmsampler_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libglmsamptest_la_LIBADD = +am_libglmsamptest_la_OBJECTS = libglmsamptest_la-testglmsamp.lo +libglmsamptest_la_OBJECTS = $(am_libglmsamptest_la_OBJECTS) +libglmsamptest_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ + $(libglmsamptest_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(glmsampler_la_SOURCES) -DIST_SOURCES = $(glmsampler_la_SOURCES) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libglmsampler_la_SOURCES) $(libglmsamptest_la_SOURCES) +DIST_SOURCES = $(libglmsampler_la_SOURCES) \ + $(libglmsamptest_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -129,6 +233,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -198,10 +305,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -267,28 +370,30 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -noinst_LTLIBRARIES = glmsampler.la -glmsampler_la_CPPFLAGS = -I$(top_srcdir)/src/include \ +noinst_LTLIBRARIES = libglmsampler.la +libglmsampler_la_CPPFLAGS = -I$(top_srcdir)/src/include \ -I$(top_srcdir)/src/modules/glm/CSparse \ -I$(top_srcdir)/src/modules/glm/SSparse/UFconfig \ -I$(top_srcdir)/src/modules/glm/SSparse/CHOLMOD/Include -glmsampler_la_LDFLAGS = -no-undefined -module -avoid-version -glmsampler_la_SOURCES = GLMFactory.cc GLMSampler.cc GLMMethod.cc \ -LinearFactory.cc LinearGibbsFactory.cc Linear.cc BinaryFactory.cc \ -BinaryGLM.cc KS.cc AlbertChibFactory.cc AlbertChibGibbsFactory.cc \ -AlbertChib.cc HolmesHeldFactory.cc HolmesHeld.cc IWLSFactory.cc \ -IWLS.cc LGMix.cc AuxMix.cc AuxMixPoisson.cc AuxMixBinomial.cc \ -AuxMixNormal.cc AMMethod.cc AMFactory.cc ConjugateFMethod.cc \ -ConjugateFSampler.cc ConjugateFFactory.cc - -noinst_HEADERS = GLMFactory.h GLMSampler.h GLMMethod.h LinearFactory.h \ -LinearGibbsFactory.h Linear.h BinaryFactory.h BinaryGLM.h KS.h \ -AlbertChibFactory.h AlbertChibGibbsFactory.h AlbertChib.h \ -HolmesHeldFactory.h HolmesHeld.h IWLSFactory.h IWLS.h LGMix.h AuxMix.h \ -AuxMixPoisson.h AuxMixBinomial.h AuxMixNormal.h AMMethod.h AMFactory.h \ -ConjugateFMethod.h ConjugateFSampler.h ConjugateFFactory.h - +libglmsampler_la_SOURCES = GLMFactory.cc GLMSampler.cc GLMMethod.cc \ + LinearFactory.cc LinearGibbsFactory.cc Linear.cc BinaryFactory.cc \ + KS.cc AlbertChibFactory.cc AlbertChibGibbsFactory.cc AlbertChib.cc \ + IWLSFactory.cc IWLS.cc LGMix.cc AuxMixPoisson.cc AuxMixBinomial.cc \ + AMMethod.cc AMFactory.cc Outcome.cc NormalLinear.cc BinaryProbit.cc \ + BinaryLogit.cc Classify.cc IWLSOutcome.cc + +noinst_HEADERS = GLMFactory.h GLMSampler.h GLMMethod.h \ + LinearFactory.h LinearGibbsFactory.h Linear.h BinaryFactory.h KS.h \ + AlbertChibFactory.h AlbertChibGibbsFactory.h AlbertChib.h \ + IWLSFactory.h IWLS.h LGMix.h AuxMixPoisson.h AuxMixBinomial.h \ + AMMethod.h AMFactory.h Outcome.h NormalLinear.h BinaryProbit.h \ + BinaryLogit.h Classify.h IWLSOutcome.h + +check_LTLIBRARIES = libglmsamptest.la +libglmsamptest_la_SOURCES = testglmsamp.cc testglmsamp.h +libglmsamptest_la_CPPFLAGS = -I$(top_srcdir)/src/include +libglmsamptest_la_CXXFLAGS = $(CPPUNIT_CFLAGS) all: all-am .SUFFIXES: @@ -305,7 +410,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/glm/samplers/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/glm/samplers/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -324,16 +428,33 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): +clean-checkLTLIBRARIES: + -test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES) + @list='$(check_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -glmsampler.la: $(glmsampler_la_OBJECTS) $(glmsampler_la_DEPENDENCIES) $(EXTRA_glmsampler_la_DEPENDENCIES) - $(glmsampler_la_LINK) $(glmsampler_la_OBJECTS) $(glmsampler_la_LIBADD) $(LIBS) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libglmsampler.la: $(libglmsampler_la_OBJECTS) $(libglmsampler_la_DEPENDENCIES) $(EXTRA_libglmsampler_la_DEPENDENCIES) + $(AM_V_CXXLD)$(CXXLINK) $(libglmsampler_la_OBJECTS) $(libglmsampler_la_LIBADD) $(LIBS) + +libglmsamptest.la: $(libglmsamptest_la_OBJECTS) $(libglmsamptest_la_DEPENDENCIES) $(EXTRA_libglmsamptest_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libglmsamptest_la_LINK) $(libglmsamptest_la_OBJECTS) $(libglmsamptest_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -341,235 +462,230 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-AMFactory.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-AMMethod.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-AlbertChib.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-AlbertChibFactory.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-AlbertChibGibbsFactory.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-AuxMix.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-AuxMixBinomial.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-AuxMixNormal.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-AuxMixPoisson.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-BinaryFactory.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-BinaryGLM.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-ConjugateFFactory.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-ConjugateFMethod.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-ConjugateFSampler.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-GLMFactory.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-GLMMethod.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-GLMSampler.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-HolmesHeld.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-HolmesHeldFactory.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-IWLS.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-IWLSFactory.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-KS.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-LGMix.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-Linear.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-LinearFactory.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmsampler_la-LinearGibbsFactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-AMFactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-AMMethod.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-AlbertChib.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-AlbertChibFactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-AlbertChibGibbsFactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-AuxMixBinomial.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-AuxMixPoisson.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-BinaryFactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-BinaryLogit.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-BinaryProbit.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-Classify.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-GLMFactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-GLMMethod.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-GLMSampler.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-IWLS.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-IWLSFactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-IWLSOutcome.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-KS.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-LGMix.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-Linear.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-LinearFactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-LinearGibbsFactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-NormalLinear.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsampler_la-Outcome.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglmsamptest_la-testglmsamp.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< -glmsampler_la-GLMFactory.lo: GLMFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-GLMFactory.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-GLMFactory.Tpo -c -o glmsampler_la-GLMFactory.lo `test -f 'GLMFactory.cc' || echo '$(srcdir)/'`GLMFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-GLMFactory.Tpo $(DEPDIR)/glmsampler_la-GLMFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GLMFactory.cc' object='glmsampler_la-GLMFactory.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-GLMFactory.lo: GLMFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-GLMFactory.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-GLMFactory.Tpo -c -o libglmsampler_la-GLMFactory.lo `test -f 'GLMFactory.cc' || echo '$(srcdir)/'`GLMFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-GLMFactory.Tpo $(DEPDIR)/libglmsampler_la-GLMFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GLMFactory.cc' object='libglmsampler_la-GLMFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-GLMFactory.lo `test -f 'GLMFactory.cc' || echo '$(srcdir)/'`GLMFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-GLMFactory.lo `test -f 'GLMFactory.cc' || echo '$(srcdir)/'`GLMFactory.cc -glmsampler_la-GLMSampler.lo: GLMSampler.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-GLMSampler.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-GLMSampler.Tpo -c -o glmsampler_la-GLMSampler.lo `test -f 'GLMSampler.cc' || echo '$(srcdir)/'`GLMSampler.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-GLMSampler.Tpo $(DEPDIR)/glmsampler_la-GLMSampler.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GLMSampler.cc' object='glmsampler_la-GLMSampler.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-GLMSampler.lo: GLMSampler.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-GLMSampler.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-GLMSampler.Tpo -c -o libglmsampler_la-GLMSampler.lo `test -f 'GLMSampler.cc' || echo '$(srcdir)/'`GLMSampler.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-GLMSampler.Tpo $(DEPDIR)/libglmsampler_la-GLMSampler.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GLMSampler.cc' object='libglmsampler_la-GLMSampler.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-GLMSampler.lo `test -f 'GLMSampler.cc' || echo '$(srcdir)/'`GLMSampler.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-GLMSampler.lo `test -f 'GLMSampler.cc' || echo '$(srcdir)/'`GLMSampler.cc -glmsampler_la-GLMMethod.lo: GLMMethod.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-GLMMethod.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-GLMMethod.Tpo -c -o glmsampler_la-GLMMethod.lo `test -f 'GLMMethod.cc' || echo '$(srcdir)/'`GLMMethod.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-GLMMethod.Tpo $(DEPDIR)/glmsampler_la-GLMMethod.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GLMMethod.cc' object='glmsampler_la-GLMMethod.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-GLMMethod.lo: GLMMethod.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-GLMMethod.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-GLMMethod.Tpo -c -o libglmsampler_la-GLMMethod.lo `test -f 'GLMMethod.cc' || echo '$(srcdir)/'`GLMMethod.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-GLMMethod.Tpo $(DEPDIR)/libglmsampler_la-GLMMethod.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GLMMethod.cc' object='libglmsampler_la-GLMMethod.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-GLMMethod.lo `test -f 'GLMMethod.cc' || echo '$(srcdir)/'`GLMMethod.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-GLMMethod.lo `test -f 'GLMMethod.cc' || echo '$(srcdir)/'`GLMMethod.cc -glmsampler_la-LinearFactory.lo: LinearFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-LinearFactory.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-LinearFactory.Tpo -c -o glmsampler_la-LinearFactory.lo `test -f 'LinearFactory.cc' || echo '$(srcdir)/'`LinearFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-LinearFactory.Tpo $(DEPDIR)/glmsampler_la-LinearFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='LinearFactory.cc' object='glmsampler_la-LinearFactory.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-LinearFactory.lo: LinearFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-LinearFactory.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-LinearFactory.Tpo -c -o libglmsampler_la-LinearFactory.lo `test -f 'LinearFactory.cc' || echo '$(srcdir)/'`LinearFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-LinearFactory.Tpo $(DEPDIR)/libglmsampler_la-LinearFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='LinearFactory.cc' object='libglmsampler_la-LinearFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-LinearFactory.lo `test -f 'LinearFactory.cc' || echo '$(srcdir)/'`LinearFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-LinearFactory.lo `test -f 'LinearFactory.cc' || echo '$(srcdir)/'`LinearFactory.cc -glmsampler_la-LinearGibbsFactory.lo: LinearGibbsFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-LinearGibbsFactory.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-LinearGibbsFactory.Tpo -c -o glmsampler_la-LinearGibbsFactory.lo `test -f 'LinearGibbsFactory.cc' || echo '$(srcdir)/'`LinearGibbsFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-LinearGibbsFactory.Tpo $(DEPDIR)/glmsampler_la-LinearGibbsFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='LinearGibbsFactory.cc' object='glmsampler_la-LinearGibbsFactory.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-LinearGibbsFactory.lo: LinearGibbsFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-LinearGibbsFactory.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-LinearGibbsFactory.Tpo -c -o libglmsampler_la-LinearGibbsFactory.lo `test -f 'LinearGibbsFactory.cc' || echo '$(srcdir)/'`LinearGibbsFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-LinearGibbsFactory.Tpo $(DEPDIR)/libglmsampler_la-LinearGibbsFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='LinearGibbsFactory.cc' object='libglmsampler_la-LinearGibbsFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-LinearGibbsFactory.lo `test -f 'LinearGibbsFactory.cc' || echo '$(srcdir)/'`LinearGibbsFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-LinearGibbsFactory.lo `test -f 'LinearGibbsFactory.cc' || echo '$(srcdir)/'`LinearGibbsFactory.cc -glmsampler_la-Linear.lo: Linear.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-Linear.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-Linear.Tpo -c -o glmsampler_la-Linear.lo `test -f 'Linear.cc' || echo '$(srcdir)/'`Linear.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-Linear.Tpo $(DEPDIR)/glmsampler_la-Linear.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Linear.cc' object='glmsampler_la-Linear.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-Linear.lo: Linear.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-Linear.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-Linear.Tpo -c -o libglmsampler_la-Linear.lo `test -f 'Linear.cc' || echo '$(srcdir)/'`Linear.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-Linear.Tpo $(DEPDIR)/libglmsampler_la-Linear.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Linear.cc' object='libglmsampler_la-Linear.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-Linear.lo `test -f 'Linear.cc' || echo '$(srcdir)/'`Linear.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-Linear.lo `test -f 'Linear.cc' || echo '$(srcdir)/'`Linear.cc -glmsampler_la-BinaryFactory.lo: BinaryFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-BinaryFactory.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-BinaryFactory.Tpo -c -o glmsampler_la-BinaryFactory.lo `test -f 'BinaryFactory.cc' || echo '$(srcdir)/'`BinaryFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-BinaryFactory.Tpo $(DEPDIR)/glmsampler_la-BinaryFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='BinaryFactory.cc' object='glmsampler_la-BinaryFactory.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-BinaryFactory.lo: BinaryFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-BinaryFactory.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-BinaryFactory.Tpo -c -o libglmsampler_la-BinaryFactory.lo `test -f 'BinaryFactory.cc' || echo '$(srcdir)/'`BinaryFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-BinaryFactory.Tpo $(DEPDIR)/libglmsampler_la-BinaryFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='BinaryFactory.cc' object='libglmsampler_la-BinaryFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-BinaryFactory.lo `test -f 'BinaryFactory.cc' || echo '$(srcdir)/'`BinaryFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-BinaryFactory.lo `test -f 'BinaryFactory.cc' || echo '$(srcdir)/'`BinaryFactory.cc -glmsampler_la-BinaryGLM.lo: BinaryGLM.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-BinaryGLM.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-BinaryGLM.Tpo -c -o glmsampler_la-BinaryGLM.lo `test -f 'BinaryGLM.cc' || echo '$(srcdir)/'`BinaryGLM.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-BinaryGLM.Tpo $(DEPDIR)/glmsampler_la-BinaryGLM.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='BinaryGLM.cc' object='glmsampler_la-BinaryGLM.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-KS.lo: KS.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-KS.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-KS.Tpo -c -o libglmsampler_la-KS.lo `test -f 'KS.cc' || echo '$(srcdir)/'`KS.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-KS.Tpo $(DEPDIR)/libglmsampler_la-KS.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='KS.cc' object='libglmsampler_la-KS.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-BinaryGLM.lo `test -f 'BinaryGLM.cc' || echo '$(srcdir)/'`BinaryGLM.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-KS.lo `test -f 'KS.cc' || echo '$(srcdir)/'`KS.cc -glmsampler_la-KS.lo: KS.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-KS.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-KS.Tpo -c -o glmsampler_la-KS.lo `test -f 'KS.cc' || echo '$(srcdir)/'`KS.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-KS.Tpo $(DEPDIR)/glmsampler_la-KS.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='KS.cc' object='glmsampler_la-KS.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-AlbertChibFactory.lo: AlbertChibFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-AlbertChibFactory.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-AlbertChibFactory.Tpo -c -o libglmsampler_la-AlbertChibFactory.lo `test -f 'AlbertChibFactory.cc' || echo '$(srcdir)/'`AlbertChibFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-AlbertChibFactory.Tpo $(DEPDIR)/libglmsampler_la-AlbertChibFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='AlbertChibFactory.cc' object='libglmsampler_la-AlbertChibFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-KS.lo `test -f 'KS.cc' || echo '$(srcdir)/'`KS.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-AlbertChibFactory.lo `test -f 'AlbertChibFactory.cc' || echo '$(srcdir)/'`AlbertChibFactory.cc -glmsampler_la-AlbertChibFactory.lo: AlbertChibFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-AlbertChibFactory.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-AlbertChibFactory.Tpo -c -o glmsampler_la-AlbertChibFactory.lo `test -f 'AlbertChibFactory.cc' || echo '$(srcdir)/'`AlbertChibFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-AlbertChibFactory.Tpo $(DEPDIR)/glmsampler_la-AlbertChibFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='AlbertChibFactory.cc' object='glmsampler_la-AlbertChibFactory.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-AlbertChibGibbsFactory.lo: AlbertChibGibbsFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-AlbertChibGibbsFactory.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-AlbertChibGibbsFactory.Tpo -c -o libglmsampler_la-AlbertChibGibbsFactory.lo `test -f 'AlbertChibGibbsFactory.cc' || echo '$(srcdir)/'`AlbertChibGibbsFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-AlbertChibGibbsFactory.Tpo $(DEPDIR)/libglmsampler_la-AlbertChibGibbsFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='AlbertChibGibbsFactory.cc' object='libglmsampler_la-AlbertChibGibbsFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-AlbertChibFactory.lo `test -f 'AlbertChibFactory.cc' || echo '$(srcdir)/'`AlbertChibFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-AlbertChibGibbsFactory.lo `test -f 'AlbertChibGibbsFactory.cc' || echo '$(srcdir)/'`AlbertChibGibbsFactory.cc -glmsampler_la-AlbertChibGibbsFactory.lo: AlbertChibGibbsFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-AlbertChibGibbsFactory.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-AlbertChibGibbsFactory.Tpo -c -o glmsampler_la-AlbertChibGibbsFactory.lo `test -f 'AlbertChibGibbsFactory.cc' || echo '$(srcdir)/'`AlbertChibGibbsFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-AlbertChibGibbsFactory.Tpo $(DEPDIR)/glmsampler_la-AlbertChibGibbsFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='AlbertChibGibbsFactory.cc' object='glmsampler_la-AlbertChibGibbsFactory.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-AlbertChib.lo: AlbertChib.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-AlbertChib.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-AlbertChib.Tpo -c -o libglmsampler_la-AlbertChib.lo `test -f 'AlbertChib.cc' || echo '$(srcdir)/'`AlbertChib.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-AlbertChib.Tpo $(DEPDIR)/libglmsampler_la-AlbertChib.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='AlbertChib.cc' object='libglmsampler_la-AlbertChib.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-AlbertChibGibbsFactory.lo `test -f 'AlbertChibGibbsFactory.cc' || echo '$(srcdir)/'`AlbertChibGibbsFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-AlbertChib.lo `test -f 'AlbertChib.cc' || echo '$(srcdir)/'`AlbertChib.cc -glmsampler_la-AlbertChib.lo: AlbertChib.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-AlbertChib.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-AlbertChib.Tpo -c -o glmsampler_la-AlbertChib.lo `test -f 'AlbertChib.cc' || echo '$(srcdir)/'`AlbertChib.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-AlbertChib.Tpo $(DEPDIR)/glmsampler_la-AlbertChib.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='AlbertChib.cc' object='glmsampler_la-AlbertChib.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-IWLSFactory.lo: IWLSFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-IWLSFactory.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-IWLSFactory.Tpo -c -o libglmsampler_la-IWLSFactory.lo `test -f 'IWLSFactory.cc' || echo '$(srcdir)/'`IWLSFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-IWLSFactory.Tpo $(DEPDIR)/libglmsampler_la-IWLSFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IWLSFactory.cc' object='libglmsampler_la-IWLSFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-AlbertChib.lo `test -f 'AlbertChib.cc' || echo '$(srcdir)/'`AlbertChib.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-IWLSFactory.lo `test -f 'IWLSFactory.cc' || echo '$(srcdir)/'`IWLSFactory.cc -glmsampler_la-HolmesHeldFactory.lo: HolmesHeldFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-HolmesHeldFactory.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-HolmesHeldFactory.Tpo -c -o glmsampler_la-HolmesHeldFactory.lo `test -f 'HolmesHeldFactory.cc' || echo '$(srcdir)/'`HolmesHeldFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-HolmesHeldFactory.Tpo $(DEPDIR)/glmsampler_la-HolmesHeldFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HolmesHeldFactory.cc' object='glmsampler_la-HolmesHeldFactory.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-IWLS.lo: IWLS.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-IWLS.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-IWLS.Tpo -c -o libglmsampler_la-IWLS.lo `test -f 'IWLS.cc' || echo '$(srcdir)/'`IWLS.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-IWLS.Tpo $(DEPDIR)/libglmsampler_la-IWLS.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IWLS.cc' object='libglmsampler_la-IWLS.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-HolmesHeldFactory.lo `test -f 'HolmesHeldFactory.cc' || echo '$(srcdir)/'`HolmesHeldFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-IWLS.lo `test -f 'IWLS.cc' || echo '$(srcdir)/'`IWLS.cc -glmsampler_la-HolmesHeld.lo: HolmesHeld.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-HolmesHeld.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-HolmesHeld.Tpo -c -o glmsampler_la-HolmesHeld.lo `test -f 'HolmesHeld.cc' || echo '$(srcdir)/'`HolmesHeld.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-HolmesHeld.Tpo $(DEPDIR)/glmsampler_la-HolmesHeld.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HolmesHeld.cc' object='glmsampler_la-HolmesHeld.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-LGMix.lo: LGMix.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-LGMix.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-LGMix.Tpo -c -o libglmsampler_la-LGMix.lo `test -f 'LGMix.cc' || echo '$(srcdir)/'`LGMix.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-LGMix.Tpo $(DEPDIR)/libglmsampler_la-LGMix.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='LGMix.cc' object='libglmsampler_la-LGMix.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-HolmesHeld.lo `test -f 'HolmesHeld.cc' || echo '$(srcdir)/'`HolmesHeld.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-LGMix.lo `test -f 'LGMix.cc' || echo '$(srcdir)/'`LGMix.cc -glmsampler_la-IWLSFactory.lo: IWLSFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-IWLSFactory.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-IWLSFactory.Tpo -c -o glmsampler_la-IWLSFactory.lo `test -f 'IWLSFactory.cc' || echo '$(srcdir)/'`IWLSFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-IWLSFactory.Tpo $(DEPDIR)/glmsampler_la-IWLSFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='IWLSFactory.cc' object='glmsampler_la-IWLSFactory.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-AuxMixPoisson.lo: AuxMixPoisson.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-AuxMixPoisson.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-AuxMixPoisson.Tpo -c -o libglmsampler_la-AuxMixPoisson.lo `test -f 'AuxMixPoisson.cc' || echo '$(srcdir)/'`AuxMixPoisson.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-AuxMixPoisson.Tpo $(DEPDIR)/libglmsampler_la-AuxMixPoisson.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='AuxMixPoisson.cc' object='libglmsampler_la-AuxMixPoisson.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-IWLSFactory.lo `test -f 'IWLSFactory.cc' || echo '$(srcdir)/'`IWLSFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-AuxMixPoisson.lo `test -f 'AuxMixPoisson.cc' || echo '$(srcdir)/'`AuxMixPoisson.cc -glmsampler_la-IWLS.lo: IWLS.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-IWLS.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-IWLS.Tpo -c -o glmsampler_la-IWLS.lo `test -f 'IWLS.cc' || echo '$(srcdir)/'`IWLS.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-IWLS.Tpo $(DEPDIR)/glmsampler_la-IWLS.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='IWLS.cc' object='glmsampler_la-IWLS.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-AuxMixBinomial.lo: AuxMixBinomial.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-AuxMixBinomial.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-AuxMixBinomial.Tpo -c -o libglmsampler_la-AuxMixBinomial.lo `test -f 'AuxMixBinomial.cc' || echo '$(srcdir)/'`AuxMixBinomial.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-AuxMixBinomial.Tpo $(DEPDIR)/libglmsampler_la-AuxMixBinomial.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='AuxMixBinomial.cc' object='libglmsampler_la-AuxMixBinomial.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-IWLS.lo `test -f 'IWLS.cc' || echo '$(srcdir)/'`IWLS.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-AuxMixBinomial.lo `test -f 'AuxMixBinomial.cc' || echo '$(srcdir)/'`AuxMixBinomial.cc -glmsampler_la-LGMix.lo: LGMix.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-LGMix.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-LGMix.Tpo -c -o glmsampler_la-LGMix.lo `test -f 'LGMix.cc' || echo '$(srcdir)/'`LGMix.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-LGMix.Tpo $(DEPDIR)/glmsampler_la-LGMix.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='LGMix.cc' object='glmsampler_la-LGMix.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-AMMethod.lo: AMMethod.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-AMMethod.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-AMMethod.Tpo -c -o libglmsampler_la-AMMethod.lo `test -f 'AMMethod.cc' || echo '$(srcdir)/'`AMMethod.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-AMMethod.Tpo $(DEPDIR)/libglmsampler_la-AMMethod.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='AMMethod.cc' object='libglmsampler_la-AMMethod.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-LGMix.lo `test -f 'LGMix.cc' || echo '$(srcdir)/'`LGMix.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-AMMethod.lo `test -f 'AMMethod.cc' || echo '$(srcdir)/'`AMMethod.cc -glmsampler_la-AuxMix.lo: AuxMix.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-AuxMix.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-AuxMix.Tpo -c -o glmsampler_la-AuxMix.lo `test -f 'AuxMix.cc' || echo '$(srcdir)/'`AuxMix.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-AuxMix.Tpo $(DEPDIR)/glmsampler_la-AuxMix.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='AuxMix.cc' object='glmsampler_la-AuxMix.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-AMFactory.lo: AMFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-AMFactory.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-AMFactory.Tpo -c -o libglmsampler_la-AMFactory.lo `test -f 'AMFactory.cc' || echo '$(srcdir)/'`AMFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-AMFactory.Tpo $(DEPDIR)/libglmsampler_la-AMFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='AMFactory.cc' object='libglmsampler_la-AMFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-AuxMix.lo `test -f 'AuxMix.cc' || echo '$(srcdir)/'`AuxMix.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-AMFactory.lo `test -f 'AMFactory.cc' || echo '$(srcdir)/'`AMFactory.cc -glmsampler_la-AuxMixPoisson.lo: AuxMixPoisson.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-AuxMixPoisson.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-AuxMixPoisson.Tpo -c -o glmsampler_la-AuxMixPoisson.lo `test -f 'AuxMixPoisson.cc' || echo '$(srcdir)/'`AuxMixPoisson.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-AuxMixPoisson.Tpo $(DEPDIR)/glmsampler_la-AuxMixPoisson.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='AuxMixPoisson.cc' object='glmsampler_la-AuxMixPoisson.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-Outcome.lo: Outcome.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-Outcome.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-Outcome.Tpo -c -o libglmsampler_la-Outcome.lo `test -f 'Outcome.cc' || echo '$(srcdir)/'`Outcome.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-Outcome.Tpo $(DEPDIR)/libglmsampler_la-Outcome.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Outcome.cc' object='libglmsampler_la-Outcome.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-AuxMixPoisson.lo `test -f 'AuxMixPoisson.cc' || echo '$(srcdir)/'`AuxMixPoisson.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-Outcome.lo `test -f 'Outcome.cc' || echo '$(srcdir)/'`Outcome.cc -glmsampler_la-AuxMixBinomial.lo: AuxMixBinomial.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-AuxMixBinomial.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-AuxMixBinomial.Tpo -c -o glmsampler_la-AuxMixBinomial.lo `test -f 'AuxMixBinomial.cc' || echo '$(srcdir)/'`AuxMixBinomial.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-AuxMixBinomial.Tpo $(DEPDIR)/glmsampler_la-AuxMixBinomial.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='AuxMixBinomial.cc' object='glmsampler_la-AuxMixBinomial.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-NormalLinear.lo: NormalLinear.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-NormalLinear.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-NormalLinear.Tpo -c -o libglmsampler_la-NormalLinear.lo `test -f 'NormalLinear.cc' || echo '$(srcdir)/'`NormalLinear.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-NormalLinear.Tpo $(DEPDIR)/libglmsampler_la-NormalLinear.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='NormalLinear.cc' object='libglmsampler_la-NormalLinear.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-AuxMixBinomial.lo `test -f 'AuxMixBinomial.cc' || echo '$(srcdir)/'`AuxMixBinomial.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-NormalLinear.lo `test -f 'NormalLinear.cc' || echo '$(srcdir)/'`NormalLinear.cc -glmsampler_la-AuxMixNormal.lo: AuxMixNormal.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-AuxMixNormal.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-AuxMixNormal.Tpo -c -o glmsampler_la-AuxMixNormal.lo `test -f 'AuxMixNormal.cc' || echo '$(srcdir)/'`AuxMixNormal.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-AuxMixNormal.Tpo $(DEPDIR)/glmsampler_la-AuxMixNormal.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='AuxMixNormal.cc' object='glmsampler_la-AuxMixNormal.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-BinaryProbit.lo: BinaryProbit.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-BinaryProbit.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-BinaryProbit.Tpo -c -o libglmsampler_la-BinaryProbit.lo `test -f 'BinaryProbit.cc' || echo '$(srcdir)/'`BinaryProbit.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-BinaryProbit.Tpo $(DEPDIR)/libglmsampler_la-BinaryProbit.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='BinaryProbit.cc' object='libglmsampler_la-BinaryProbit.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-AuxMixNormal.lo `test -f 'AuxMixNormal.cc' || echo '$(srcdir)/'`AuxMixNormal.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-BinaryProbit.lo `test -f 'BinaryProbit.cc' || echo '$(srcdir)/'`BinaryProbit.cc -glmsampler_la-AMMethod.lo: AMMethod.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-AMMethod.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-AMMethod.Tpo -c -o glmsampler_la-AMMethod.lo `test -f 'AMMethod.cc' || echo '$(srcdir)/'`AMMethod.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-AMMethod.Tpo $(DEPDIR)/glmsampler_la-AMMethod.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='AMMethod.cc' object='glmsampler_la-AMMethod.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-BinaryLogit.lo: BinaryLogit.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-BinaryLogit.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-BinaryLogit.Tpo -c -o libglmsampler_la-BinaryLogit.lo `test -f 'BinaryLogit.cc' || echo '$(srcdir)/'`BinaryLogit.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-BinaryLogit.Tpo $(DEPDIR)/libglmsampler_la-BinaryLogit.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='BinaryLogit.cc' object='libglmsampler_la-BinaryLogit.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-AMMethod.lo `test -f 'AMMethod.cc' || echo '$(srcdir)/'`AMMethod.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-BinaryLogit.lo `test -f 'BinaryLogit.cc' || echo '$(srcdir)/'`BinaryLogit.cc -glmsampler_la-AMFactory.lo: AMFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-AMFactory.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-AMFactory.Tpo -c -o glmsampler_la-AMFactory.lo `test -f 'AMFactory.cc' || echo '$(srcdir)/'`AMFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-AMFactory.Tpo $(DEPDIR)/glmsampler_la-AMFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='AMFactory.cc' object='glmsampler_la-AMFactory.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-Classify.lo: Classify.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-Classify.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-Classify.Tpo -c -o libglmsampler_la-Classify.lo `test -f 'Classify.cc' || echo '$(srcdir)/'`Classify.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-Classify.Tpo $(DEPDIR)/libglmsampler_la-Classify.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Classify.cc' object='libglmsampler_la-Classify.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-AMFactory.lo `test -f 'AMFactory.cc' || echo '$(srcdir)/'`AMFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-Classify.lo `test -f 'Classify.cc' || echo '$(srcdir)/'`Classify.cc -glmsampler_la-ConjugateFMethod.lo: ConjugateFMethod.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-ConjugateFMethod.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-ConjugateFMethod.Tpo -c -o glmsampler_la-ConjugateFMethod.lo `test -f 'ConjugateFMethod.cc' || echo '$(srcdir)/'`ConjugateFMethod.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-ConjugateFMethod.Tpo $(DEPDIR)/glmsampler_la-ConjugateFMethod.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ConjugateFMethod.cc' object='glmsampler_la-ConjugateFMethod.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsampler_la-IWLSOutcome.lo: IWLSOutcome.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libglmsampler_la-IWLSOutcome.lo -MD -MP -MF $(DEPDIR)/libglmsampler_la-IWLSOutcome.Tpo -c -o libglmsampler_la-IWLSOutcome.lo `test -f 'IWLSOutcome.cc' || echo '$(srcdir)/'`IWLSOutcome.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsampler_la-IWLSOutcome.Tpo $(DEPDIR)/libglmsampler_la-IWLSOutcome.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IWLSOutcome.cc' object='libglmsampler_la-IWLSOutcome.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-ConjugateFMethod.lo `test -f 'ConjugateFMethod.cc' || echo '$(srcdir)/'`ConjugateFMethod.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libglmsampler_la-IWLSOutcome.lo `test -f 'IWLSOutcome.cc' || echo '$(srcdir)/'`IWLSOutcome.cc -glmsampler_la-ConjugateFSampler.lo: ConjugateFSampler.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-ConjugateFSampler.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-ConjugateFSampler.Tpo -c -o glmsampler_la-ConjugateFSampler.lo `test -f 'ConjugateFSampler.cc' || echo '$(srcdir)/'`ConjugateFSampler.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-ConjugateFSampler.Tpo $(DEPDIR)/glmsampler_la-ConjugateFSampler.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ConjugateFSampler.cc' object='glmsampler_la-ConjugateFSampler.lo' libtool=yes @AMDEPBACKSLASH@ +libglmsamptest_la-testglmsamp.lo: testglmsamp.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsamptest_la_CPPFLAGS) $(CPPFLAGS) $(libglmsamptest_la_CXXFLAGS) $(CXXFLAGS) -MT libglmsamptest_la-testglmsamp.lo -MD -MP -MF $(DEPDIR)/libglmsamptest_la-testglmsamp.Tpo -c -o libglmsamptest_la-testglmsamp.lo `test -f 'testglmsamp.cc' || echo '$(srcdir)/'`testglmsamp.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libglmsamptest_la-testglmsamp.Tpo $(DEPDIR)/libglmsamptest_la-testglmsamp.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='testglmsamp.cc' object='libglmsamptest_la-testglmsamp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-ConjugateFSampler.lo `test -f 'ConjugateFSampler.cc' || echo '$(srcdir)/'`ConjugateFSampler.cc - -glmsampler_la-ConjugateFFactory.lo: ConjugateFFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT glmsampler_la-ConjugateFFactory.lo -MD -MP -MF $(DEPDIR)/glmsampler_la-ConjugateFFactory.Tpo -c -o glmsampler_la-ConjugateFFactory.lo `test -f 'ConjugateFFactory.cc' || echo '$(srcdir)/'`ConjugateFFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/glmsampler_la-ConjugateFFactory.Tpo $(DEPDIR)/glmsampler_la-ConjugateFFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ConjugateFFactory.cc' object='glmsampler_la-ConjugateFFactory.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glmsampler_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o glmsampler_la-ConjugateFFactory.lo `test -f 'ConjugateFFactory.cc' || echo '$(srcdir)/'`ConjugateFFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglmsamptest_la_CPPFLAGS) $(CPPFLAGS) $(libglmsamptest_la_CXXFLAGS) $(CXXFLAGS) -c -o libglmsamptest_la-testglmsamp.lo `test -f 'testglmsamp.cc' || echo '$(srcdir)/'`testglmsamp.cc mostlyclean-libtool: -rm -f *.lo @@ -577,26 +693,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -608,15 +713,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -625,6 +726,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -660,6 +776,7 @@ fi; \ done check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_LTLIBRARIES) check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: @@ -695,8 +812,8 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ - mostlyclean-am +clean-am: clean-checkLTLIBRARIES clean-generic clean-libtool \ + clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -764,10 +881,11 @@ uninstall-am: -.MAKE: install-am install-strip +.MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-checkLTLIBRARIES clean-generic clean-libtool \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ @@ -777,7 +895,9 @@ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/glm/samplers/NormalLinear.cc jags-4.0.0/src/modules/glm/samplers/NormalLinear.cc --- jags-3.4.0/src/modules/glm/samplers/NormalLinear.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/NormalLinear.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,33 @@ +#include + +#include "NormalLinear.h" +#include "Classify.h" + +#include + +namespace jags { +namespace glm { + + NormalLinear::NormalLinear(StochasticNode const *snode, unsigned int chain) + : Outcome(snode, chain), + _value(snode->value(chain)[0]), + _precision(snode->parents()[1]->value(chain)[0]) + { + } + + double NormalLinear::value() const + { + return _value; + } + + double NormalLinear::precision() const + { + return _precision; + } + + bool NormalLinear::canRepresent(StochasticNode const *snode) + { + return getFamily(snode) == GLM_NORMAL && getLink(snode) == LNK_LINEAR; + } + +}} diff -Nru jags-3.4.0/src/modules/glm/samplers/NormalLinear.h jags-4.0.0/src/modules/glm/samplers/NormalLinear.h --- jags-3.4.0/src/modules/glm/samplers/NormalLinear.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/NormalLinear.h 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,28 @@ +#ifndef NORMAL_LINEAR_H_ +#define NORMAL_LINEAR_H_ + +#include +#include "Outcome.h" + +#include + +namespace jags { + +class StochasticNode; + +namespace glm { + + class NormalLinear : public Outcome + { + double const &_value; + double const &_precision; + public: + NormalLinear(StochasticNode const *snode, unsigned int chain); + double value() const; + double precision() const; + static bool canRepresent(StochasticNode const *snode); + }; + +}} + +#endif /* NORMAL_LINEAR_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/Outcome.cc jags-4.0.0/src/modules/glm/samplers/Outcome.cc --- jags-3.4.0/src/modules/glm/samplers/Outcome.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/Outcome.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,62 @@ +#include "Outcome.h" +#include "Classify.h" + +#include +#include +#include + +namespace jags { +namespace glm { + + static Node const *getLinearPredictor(StochasticNode const *snode) + { + Node const *lp = 0; + + switch(getFamily(snode)) { + case GLM_NORMAL: case GLM_BERNOULLI: case GLM_BINOMIAL: case GLM_POISSON: + lp = snode->parents()[0]; + break; + case GLM_UNKNOWN: + throwLogicError("Invalid distribution in GLMOutcome"); + break; + } + + LinkNode const *ln = dynamic_cast(lp); + if (ln) { + lp = ln->parents()[0]; + } + + return lp; + } + + Outcome::Outcome(StochasticNode const *snode, unsigned int chain) + : _lp(getLinearPredictor(snode)->value(chain)[0]) + { + } + + Outcome::~Outcome() + { + } + + double Outcome::mean() const + { + return _lp; + } + + void Outcome::update(RNG *rng) + { + } + +/* + void Outcome::update(double mean, double var, RNG *rng) + { + } +*/ + + double Outcome::logMHRatio() const + { + return 0; + } +}} + + diff -Nru jags-3.4.0/src/modules/glm/samplers/Outcome.h jags-4.0.0/src/modules/glm/samplers/Outcome.h --- jags-3.4.0/src/modules/glm/samplers/Outcome.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/Outcome.h 2015-02-22 16:51:05.000000000 +0000 @@ -0,0 +1,78 @@ +#ifndef GLM_OUTCOME_H_ +#define GLM_OUTCOME_H_ + +namespace jags { + +struct RNG; +class StochasticNode; + +namespace glm { + + /** + * @short Outcome for a generalized linear model. + * + * The Outcome class provides an abstract interface to the outcome + * variable of a generalized linear model. Some GLMs can be + * reduced to a normal linear model by augmentation with auxiliary + * (latent) variables. Other GLM methods use a local linear + * approximation. The Outcome class encapsulates this by + * providing member functions "value", "mean" and "precision", + * corresponding to the normal approximation, as well as functions + * for updating any auxiliary variables, which may be hidden + * inside the Outcome object. + */ + class Outcome { + protected: + double const &_lp; + public: + /** + * Constructor + * + * @param snode Stochastic node representing the true outcome + * variable of a GLM + * + * @param chain Index number of the chain (starting from zero) + * to use + */ + Outcome(StochasticNode const *snode, unsigned int chain); + virtual ~Outcome(); + /** + * Returns the value of the linear predictor, which is the + * mean of the normal approximation. + */ + virtual double mean() const; + /** + * Returns the precision of the normal approximation. + */ + virtual double precision() const = 0; + /** + * Returns the value of the normal approximation. + */ + virtual double value() const = 0; + /** + * FIXME + */ + virtual double logMHRatio() const; + /** + * Updates the auxiliary variables using the current value of + * the linear predictor. The default implementation does + * nothing. + * + * @param rng Random number generator + */ + virtual void update(RNG *rng); + /** + * Updates the auxiliary variables marginalizing over the + * distribution of the linear predictor. The default + * implementation does nothing. + * + * @param mean Expected value of the linear predictor. + * @param var Variance of the linear predictor. + * @param rng Random number generator. + */ + //virtual void update(double mean, double var, RNG *rng); + }; + +}} + +#endif /* GLM_OUTCOME_H_ */ diff -Nru jags-3.4.0/src/modules/glm/samplers/testglmsamp.cc jags-4.0.0/src/modules/glm/samplers/testglmsamp.cc --- jags-3.4.0/src/modules/glm/samplers/testglmsamp.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/testglmsamp.cc 2015-09-12 07:00:16.000000000 +0000 @@ -0,0 +1,54 @@ +#include "testglmsamp.h" +#include "LGMix.h" +#include + +#include +#include + +using std::vector; +using std::stringstream; + +void GLMSampTest::setUp() +{ +} + +void GLMSampTest::tearDown() +{ +} + +void GLMSampTest::lgmix() +{ + //CPPUNIT_FAIL("lgmix"); + + vector means; + vector weights; + vector variances; + + for (unsigned int i = 1; i < 30002; ++i) { + jags::glm::LGMix lg(i); + lg.getParameters(weights, means, variances); + double S = 0.0; + double S2 = 0.0; + double W = 0.0; + for (unsigned int j = 0; j < weights.size(); ++j) { + W += weights[j]; + S += weights[j] * means[j]; + } + for (unsigned int j = 0; j < weights.size(); ++j) { + S2 += weights[j] * ((means[j] - S) * (means[j] - S) + variances[j]); + } + + S += digamma(i); + S /= sqrt(trigamma(i)); + S2 /= trigamma(i); + + std::stringstream msg; + msg << "n = "; + msg << i; + + CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(msg.str(), 1.0, W, 1.0E-6); + CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(msg.str(), 0.0, S, 1.0E-2); + CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(msg.str(), 1.0, sqrt(S2), 1.0E-2); + } + +} diff -Nru jags-3.4.0/src/modules/glm/samplers/testglmsamp.h jags-4.0.0/src/modules/glm/samplers/testglmsamp.h --- jags-3.4.0/src/modules/glm/samplers/testglmsamp.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/glm/samplers/testglmsamp.h 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,21 @@ +#ifndef GLM_SAMP_TEST_H +#define GLM_SAMP_TEST_H + +#include +#include + +class GLMSampTest : public CppUnit::TestFixture , public JAGSFixture +{ + CPPUNIT_TEST_SUITE( GLMSampTest ); + CPPUNIT_TEST( lgmix ); + CPPUNIT_TEST_SUITE_END(); + +public: + void setUp(); + void tearDown(); + void lgmix(); +}; + +#endif // GLM_SAMP_TEST_H + + diff -Nru jags-3.4.0/src/modules/glm/SSparse/AMD/Makefile.in jags-4.0.0/src/modules/glm/SSparse/AMD/Makefile.in --- jags-3.4.0/src/modules/glm/SSparse/AMD/Makefile.in 2013-08-30 13:23:28.000000000 +0000 +++ jags-4.0.0/src/modules/glm/SSparse/AMD/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/glm/SSparse/AMD -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,42 +99,80 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) amd_la_LIBADD = -am_amd_la_OBJECTS = amd_la-amd_1.lo amdbar.lo amd_la-amd_dump.lo \ - amd_la-amd_info.lo amd_la-amd_post_tree.lo amd_la-amd_2.lo \ - amd_la-amd_control.lo amd.lo amd_la-amd_order.lo \ - amd_la-amd_preprocess.lo amd_la-amd_aat.lo \ - amd_la-amd_defaults.lo amd_la-amd_global.lo \ - amd_la-amd_postorder.lo amd_la-amd_valid.lo +am__dirstamp = $(am__leading_dot)dirstamp +am_amd_la_OBJECTS = Source/amd_la-amd_1.lo Source/amdbar.lo \ + Source/amd_la-amd_dump.lo Source/amd_la-amd_info.lo \ + Source/amd_la-amd_post_tree.lo Source/amd_la-amd_2.lo \ + Source/amd_la-amd_control.lo Source/amd.lo \ + Source/amd_la-amd_order.lo Source/amd_la-amd_preprocess.lo \ + Source/amd_la-amd_aat.lo Source/amd_la-amd_defaults.lo \ + Source/amd_la-amd_global.lo Source/amd_la-amd_postorder.lo \ + Source/amd_la-amd_valid.lo amd_la_OBJECTS = $(am_amd_la_OBJECTS) -amd_la_LINK = $(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(F77LD) $(AM_FFLAGS) $(FFLAGS) $(amd_la_LDFLAGS) \ - $(LDFLAGS) -o $@ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +amd_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=F77 $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(F77LD) $(AM_FFLAGS) $(FFLAGS) \ + $(amd_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS) -LTF77COMPILE = $(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) +LTF77COMPILE = $(LIBTOOL) $(AM_V_lt) --tag=F77 $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) +AM_V_F77 = $(am__v_F77_@AM_V@) +am__v_F77_ = $(am__v_F77_@AM_DEFAULT_V@) +am__v_F77_0 = @echo " F77 " $@; +am__v_F77_1 = F77LD = $(F77) -F77LINK = $(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(F77LD) $(AM_FFLAGS) $(FFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +F77LINK = $(LIBTOOL) $(AM_V_lt) --tag=F77 $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(F77LD) $(AM_FFLAGS) $(FFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_F77LD = $(am__v_F77LD_@AM_V@) +am__v_F77LD_ = $(am__v_F77LD_@AM_DEFAULT_V@) +am__v_F77LD_0 = @echo " F77LD " $@; +am__v_F77LD_1 = SOURCES = $(amd_la_SOURCES) DIST_SOURCES = $(amd_la_SOURCES) am__can_run_installinfo = \ @@ -108,11 +181,30 @@ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -126,6 +218,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -195,10 +290,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -307,7 +398,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/glm/SSparse/AMD/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/glm/SSparse/AMD/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -328,188 +418,215 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } +Source/$(am__dirstamp): + @$(MKDIR_P) Source + @: > Source/$(am__dirstamp) +Source/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) Source/$(DEPDIR) + @: > Source/$(DEPDIR)/$(am__dirstamp) +Source/amd_la-amd_1.lo: Source/$(am__dirstamp) \ + Source/$(DEPDIR)/$(am__dirstamp) +Source/amdbar.lo: Source/$(am__dirstamp) \ + Source/$(DEPDIR)/$(am__dirstamp) +Source/amd_la-amd_dump.lo: Source/$(am__dirstamp) \ + Source/$(DEPDIR)/$(am__dirstamp) +Source/amd_la-amd_info.lo: Source/$(am__dirstamp) \ + Source/$(DEPDIR)/$(am__dirstamp) +Source/amd_la-amd_post_tree.lo: Source/$(am__dirstamp) \ + Source/$(DEPDIR)/$(am__dirstamp) +Source/amd_la-amd_2.lo: Source/$(am__dirstamp) \ + Source/$(DEPDIR)/$(am__dirstamp) +Source/amd_la-amd_control.lo: Source/$(am__dirstamp) \ + Source/$(DEPDIR)/$(am__dirstamp) +Source/amd.lo: Source/$(am__dirstamp) Source/$(DEPDIR)/$(am__dirstamp) +Source/amd_la-amd_order.lo: Source/$(am__dirstamp) \ + Source/$(DEPDIR)/$(am__dirstamp) +Source/amd_la-amd_preprocess.lo: Source/$(am__dirstamp) \ + Source/$(DEPDIR)/$(am__dirstamp) +Source/amd_la-amd_aat.lo: Source/$(am__dirstamp) \ + Source/$(DEPDIR)/$(am__dirstamp) +Source/amd_la-amd_defaults.lo: Source/$(am__dirstamp) \ + Source/$(DEPDIR)/$(am__dirstamp) +Source/amd_la-amd_global.lo: Source/$(am__dirstamp) \ + Source/$(DEPDIR)/$(am__dirstamp) +Source/amd_la-amd_postorder.lo: Source/$(am__dirstamp) \ + Source/$(DEPDIR)/$(am__dirstamp) +Source/amd_la-amd_valid.lo: Source/$(am__dirstamp) \ + Source/$(DEPDIR)/$(am__dirstamp) + amd.la: $(amd_la_OBJECTS) $(amd_la_DEPENDENCIES) $(EXTRA_amd_la_DEPENDENCIES) - $(amd_la_LINK) $(amd_la_OBJECTS) $(amd_la_LIBADD) $(LIBS) + $(AM_V_F77LD)$(amd_la_LINK) $(amd_la_OBJECTS) $(amd_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) + -rm -f Source/*.$(OBJEXT) + -rm -f Source/*.lo distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amd_la-amd_1.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amd_la-amd_2.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amd_la-amd_aat.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amd_la-amd_control.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amd_la-amd_defaults.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amd_la-amd_dump.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amd_la-amd_global.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amd_la-amd_info.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amd_la-amd_order.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amd_la-amd_post_tree.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amd_la-amd_postorder.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amd_la-amd_preprocess.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amd_la-amd_valid.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@Source/$(DEPDIR)/amd_la-amd_1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@Source/$(DEPDIR)/amd_la-amd_2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@Source/$(DEPDIR)/amd_la-amd_aat.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@Source/$(DEPDIR)/amd_la-amd_control.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@Source/$(DEPDIR)/amd_la-amd_defaults.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@Source/$(DEPDIR)/amd_la-amd_dump.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@Source/$(DEPDIR)/amd_la-amd_global.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@Source/$(DEPDIR)/amd_la-amd_info.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@Source/$(DEPDIR)/amd_la-amd_order.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@Source/$(DEPDIR)/amd_la-amd_post_tree.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@Source/$(DEPDIR)/amd_la-amd_postorder.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@Source/$(DEPDIR)/amd_la-amd_preprocess.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@Source/$(DEPDIR)/amd_la-amd_valid.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< -amd_la-amd_1.lo: Source/amd_1.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT amd_la-amd_1.lo -MD -MP -MF $(DEPDIR)/amd_la-amd_1.Tpo -c -o amd_la-amd_1.lo `test -f 'Source/amd_1.c' || echo '$(srcdir)/'`Source/amd_1.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/amd_la-amd_1.Tpo $(DEPDIR)/amd_la-amd_1.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='Source/amd_1.c' object='amd_la-amd_1.lo' libtool=yes @AMDEPBACKSLASH@ +Source/amd_la-amd_1.lo: Source/amd_1.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT Source/amd_la-amd_1.lo -MD -MP -MF Source/$(DEPDIR)/amd_la-amd_1.Tpo -c -o Source/amd_la-amd_1.lo `test -f 'Source/amd_1.c' || echo '$(srcdir)/'`Source/amd_1.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) Source/$(DEPDIR)/amd_la-amd_1.Tpo Source/$(DEPDIR)/amd_la-amd_1.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='Source/amd_1.c' object='Source/amd_la-amd_1.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o amd_la-amd_1.lo `test -f 'Source/amd_1.c' || echo '$(srcdir)/'`Source/amd_1.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o Source/amd_la-amd_1.lo `test -f 'Source/amd_1.c' || echo '$(srcdir)/'`Source/amd_1.c -amd_la-amd_dump.lo: Source/amd_dump.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT amd_la-amd_dump.lo -MD -MP -MF $(DEPDIR)/amd_la-amd_dump.Tpo -c -o amd_la-amd_dump.lo `test -f 'Source/amd_dump.c' || echo '$(srcdir)/'`Source/amd_dump.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/amd_la-amd_dump.Tpo $(DEPDIR)/amd_la-amd_dump.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='Source/amd_dump.c' object='amd_la-amd_dump.lo' libtool=yes @AMDEPBACKSLASH@ +Source/amd_la-amd_dump.lo: Source/amd_dump.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT Source/amd_la-amd_dump.lo -MD -MP -MF Source/$(DEPDIR)/amd_la-amd_dump.Tpo -c -o Source/amd_la-amd_dump.lo `test -f 'Source/amd_dump.c' || echo '$(srcdir)/'`Source/amd_dump.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) Source/$(DEPDIR)/amd_la-amd_dump.Tpo Source/$(DEPDIR)/amd_la-amd_dump.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='Source/amd_dump.c' object='Source/amd_la-amd_dump.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o amd_la-amd_dump.lo `test -f 'Source/amd_dump.c' || echo '$(srcdir)/'`Source/amd_dump.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o Source/amd_la-amd_dump.lo `test -f 'Source/amd_dump.c' || echo '$(srcdir)/'`Source/amd_dump.c -amd_la-amd_info.lo: Source/amd_info.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT amd_la-amd_info.lo -MD -MP -MF $(DEPDIR)/amd_la-amd_info.Tpo -c -o amd_la-amd_info.lo `test -f 'Source/amd_info.c' || echo '$(srcdir)/'`Source/amd_info.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/amd_la-amd_info.Tpo $(DEPDIR)/amd_la-amd_info.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='Source/amd_info.c' object='amd_la-amd_info.lo' libtool=yes @AMDEPBACKSLASH@ +Source/amd_la-amd_info.lo: Source/amd_info.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT Source/amd_la-amd_info.lo -MD -MP -MF Source/$(DEPDIR)/amd_la-amd_info.Tpo -c -o Source/amd_la-amd_info.lo `test -f 'Source/amd_info.c' || echo '$(srcdir)/'`Source/amd_info.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) Source/$(DEPDIR)/amd_la-amd_info.Tpo Source/$(DEPDIR)/amd_la-amd_info.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='Source/amd_info.c' object='Source/amd_la-amd_info.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o amd_la-amd_info.lo `test -f 'Source/amd_info.c' || echo '$(srcdir)/'`Source/amd_info.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o Source/amd_la-amd_info.lo `test -f 'Source/amd_info.c' || echo '$(srcdir)/'`Source/amd_info.c -amd_la-amd_post_tree.lo: Source/amd_post_tree.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT amd_la-amd_post_tree.lo -MD -MP -MF $(DEPDIR)/amd_la-amd_post_tree.Tpo -c -o amd_la-amd_post_tree.lo `test -f 'Source/amd_post_tree.c' || echo '$(srcdir)/'`Source/amd_post_tree.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/amd_la-amd_post_tree.Tpo $(DEPDIR)/amd_la-amd_post_tree.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='Source/amd_post_tree.c' object='amd_la-amd_post_tree.lo' libtool=yes @AMDEPBACKSLASH@ +Source/amd_la-amd_post_tree.lo: Source/amd_post_tree.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT Source/amd_la-amd_post_tree.lo -MD -MP -MF Source/$(DEPDIR)/amd_la-amd_post_tree.Tpo -c -o Source/amd_la-amd_post_tree.lo `test -f 'Source/amd_post_tree.c' || echo '$(srcdir)/'`Source/amd_post_tree.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) Source/$(DEPDIR)/amd_la-amd_post_tree.Tpo Source/$(DEPDIR)/amd_la-amd_post_tree.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='Source/amd_post_tree.c' object='Source/amd_la-amd_post_tree.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o amd_la-amd_post_tree.lo `test -f 'Source/amd_post_tree.c' || echo '$(srcdir)/'`Source/amd_post_tree.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o Source/amd_la-amd_post_tree.lo `test -f 'Source/amd_post_tree.c' || echo '$(srcdir)/'`Source/amd_post_tree.c -amd_la-amd_2.lo: Source/amd_2.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT amd_la-amd_2.lo -MD -MP -MF $(DEPDIR)/amd_la-amd_2.Tpo -c -o amd_la-amd_2.lo `test -f 'Source/amd_2.c' || echo '$(srcdir)/'`Source/amd_2.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/amd_la-amd_2.Tpo $(DEPDIR)/amd_la-amd_2.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='Source/amd_2.c' object='amd_la-amd_2.lo' libtool=yes @AMDEPBACKSLASH@ +Source/amd_la-amd_2.lo: Source/amd_2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT Source/amd_la-amd_2.lo -MD -MP -MF Source/$(DEPDIR)/amd_la-amd_2.Tpo -c -o Source/amd_la-amd_2.lo `test -f 'Source/amd_2.c' || echo '$(srcdir)/'`Source/amd_2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) Source/$(DEPDIR)/amd_la-amd_2.Tpo Source/$(DEPDIR)/amd_la-amd_2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='Source/amd_2.c' object='Source/amd_la-amd_2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o amd_la-amd_2.lo `test -f 'Source/amd_2.c' || echo '$(srcdir)/'`Source/amd_2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o Source/amd_la-amd_2.lo `test -f 'Source/amd_2.c' || echo '$(srcdir)/'`Source/amd_2.c -amd_la-amd_control.lo: Source/amd_control.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT amd_la-amd_control.lo -MD -MP -MF $(DEPDIR)/amd_la-amd_control.Tpo -c -o amd_la-amd_control.lo `test -f 'Source/amd_control.c' || echo '$(srcdir)/'`Source/amd_control.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/amd_la-amd_control.Tpo $(DEPDIR)/amd_la-amd_control.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='Source/amd_control.c' object='amd_la-amd_control.lo' libtool=yes @AMDEPBACKSLASH@ +Source/amd_la-amd_control.lo: Source/amd_control.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT Source/amd_la-amd_control.lo -MD -MP -MF Source/$(DEPDIR)/amd_la-amd_control.Tpo -c -o Source/amd_la-amd_control.lo `test -f 'Source/amd_control.c' || echo '$(srcdir)/'`Source/amd_control.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) Source/$(DEPDIR)/amd_la-amd_control.Tpo Source/$(DEPDIR)/amd_la-amd_control.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='Source/amd_control.c' object='Source/amd_la-amd_control.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o amd_la-amd_control.lo `test -f 'Source/amd_control.c' || echo '$(srcdir)/'`Source/amd_control.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o Source/amd_la-amd_control.lo `test -f 'Source/amd_control.c' || echo '$(srcdir)/'`Source/amd_control.c -amd_la-amd_order.lo: Source/amd_order.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT amd_la-amd_order.lo -MD -MP -MF $(DEPDIR)/amd_la-amd_order.Tpo -c -o amd_la-amd_order.lo `test -f 'Source/amd_order.c' || echo '$(srcdir)/'`Source/amd_order.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/amd_la-amd_order.Tpo $(DEPDIR)/amd_la-amd_order.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='Source/amd_order.c' object='amd_la-amd_order.lo' libtool=yes @AMDEPBACKSLASH@ +Source/amd_la-amd_order.lo: Source/amd_order.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT Source/amd_la-amd_order.lo -MD -MP -MF Source/$(DEPDIR)/amd_la-amd_order.Tpo -c -o Source/amd_la-amd_order.lo `test -f 'Source/amd_order.c' || echo '$(srcdir)/'`Source/amd_order.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) Source/$(DEPDIR)/amd_la-amd_order.Tpo Source/$(DEPDIR)/amd_la-amd_order.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='Source/amd_order.c' object='Source/amd_la-amd_order.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o amd_la-amd_order.lo `test -f 'Source/amd_order.c' || echo '$(srcdir)/'`Source/amd_order.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o Source/amd_la-amd_order.lo `test -f 'Source/amd_order.c' || echo '$(srcdir)/'`Source/amd_order.c -amd_la-amd_preprocess.lo: Source/amd_preprocess.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT amd_la-amd_preprocess.lo -MD -MP -MF $(DEPDIR)/amd_la-amd_preprocess.Tpo -c -o amd_la-amd_preprocess.lo `test -f 'Source/amd_preprocess.c' || echo '$(srcdir)/'`Source/amd_preprocess.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/amd_la-amd_preprocess.Tpo $(DEPDIR)/amd_la-amd_preprocess.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='Source/amd_preprocess.c' object='amd_la-amd_preprocess.lo' libtool=yes @AMDEPBACKSLASH@ +Source/amd_la-amd_preprocess.lo: Source/amd_preprocess.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT Source/amd_la-amd_preprocess.lo -MD -MP -MF Source/$(DEPDIR)/amd_la-amd_preprocess.Tpo -c -o Source/amd_la-amd_preprocess.lo `test -f 'Source/amd_preprocess.c' || echo '$(srcdir)/'`Source/amd_preprocess.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) Source/$(DEPDIR)/amd_la-amd_preprocess.Tpo Source/$(DEPDIR)/amd_la-amd_preprocess.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='Source/amd_preprocess.c' object='Source/amd_la-amd_preprocess.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o amd_la-amd_preprocess.lo `test -f 'Source/amd_preprocess.c' || echo '$(srcdir)/'`Source/amd_preprocess.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o Source/amd_la-amd_preprocess.lo `test -f 'Source/amd_preprocess.c' || echo '$(srcdir)/'`Source/amd_preprocess.c -amd_la-amd_aat.lo: Source/amd_aat.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT amd_la-amd_aat.lo -MD -MP -MF $(DEPDIR)/amd_la-amd_aat.Tpo -c -o amd_la-amd_aat.lo `test -f 'Source/amd_aat.c' || echo '$(srcdir)/'`Source/amd_aat.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/amd_la-amd_aat.Tpo $(DEPDIR)/amd_la-amd_aat.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='Source/amd_aat.c' object='amd_la-amd_aat.lo' libtool=yes @AMDEPBACKSLASH@ +Source/amd_la-amd_aat.lo: Source/amd_aat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT Source/amd_la-amd_aat.lo -MD -MP -MF Source/$(DEPDIR)/amd_la-amd_aat.Tpo -c -o Source/amd_la-amd_aat.lo `test -f 'Source/amd_aat.c' || echo '$(srcdir)/'`Source/amd_aat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) Source/$(DEPDIR)/amd_la-amd_aat.Tpo Source/$(DEPDIR)/amd_la-amd_aat.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='Source/amd_aat.c' object='Source/amd_la-amd_aat.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o amd_la-amd_aat.lo `test -f 'Source/amd_aat.c' || echo '$(srcdir)/'`Source/amd_aat.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o Source/amd_la-amd_aat.lo `test -f 'Source/amd_aat.c' || echo '$(srcdir)/'`Source/amd_aat.c -amd_la-amd_defaults.lo: Source/amd_defaults.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT amd_la-amd_defaults.lo -MD -MP -MF $(DEPDIR)/amd_la-amd_defaults.Tpo -c -o amd_la-amd_defaults.lo `test -f 'Source/amd_defaults.c' || echo '$(srcdir)/'`Source/amd_defaults.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/amd_la-amd_defaults.Tpo $(DEPDIR)/amd_la-amd_defaults.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='Source/amd_defaults.c' object='amd_la-amd_defaults.lo' libtool=yes @AMDEPBACKSLASH@ +Source/amd_la-amd_defaults.lo: Source/amd_defaults.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT Source/amd_la-amd_defaults.lo -MD -MP -MF Source/$(DEPDIR)/amd_la-amd_defaults.Tpo -c -o Source/amd_la-amd_defaults.lo `test -f 'Source/amd_defaults.c' || echo '$(srcdir)/'`Source/amd_defaults.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) Source/$(DEPDIR)/amd_la-amd_defaults.Tpo Source/$(DEPDIR)/amd_la-amd_defaults.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='Source/amd_defaults.c' object='Source/amd_la-amd_defaults.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o amd_la-amd_defaults.lo `test -f 'Source/amd_defaults.c' || echo '$(srcdir)/'`Source/amd_defaults.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o Source/amd_la-amd_defaults.lo `test -f 'Source/amd_defaults.c' || echo '$(srcdir)/'`Source/amd_defaults.c -amd_la-amd_global.lo: Source/amd_global.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT amd_la-amd_global.lo -MD -MP -MF $(DEPDIR)/amd_la-amd_global.Tpo -c -o amd_la-amd_global.lo `test -f 'Source/amd_global.c' || echo '$(srcdir)/'`Source/amd_global.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/amd_la-amd_global.Tpo $(DEPDIR)/amd_la-amd_global.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='Source/amd_global.c' object='amd_la-amd_global.lo' libtool=yes @AMDEPBACKSLASH@ +Source/amd_la-amd_global.lo: Source/amd_global.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT Source/amd_la-amd_global.lo -MD -MP -MF Source/$(DEPDIR)/amd_la-amd_global.Tpo -c -o Source/amd_la-amd_global.lo `test -f 'Source/amd_global.c' || echo '$(srcdir)/'`Source/amd_global.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) Source/$(DEPDIR)/amd_la-amd_global.Tpo Source/$(DEPDIR)/amd_la-amd_global.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='Source/amd_global.c' object='Source/amd_la-amd_global.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o amd_la-amd_global.lo `test -f 'Source/amd_global.c' || echo '$(srcdir)/'`Source/amd_global.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o Source/amd_la-amd_global.lo `test -f 'Source/amd_global.c' || echo '$(srcdir)/'`Source/amd_global.c -amd_la-amd_postorder.lo: Source/amd_postorder.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT amd_la-amd_postorder.lo -MD -MP -MF $(DEPDIR)/amd_la-amd_postorder.Tpo -c -o amd_la-amd_postorder.lo `test -f 'Source/amd_postorder.c' || echo '$(srcdir)/'`Source/amd_postorder.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/amd_la-amd_postorder.Tpo $(DEPDIR)/amd_la-amd_postorder.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='Source/amd_postorder.c' object='amd_la-amd_postorder.lo' libtool=yes @AMDEPBACKSLASH@ +Source/amd_la-amd_postorder.lo: Source/amd_postorder.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT Source/amd_la-amd_postorder.lo -MD -MP -MF Source/$(DEPDIR)/amd_la-amd_postorder.Tpo -c -o Source/amd_la-amd_postorder.lo `test -f 'Source/amd_postorder.c' || echo '$(srcdir)/'`Source/amd_postorder.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) Source/$(DEPDIR)/amd_la-amd_postorder.Tpo Source/$(DEPDIR)/amd_la-amd_postorder.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='Source/amd_postorder.c' object='Source/amd_la-amd_postorder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o amd_la-amd_postorder.lo `test -f 'Source/amd_postorder.c' || echo '$(srcdir)/'`Source/amd_postorder.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o Source/amd_la-amd_postorder.lo `test -f 'Source/amd_postorder.c' || echo '$(srcdir)/'`Source/amd_postorder.c -amd_la-amd_valid.lo: Source/amd_valid.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT amd_la-amd_valid.lo -MD -MP -MF $(DEPDIR)/amd_la-amd_valid.Tpo -c -o amd_la-amd_valid.lo `test -f 'Source/amd_valid.c' || echo '$(srcdir)/'`Source/amd_valid.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/amd_la-amd_valid.Tpo $(DEPDIR)/amd_la-amd_valid.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='Source/amd_valid.c' object='amd_la-amd_valid.lo' libtool=yes @AMDEPBACKSLASH@ +Source/amd_la-amd_valid.lo: Source/amd_valid.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT Source/amd_la-amd_valid.lo -MD -MP -MF Source/$(DEPDIR)/amd_la-amd_valid.Tpo -c -o Source/amd_la-amd_valid.lo `test -f 'Source/amd_valid.c' || echo '$(srcdir)/'`Source/amd_valid.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) Source/$(DEPDIR)/amd_la-amd_valid.Tpo Source/$(DEPDIR)/amd_la-amd_valid.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='Source/amd_valid.c' object='Source/amd_la-amd_valid.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o amd_la-amd_valid.lo `test -f 'Source/amd_valid.c' || echo '$(srcdir)/'`Source/amd_valid.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o Source/amd_la-amd_valid.lo `test -f 'Source/amd_valid.c' || echo '$(srcdir)/'`Source/amd_valid.c .f.o: - $(F77COMPILE) -c -o $@ $< + $(AM_V_F77)$(F77COMPILE) -c -o $@ $< .f.obj: - $(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + $(AM_V_F77)$(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .f.lo: - $(LTF77COMPILE) -c -o $@ $< - -amdbar.lo: Source/amdbar.f - $(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o amdbar.lo `test -f 'Source/amdbar.f' || echo '$(srcdir)/'`Source/amdbar.f - -amd.lo: Source/amd.f - $(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o amd.lo `test -f 'Source/amd.f' || echo '$(srcdir)/'`Source/amd.f + $(AM_V_F77)$(LTF77COMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs + -rm -rf Source/.libs Source/_libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -521,15 +638,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -538,6 +651,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -602,6 +730,8 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f Source/$(DEPDIR)/$(am__dirstamp) + -rm -f Source/$(am__dirstamp) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -612,7 +742,7 @@ mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -rf Source/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -658,7 +788,7 @@ installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -rf Source/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -679,18 +809,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/glm/SSparse/CHOLMOD/Check/Makefile.in jags-4.0.0/src/modules/glm/SSparse/CHOLMOD/Check/Makefile.in --- jags-3.4.0/src/modules/glm/SSparse/CHOLMOD/Check/Makefile.in 2013-08-30 13:23:29.000000000 +0000 +++ jags-4.0.0/src/modules/glm/SSparse/CHOLMOD/Check/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/glm/SSparse/CHOLMOD/Check -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -62,6 +98,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -72,22 +109,48 @@ cholmodcheck_la-cholmod_read.lo \ cholmodcheck_la-cholmod_write.lo cholmodcheck_la_OBJECTS = $(am_cholmodcheck_la_OBJECTS) -cholmodcheck_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(cholmodcheck_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +cholmodcheck_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(cholmodcheck_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(cholmodcheck_la_SOURCES) DIST_SOURCES = $(cholmodcheck_la_SOURCES) am__can_run_installinfo = \ @@ -95,11 +158,30 @@ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -113,6 +195,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -182,10 +267,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -274,7 +355,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/glm/SSparse/CHOLMOD/Check/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/glm/SSparse/CHOLMOD/Check/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -295,14 +375,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + cholmodcheck.la: $(cholmodcheck_la_OBJECTS) $(cholmodcheck_la_DEPENDENCIES) $(EXTRA_cholmodcheck_la_DEPENDENCIES) - $(cholmodcheck_la_LINK) $(cholmodcheck_la_OBJECTS) $(cholmodcheck_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(cholmodcheck_la_LINK) $(cholmodcheck_la_OBJECTS) $(cholmodcheck_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -315,46 +398,49 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cholmodcheck_la-cholmod_write.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< cholmodcheck_la-cholmod_check.lo: cholmod_check.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcheck_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcheck_la-cholmod_check.lo -MD -MP -MF $(DEPDIR)/cholmodcheck_la-cholmod_check.Tpo -c -o cholmodcheck_la-cholmod_check.lo `test -f 'cholmod_check.c' || echo '$(srcdir)/'`cholmod_check.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcheck_la-cholmod_check.Tpo $(DEPDIR)/cholmodcheck_la-cholmod_check.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_check.c' object='cholmodcheck_la-cholmod_check.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcheck_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcheck_la-cholmod_check.lo -MD -MP -MF $(DEPDIR)/cholmodcheck_la-cholmod_check.Tpo -c -o cholmodcheck_la-cholmod_check.lo `test -f 'cholmod_check.c' || echo '$(srcdir)/'`cholmod_check.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcheck_la-cholmod_check.Tpo $(DEPDIR)/cholmodcheck_la-cholmod_check.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_check.c' object='cholmodcheck_la-cholmod_check.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcheck_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcheck_la-cholmod_check.lo `test -f 'cholmod_check.c' || echo '$(srcdir)/'`cholmod_check.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcheck_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcheck_la-cholmod_check.lo `test -f 'cholmod_check.c' || echo '$(srcdir)/'`cholmod_check.c cholmodcheck_la-cholmod_read.lo: cholmod_read.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcheck_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcheck_la-cholmod_read.lo -MD -MP -MF $(DEPDIR)/cholmodcheck_la-cholmod_read.Tpo -c -o cholmodcheck_la-cholmod_read.lo `test -f 'cholmod_read.c' || echo '$(srcdir)/'`cholmod_read.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcheck_la-cholmod_read.Tpo $(DEPDIR)/cholmodcheck_la-cholmod_read.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_read.c' object='cholmodcheck_la-cholmod_read.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcheck_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcheck_la-cholmod_read.lo -MD -MP -MF $(DEPDIR)/cholmodcheck_la-cholmod_read.Tpo -c -o cholmodcheck_la-cholmod_read.lo `test -f 'cholmod_read.c' || echo '$(srcdir)/'`cholmod_read.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcheck_la-cholmod_read.Tpo $(DEPDIR)/cholmodcheck_la-cholmod_read.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_read.c' object='cholmodcheck_la-cholmod_read.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcheck_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcheck_la-cholmod_read.lo `test -f 'cholmod_read.c' || echo '$(srcdir)/'`cholmod_read.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcheck_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcheck_la-cholmod_read.lo `test -f 'cholmod_read.c' || echo '$(srcdir)/'`cholmod_read.c cholmodcheck_la-cholmod_write.lo: cholmod_write.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcheck_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcheck_la-cholmod_write.lo -MD -MP -MF $(DEPDIR)/cholmodcheck_la-cholmod_write.Tpo -c -o cholmodcheck_la-cholmod_write.lo `test -f 'cholmod_write.c' || echo '$(srcdir)/'`cholmod_write.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcheck_la-cholmod_write.Tpo $(DEPDIR)/cholmodcheck_la-cholmod_write.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_write.c' object='cholmodcheck_la-cholmod_write.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcheck_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcheck_la-cholmod_write.lo -MD -MP -MF $(DEPDIR)/cholmodcheck_la-cholmod_write.Tpo -c -o cholmodcheck_la-cholmod_write.lo `test -f 'cholmod_write.c' || echo '$(srcdir)/'`cholmod_write.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcheck_la-cholmod_write.Tpo $(DEPDIR)/cholmodcheck_la-cholmod_write.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_write.c' object='cholmodcheck_la-cholmod_write.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcheck_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcheck_la-cholmod_write.lo `test -f 'cholmod_write.c' || echo '$(srcdir)/'`cholmod_write.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcheck_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcheck_la-cholmod_write.lo `test -f 'cholmod_write.c' || echo '$(srcdir)/'`cholmod_write.c mostlyclean-libtool: -rm -f *.lo @@ -362,26 +448,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -393,15 +468,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -410,6 +481,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -551,18 +637,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/glm/SSparse/CHOLMOD/Cholesky/Makefile.in jags-4.0.0/src/modules/glm/SSparse/CHOLMOD/Cholesky/Makefile.in --- jags-3.4.0/src/modules/glm/SSparse/CHOLMOD/Cholesky/Makefile.in 2013-08-30 13:23:29.000000000 +0000 +++ jags-4.0.0/src/modules/glm/SSparse/CHOLMOD/Cholesky/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/glm/SSparse/CHOLMOD/Cholesky -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -62,6 +98,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -81,22 +118,48 @@ cholmodcholesky_la-cholmod_solve.lo \ cholmodcholesky_la-cholmod_spsolve.lo cholmodcholesky_la_OBJECTS = $(am_cholmodcholesky_la_OBJECTS) -cholmodcholesky_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(cholmodcholesky_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +cholmodcholesky_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(cholmodcholesky_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(cholmodcholesky_la_SOURCES) DIST_SOURCES = $(cholmodcholesky_la_SOURCES) am__can_run_installinfo = \ @@ -104,11 +167,30 @@ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -122,6 +204,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -191,10 +276,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -293,7 +374,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/glm/SSparse/CHOLMOD/Cholesky/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/glm/SSparse/CHOLMOD/Cholesky/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -314,14 +394,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + cholmodcholesky.la: $(cholmodcholesky_la_OBJECTS) $(cholmodcholesky_la_DEPENDENCIES) $(EXTRA_cholmodcholesky_la_DEPENDENCIES) - $(cholmodcholesky_la_LINK) $(cholmodcholesky_la_OBJECTS) $(cholmodcholesky_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(cholmodcholesky_la_LINK) $(cholmodcholesky_la_OBJECTS) $(cholmodcholesky_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -343,109 +426,112 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cholmodcholesky_la-cholmod_spsolve.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< cholmodcholesky_la-cholmod_amd.lo: cholmod_amd.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_amd.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_amd.Tpo -c -o cholmodcholesky_la-cholmod_amd.lo `test -f 'cholmod_amd.c' || echo '$(srcdir)/'`cholmod_amd.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_amd.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_amd.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_amd.c' object='cholmodcholesky_la-cholmod_amd.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_amd.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_amd.Tpo -c -o cholmodcholesky_la-cholmod_amd.lo `test -f 'cholmod_amd.c' || echo '$(srcdir)/'`cholmod_amd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_amd.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_amd.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_amd.c' object='cholmodcholesky_la-cholmod_amd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_amd.lo `test -f 'cholmod_amd.c' || echo '$(srcdir)/'`cholmod_amd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_amd.lo `test -f 'cholmod_amd.c' || echo '$(srcdir)/'`cholmod_amd.c cholmodcholesky_la-cholmod_analyze.lo: cholmod_analyze.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_analyze.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_analyze.Tpo -c -o cholmodcholesky_la-cholmod_analyze.lo `test -f 'cholmod_analyze.c' || echo '$(srcdir)/'`cholmod_analyze.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_analyze.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_analyze.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_analyze.c' object='cholmodcholesky_la-cholmod_analyze.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_analyze.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_analyze.Tpo -c -o cholmodcholesky_la-cholmod_analyze.lo `test -f 'cholmod_analyze.c' || echo '$(srcdir)/'`cholmod_analyze.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_analyze.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_analyze.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_analyze.c' object='cholmodcholesky_la-cholmod_analyze.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_analyze.lo `test -f 'cholmod_analyze.c' || echo '$(srcdir)/'`cholmod_analyze.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_analyze.lo `test -f 'cholmod_analyze.c' || echo '$(srcdir)/'`cholmod_analyze.c cholmodcholesky_la-cholmod_colamd.lo: cholmod_colamd.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_colamd.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_colamd.Tpo -c -o cholmodcholesky_la-cholmod_colamd.lo `test -f 'cholmod_colamd.c' || echo '$(srcdir)/'`cholmod_colamd.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_colamd.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_colamd.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_colamd.c' object='cholmodcholesky_la-cholmod_colamd.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_colamd.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_colamd.Tpo -c -o cholmodcholesky_la-cholmod_colamd.lo `test -f 'cholmod_colamd.c' || echo '$(srcdir)/'`cholmod_colamd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_colamd.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_colamd.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_colamd.c' object='cholmodcholesky_la-cholmod_colamd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_colamd.lo `test -f 'cholmod_colamd.c' || echo '$(srcdir)/'`cholmod_colamd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_colamd.lo `test -f 'cholmod_colamd.c' || echo '$(srcdir)/'`cholmod_colamd.c cholmodcholesky_la-cholmod_etree.lo: cholmod_etree.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_etree.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_etree.Tpo -c -o cholmodcholesky_la-cholmod_etree.lo `test -f 'cholmod_etree.c' || echo '$(srcdir)/'`cholmod_etree.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_etree.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_etree.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_etree.c' object='cholmodcholesky_la-cholmod_etree.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_etree.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_etree.Tpo -c -o cholmodcholesky_la-cholmod_etree.lo `test -f 'cholmod_etree.c' || echo '$(srcdir)/'`cholmod_etree.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_etree.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_etree.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_etree.c' object='cholmodcholesky_la-cholmod_etree.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_etree.lo `test -f 'cholmod_etree.c' || echo '$(srcdir)/'`cholmod_etree.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_etree.lo `test -f 'cholmod_etree.c' || echo '$(srcdir)/'`cholmod_etree.c cholmodcholesky_la-cholmod_factorize.lo: cholmod_factorize.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_factorize.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_factorize.Tpo -c -o cholmodcholesky_la-cholmod_factorize.lo `test -f 'cholmod_factorize.c' || echo '$(srcdir)/'`cholmod_factorize.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_factorize.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_factorize.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_factorize.c' object='cholmodcholesky_la-cholmod_factorize.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_factorize.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_factorize.Tpo -c -o cholmodcholesky_la-cholmod_factorize.lo `test -f 'cholmod_factorize.c' || echo '$(srcdir)/'`cholmod_factorize.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_factorize.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_factorize.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_factorize.c' object='cholmodcholesky_la-cholmod_factorize.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_factorize.lo `test -f 'cholmod_factorize.c' || echo '$(srcdir)/'`cholmod_factorize.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_factorize.lo `test -f 'cholmod_factorize.c' || echo '$(srcdir)/'`cholmod_factorize.c cholmodcholesky_la-cholmod_postorder.lo: cholmod_postorder.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_postorder.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_postorder.Tpo -c -o cholmodcholesky_la-cholmod_postorder.lo `test -f 'cholmod_postorder.c' || echo '$(srcdir)/'`cholmod_postorder.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_postorder.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_postorder.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_postorder.c' object='cholmodcholesky_la-cholmod_postorder.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_postorder.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_postorder.Tpo -c -o cholmodcholesky_la-cholmod_postorder.lo `test -f 'cholmod_postorder.c' || echo '$(srcdir)/'`cholmod_postorder.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_postorder.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_postorder.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_postorder.c' object='cholmodcholesky_la-cholmod_postorder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_postorder.lo `test -f 'cholmod_postorder.c' || echo '$(srcdir)/'`cholmod_postorder.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_postorder.lo `test -f 'cholmod_postorder.c' || echo '$(srcdir)/'`cholmod_postorder.c cholmodcholesky_la-cholmod_rcond.lo: cholmod_rcond.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_rcond.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_rcond.Tpo -c -o cholmodcholesky_la-cholmod_rcond.lo `test -f 'cholmod_rcond.c' || echo '$(srcdir)/'`cholmod_rcond.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_rcond.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_rcond.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_rcond.c' object='cholmodcholesky_la-cholmod_rcond.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_rcond.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_rcond.Tpo -c -o cholmodcholesky_la-cholmod_rcond.lo `test -f 'cholmod_rcond.c' || echo '$(srcdir)/'`cholmod_rcond.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_rcond.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_rcond.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_rcond.c' object='cholmodcholesky_la-cholmod_rcond.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_rcond.lo `test -f 'cholmod_rcond.c' || echo '$(srcdir)/'`cholmod_rcond.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_rcond.lo `test -f 'cholmod_rcond.c' || echo '$(srcdir)/'`cholmod_rcond.c cholmodcholesky_la-cholmod_resymbol.lo: cholmod_resymbol.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_resymbol.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_resymbol.Tpo -c -o cholmodcholesky_la-cholmod_resymbol.lo `test -f 'cholmod_resymbol.c' || echo '$(srcdir)/'`cholmod_resymbol.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_resymbol.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_resymbol.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_resymbol.c' object='cholmodcholesky_la-cholmod_resymbol.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_resymbol.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_resymbol.Tpo -c -o cholmodcholesky_la-cholmod_resymbol.lo `test -f 'cholmod_resymbol.c' || echo '$(srcdir)/'`cholmod_resymbol.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_resymbol.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_resymbol.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_resymbol.c' object='cholmodcholesky_la-cholmod_resymbol.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_resymbol.lo `test -f 'cholmod_resymbol.c' || echo '$(srcdir)/'`cholmod_resymbol.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_resymbol.lo `test -f 'cholmod_resymbol.c' || echo '$(srcdir)/'`cholmod_resymbol.c cholmodcholesky_la-cholmod_rowcolcounts.lo: cholmod_rowcolcounts.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_rowcolcounts.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_rowcolcounts.Tpo -c -o cholmodcholesky_la-cholmod_rowcolcounts.lo `test -f 'cholmod_rowcolcounts.c' || echo '$(srcdir)/'`cholmod_rowcolcounts.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_rowcolcounts.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_rowcolcounts.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_rowcolcounts.c' object='cholmodcholesky_la-cholmod_rowcolcounts.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_rowcolcounts.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_rowcolcounts.Tpo -c -o cholmodcholesky_la-cholmod_rowcolcounts.lo `test -f 'cholmod_rowcolcounts.c' || echo '$(srcdir)/'`cholmod_rowcolcounts.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_rowcolcounts.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_rowcolcounts.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_rowcolcounts.c' object='cholmodcholesky_la-cholmod_rowcolcounts.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_rowcolcounts.lo `test -f 'cholmod_rowcolcounts.c' || echo '$(srcdir)/'`cholmod_rowcolcounts.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_rowcolcounts.lo `test -f 'cholmod_rowcolcounts.c' || echo '$(srcdir)/'`cholmod_rowcolcounts.c cholmodcholesky_la-cholmod_rowfac.lo: cholmod_rowfac.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_rowfac.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_rowfac.Tpo -c -o cholmodcholesky_la-cholmod_rowfac.lo `test -f 'cholmod_rowfac.c' || echo '$(srcdir)/'`cholmod_rowfac.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_rowfac.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_rowfac.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_rowfac.c' object='cholmodcholesky_la-cholmod_rowfac.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_rowfac.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_rowfac.Tpo -c -o cholmodcholesky_la-cholmod_rowfac.lo `test -f 'cholmod_rowfac.c' || echo '$(srcdir)/'`cholmod_rowfac.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_rowfac.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_rowfac.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_rowfac.c' object='cholmodcholesky_la-cholmod_rowfac.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_rowfac.lo `test -f 'cholmod_rowfac.c' || echo '$(srcdir)/'`cholmod_rowfac.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_rowfac.lo `test -f 'cholmod_rowfac.c' || echo '$(srcdir)/'`cholmod_rowfac.c cholmodcholesky_la-cholmod_solve.lo: cholmod_solve.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_solve.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_solve.Tpo -c -o cholmodcholesky_la-cholmod_solve.lo `test -f 'cholmod_solve.c' || echo '$(srcdir)/'`cholmod_solve.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_solve.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_solve.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_solve.c' object='cholmodcholesky_la-cholmod_solve.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_solve.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_solve.Tpo -c -o cholmodcholesky_la-cholmod_solve.lo `test -f 'cholmod_solve.c' || echo '$(srcdir)/'`cholmod_solve.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_solve.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_solve.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_solve.c' object='cholmodcholesky_la-cholmod_solve.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_solve.lo `test -f 'cholmod_solve.c' || echo '$(srcdir)/'`cholmod_solve.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_solve.lo `test -f 'cholmod_solve.c' || echo '$(srcdir)/'`cholmod_solve.c cholmodcholesky_la-cholmod_spsolve.lo: cholmod_spsolve.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_spsolve.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_spsolve.Tpo -c -o cholmodcholesky_la-cholmod_spsolve.lo `test -f 'cholmod_spsolve.c' || echo '$(srcdir)/'`cholmod_spsolve.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_spsolve.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_spsolve.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_spsolve.c' object='cholmodcholesky_la-cholmod_spsolve.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcholesky_la-cholmod_spsolve.lo -MD -MP -MF $(DEPDIR)/cholmodcholesky_la-cholmod_spsolve.Tpo -c -o cholmodcholesky_la-cholmod_spsolve.lo `test -f 'cholmod_spsolve.c' || echo '$(srcdir)/'`cholmod_spsolve.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcholesky_la-cholmod_spsolve.Tpo $(DEPDIR)/cholmodcholesky_la-cholmod_spsolve.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_spsolve.c' object='cholmodcholesky_la-cholmod_spsolve.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_spsolve.lo `test -f 'cholmod_spsolve.c' || echo '$(srcdir)/'`cholmod_spsolve.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcholesky_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcholesky_la-cholmod_spsolve.lo `test -f 'cholmod_spsolve.c' || echo '$(srcdir)/'`cholmod_spsolve.c mostlyclean-libtool: -rm -f *.lo @@ -453,26 +539,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -484,15 +559,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -501,6 +572,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -642,18 +728,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/glm/SSparse/CHOLMOD/Core/Makefile.in jags-4.0.0/src/modules/glm/SSparse/CHOLMOD/Core/Makefile.in --- jags-3.4.0/src/modules/glm/SSparse/CHOLMOD/Core/Makefile.in 2013-08-30 13:23:29.000000000 +0000 +++ jags-4.0.0/src/modules/glm/SSparse/CHOLMOD/Core/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/glm/SSparse/CHOLMOD/Core -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -62,6 +98,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -81,22 +118,48 @@ cholmodcore_la-cholmod_complex.lo \ cholmodcore_la-cholmod_sparse.lo cholmodcore_la_OBJECTS = $(am_cholmodcore_la_OBJECTS) -cholmodcore_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(cholmodcore_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +cholmodcore_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(cholmodcore_la_LDFLAGS) $(LDFLAGS) -o \ + $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(cholmodcore_la_SOURCES) DIST_SOURCES = $(cholmodcore_la_SOURCES) am__can_run_installinfo = \ @@ -104,11 +167,30 @@ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -122,6 +204,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -191,10 +276,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -290,7 +371,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/glm/SSparse/CHOLMOD/Core/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/glm/SSparse/CHOLMOD/Core/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -311,14 +391,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + cholmodcore.la: $(cholmodcore_la_OBJECTS) $(cholmodcore_la_DEPENDENCIES) $(EXTRA_cholmodcore_la_DEPENDENCIES) - $(cholmodcore_la_LINK) $(cholmodcore_la_OBJECTS) $(cholmodcore_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(cholmodcore_la_LINK) $(cholmodcore_la_OBJECTS) $(cholmodcore_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -342,123 +425,126 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cholmodcore_la-cholmod_triplet.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< cholmodcore_la-cholmod_aat.lo: cholmod_aat.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_aat.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_aat.Tpo -c -o cholmodcore_la-cholmod_aat.lo `test -f 'cholmod_aat.c' || echo '$(srcdir)/'`cholmod_aat.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_aat.Tpo $(DEPDIR)/cholmodcore_la-cholmod_aat.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_aat.c' object='cholmodcore_la-cholmod_aat.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_aat.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_aat.Tpo -c -o cholmodcore_la-cholmod_aat.lo `test -f 'cholmod_aat.c' || echo '$(srcdir)/'`cholmod_aat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_aat.Tpo $(DEPDIR)/cholmodcore_la-cholmod_aat.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_aat.c' object='cholmodcore_la-cholmod_aat.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_aat.lo `test -f 'cholmod_aat.c' || echo '$(srcdir)/'`cholmod_aat.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_aat.lo `test -f 'cholmod_aat.c' || echo '$(srcdir)/'`cholmod_aat.c cholmodcore_la-cholmod_copy.lo: cholmod_copy.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_copy.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_copy.Tpo -c -o cholmodcore_la-cholmod_copy.lo `test -f 'cholmod_copy.c' || echo '$(srcdir)/'`cholmod_copy.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_copy.Tpo $(DEPDIR)/cholmodcore_la-cholmod_copy.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_copy.c' object='cholmodcore_la-cholmod_copy.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_copy.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_copy.Tpo -c -o cholmodcore_la-cholmod_copy.lo `test -f 'cholmod_copy.c' || echo '$(srcdir)/'`cholmod_copy.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_copy.Tpo $(DEPDIR)/cholmodcore_la-cholmod_copy.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_copy.c' object='cholmodcore_la-cholmod_copy.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_copy.lo `test -f 'cholmod_copy.c' || echo '$(srcdir)/'`cholmod_copy.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_copy.lo `test -f 'cholmod_copy.c' || echo '$(srcdir)/'`cholmod_copy.c cholmodcore_la-cholmod_transpose.lo: cholmod_transpose.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_transpose.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_transpose.Tpo -c -o cholmodcore_la-cholmod_transpose.lo `test -f 'cholmod_transpose.c' || echo '$(srcdir)/'`cholmod_transpose.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_transpose.Tpo $(DEPDIR)/cholmodcore_la-cholmod_transpose.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_transpose.c' object='cholmodcore_la-cholmod_transpose.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_transpose.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_transpose.Tpo -c -o cholmodcore_la-cholmod_transpose.lo `test -f 'cholmod_transpose.c' || echo '$(srcdir)/'`cholmod_transpose.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_transpose.Tpo $(DEPDIR)/cholmodcore_la-cholmod_transpose.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_transpose.c' object='cholmodcore_la-cholmod_transpose.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_transpose.lo `test -f 'cholmod_transpose.c' || echo '$(srcdir)/'`cholmod_transpose.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_transpose.lo `test -f 'cholmod_transpose.c' || echo '$(srcdir)/'`cholmod_transpose.c cholmodcore_la-cholmod_add.lo: cholmod_add.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_add.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_add.Tpo -c -o cholmodcore_la-cholmod_add.lo `test -f 'cholmod_add.c' || echo '$(srcdir)/'`cholmod_add.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_add.Tpo $(DEPDIR)/cholmodcore_la-cholmod_add.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_add.c' object='cholmodcore_la-cholmod_add.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_add.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_add.Tpo -c -o cholmodcore_la-cholmod_add.lo `test -f 'cholmod_add.c' || echo '$(srcdir)/'`cholmod_add.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_add.Tpo $(DEPDIR)/cholmodcore_la-cholmod_add.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_add.c' object='cholmodcore_la-cholmod_add.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_add.lo `test -f 'cholmod_add.c' || echo '$(srcdir)/'`cholmod_add.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_add.lo `test -f 'cholmod_add.c' || echo '$(srcdir)/'`cholmod_add.c cholmodcore_la-cholmod_dense.lo: cholmod_dense.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_dense.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_dense.Tpo -c -o cholmodcore_la-cholmod_dense.lo `test -f 'cholmod_dense.c' || echo '$(srcdir)/'`cholmod_dense.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_dense.Tpo $(DEPDIR)/cholmodcore_la-cholmod_dense.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_dense.c' object='cholmodcore_la-cholmod_dense.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_dense.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_dense.Tpo -c -o cholmodcore_la-cholmod_dense.lo `test -f 'cholmod_dense.c' || echo '$(srcdir)/'`cholmod_dense.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_dense.Tpo $(DEPDIR)/cholmodcore_la-cholmod_dense.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_dense.c' object='cholmodcore_la-cholmod_dense.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_dense.lo `test -f 'cholmod_dense.c' || echo '$(srcdir)/'`cholmod_dense.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_dense.lo `test -f 'cholmod_dense.c' || echo '$(srcdir)/'`cholmod_dense.c cholmodcore_la-cholmod_triplet.lo: cholmod_triplet.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_triplet.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_triplet.Tpo -c -o cholmodcore_la-cholmod_triplet.lo `test -f 'cholmod_triplet.c' || echo '$(srcdir)/'`cholmod_triplet.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_triplet.Tpo $(DEPDIR)/cholmodcore_la-cholmod_triplet.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_triplet.c' object='cholmodcore_la-cholmod_triplet.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_triplet.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_triplet.Tpo -c -o cholmodcore_la-cholmod_triplet.lo `test -f 'cholmod_triplet.c' || echo '$(srcdir)/'`cholmod_triplet.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_triplet.Tpo $(DEPDIR)/cholmodcore_la-cholmod_triplet.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_triplet.c' object='cholmodcore_la-cholmod_triplet.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_triplet.lo `test -f 'cholmod_triplet.c' || echo '$(srcdir)/'`cholmod_triplet.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_triplet.lo `test -f 'cholmod_triplet.c' || echo '$(srcdir)/'`cholmod_triplet.c cholmodcore_la-cholmod_band.lo: cholmod_band.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_band.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_band.Tpo -c -o cholmodcore_la-cholmod_band.lo `test -f 'cholmod_band.c' || echo '$(srcdir)/'`cholmod_band.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_band.Tpo $(DEPDIR)/cholmodcore_la-cholmod_band.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_band.c' object='cholmodcore_la-cholmod_band.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_band.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_band.Tpo -c -o cholmodcore_la-cholmod_band.lo `test -f 'cholmod_band.c' || echo '$(srcdir)/'`cholmod_band.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_band.Tpo $(DEPDIR)/cholmodcore_la-cholmod_band.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_band.c' object='cholmodcore_la-cholmod_band.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_band.lo `test -f 'cholmod_band.c' || echo '$(srcdir)/'`cholmod_band.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_band.lo `test -f 'cholmod_band.c' || echo '$(srcdir)/'`cholmod_band.c cholmodcore_la-cholmod_error.lo: cholmod_error.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_error.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_error.Tpo -c -o cholmodcore_la-cholmod_error.lo `test -f 'cholmod_error.c' || echo '$(srcdir)/'`cholmod_error.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_error.Tpo $(DEPDIR)/cholmodcore_la-cholmod_error.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_error.c' object='cholmodcore_la-cholmod_error.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_error.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_error.Tpo -c -o cholmodcore_la-cholmod_error.lo `test -f 'cholmod_error.c' || echo '$(srcdir)/'`cholmod_error.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_error.Tpo $(DEPDIR)/cholmodcore_la-cholmod_error.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_error.c' object='cholmodcore_la-cholmod_error.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_error.lo `test -f 'cholmod_error.c' || echo '$(srcdir)/'`cholmod_error.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_error.lo `test -f 'cholmod_error.c' || echo '$(srcdir)/'`cholmod_error.c cholmodcore_la-cholmod_change_factor.lo: cholmod_change_factor.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_change_factor.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_change_factor.Tpo -c -o cholmodcore_la-cholmod_change_factor.lo `test -f 'cholmod_change_factor.c' || echo '$(srcdir)/'`cholmod_change_factor.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_change_factor.Tpo $(DEPDIR)/cholmodcore_la-cholmod_change_factor.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_change_factor.c' object='cholmodcore_la-cholmod_change_factor.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_change_factor.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_change_factor.Tpo -c -o cholmodcore_la-cholmod_change_factor.lo `test -f 'cholmod_change_factor.c' || echo '$(srcdir)/'`cholmod_change_factor.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_change_factor.Tpo $(DEPDIR)/cholmodcore_la-cholmod_change_factor.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_change_factor.c' object='cholmodcore_la-cholmod_change_factor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_change_factor.lo `test -f 'cholmod_change_factor.c' || echo '$(srcdir)/'`cholmod_change_factor.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_change_factor.lo `test -f 'cholmod_change_factor.c' || echo '$(srcdir)/'`cholmod_change_factor.c cholmodcore_la-cholmod_factor.lo: cholmod_factor.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_factor.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_factor.Tpo -c -o cholmodcore_la-cholmod_factor.lo `test -f 'cholmod_factor.c' || echo '$(srcdir)/'`cholmod_factor.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_factor.Tpo $(DEPDIR)/cholmodcore_la-cholmod_factor.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_factor.c' object='cholmodcore_la-cholmod_factor.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_factor.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_factor.Tpo -c -o cholmodcore_la-cholmod_factor.lo `test -f 'cholmod_factor.c' || echo '$(srcdir)/'`cholmod_factor.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_factor.Tpo $(DEPDIR)/cholmodcore_la-cholmod_factor.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_factor.c' object='cholmodcore_la-cholmod_factor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_factor.lo `test -f 'cholmod_factor.c' || echo '$(srcdir)/'`cholmod_factor.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_factor.lo `test -f 'cholmod_factor.c' || echo '$(srcdir)/'`cholmod_factor.c cholmodcore_la-cholmod_common.lo: cholmod_common.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_common.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_common.Tpo -c -o cholmodcore_la-cholmod_common.lo `test -f 'cholmod_common.c' || echo '$(srcdir)/'`cholmod_common.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_common.Tpo $(DEPDIR)/cholmodcore_la-cholmod_common.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_common.c' object='cholmodcore_la-cholmod_common.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_common.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_common.Tpo -c -o cholmodcore_la-cholmod_common.lo `test -f 'cholmod_common.c' || echo '$(srcdir)/'`cholmod_common.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_common.Tpo $(DEPDIR)/cholmodcore_la-cholmod_common.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_common.c' object='cholmodcore_la-cholmod_common.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_common.lo `test -f 'cholmod_common.c' || echo '$(srcdir)/'`cholmod_common.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_common.lo `test -f 'cholmod_common.c' || echo '$(srcdir)/'`cholmod_common.c cholmodcore_la-cholmod_memory.lo: cholmod_memory.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_memory.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_memory.Tpo -c -o cholmodcore_la-cholmod_memory.lo `test -f 'cholmod_memory.c' || echo '$(srcdir)/'`cholmod_memory.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_memory.Tpo $(DEPDIR)/cholmodcore_la-cholmod_memory.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_memory.c' object='cholmodcore_la-cholmod_memory.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_memory.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_memory.Tpo -c -o cholmodcore_la-cholmod_memory.lo `test -f 'cholmod_memory.c' || echo '$(srcdir)/'`cholmod_memory.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_memory.Tpo $(DEPDIR)/cholmodcore_la-cholmod_memory.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_memory.c' object='cholmodcore_la-cholmod_memory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_memory.lo `test -f 'cholmod_memory.c' || echo '$(srcdir)/'`cholmod_memory.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_memory.lo `test -f 'cholmod_memory.c' || echo '$(srcdir)/'`cholmod_memory.c cholmodcore_la-cholmod_complex.lo: cholmod_complex.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_complex.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_complex.Tpo -c -o cholmodcore_la-cholmod_complex.lo `test -f 'cholmod_complex.c' || echo '$(srcdir)/'`cholmod_complex.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_complex.Tpo $(DEPDIR)/cholmodcore_la-cholmod_complex.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_complex.c' object='cholmodcore_la-cholmod_complex.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_complex.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_complex.Tpo -c -o cholmodcore_la-cholmod_complex.lo `test -f 'cholmod_complex.c' || echo '$(srcdir)/'`cholmod_complex.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_complex.Tpo $(DEPDIR)/cholmodcore_la-cholmod_complex.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_complex.c' object='cholmodcore_la-cholmod_complex.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_complex.lo `test -f 'cholmod_complex.c' || echo '$(srcdir)/'`cholmod_complex.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_complex.lo `test -f 'cholmod_complex.c' || echo '$(srcdir)/'`cholmod_complex.c cholmodcore_la-cholmod_sparse.lo: cholmod_sparse.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_sparse.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_sparse.Tpo -c -o cholmodcore_la-cholmod_sparse.lo `test -f 'cholmod_sparse.c' || echo '$(srcdir)/'`cholmod_sparse.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_sparse.Tpo $(DEPDIR)/cholmodcore_la-cholmod_sparse.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_sparse.c' object='cholmodcore_la-cholmod_sparse.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodcore_la-cholmod_sparse.lo -MD -MP -MF $(DEPDIR)/cholmodcore_la-cholmod_sparse.Tpo -c -o cholmodcore_la-cholmod_sparse.lo `test -f 'cholmod_sparse.c' || echo '$(srcdir)/'`cholmod_sparse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodcore_la-cholmod_sparse.Tpo $(DEPDIR)/cholmodcore_la-cholmod_sparse.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_sparse.c' object='cholmodcore_la-cholmod_sparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_sparse.lo `test -f 'cholmod_sparse.c' || echo '$(srcdir)/'`cholmod_sparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodcore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodcore_la-cholmod_sparse.lo `test -f 'cholmod_sparse.c' || echo '$(srcdir)/'`cholmod_sparse.c mostlyclean-libtool: -rm -f *.lo @@ -466,26 +552,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -497,15 +572,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -514,6 +585,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -655,18 +741,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/glm/SSparse/CHOLMOD/Include/Makefile.in jags-4.0.0/src/modules/glm/SSparse/CHOLMOD/Include/Makefile.in --- jags-3.4.0/src/modules/glm/SSparse/CHOLMOD/Include/Makefile.in 2013-08-30 13:23:29.000000000 +0000 +++ jags-4.0.0/src/modules/glm/SSparse/CHOLMOD/Include/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/glm/SSparse/CHOLMOD/Include -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -63,10 +98,24 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -75,11 +124,30 @@ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -93,6 +161,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -162,10 +233,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -252,7 +319,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/glm/SSparse/CHOLMOD/Include/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/glm/SSparse/CHOLMOD/Include/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -277,26 +343,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -308,15 +363,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -325,6 +376,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -461,19 +527,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru jags-3.4.0/src/modules/glm/SSparse/CHOLMOD/Makefile.in jags-4.0.0/src/modules/glm/SSparse/CHOLMOD/Makefile.in --- jags-3.4.0/src/modules/glm/SSparse/CHOLMOD/Makefile.in 2013-08-30 13:23:29.000000000 +0000 +++ jags-4.0.0/src/modules/glm/SSparse/CHOLMOD/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/glm/SSparse/CHOLMOD -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -62,6 +98,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -73,28 +110,54 @@ Check/cholmodcheck.la am_cholmod_la_OBJECTS = cholmod_la_OBJECTS = $(am_cholmod_la_OBJECTS) -cholmod_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +cholmod_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(cholmod_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(cholmod_la_SOURCES) DIST_SOURCES = $(cholmod_la_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -102,12 +165,33 @@ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ @@ -136,6 +220,7 @@ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -149,6 +234,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -218,10 +306,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -314,7 +398,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/glm/SSparse/CHOLMOD/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/glm/SSparse/CHOLMOD/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -335,14 +418,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + cholmod.la: $(cholmod_la_OBJECTS) $(cholmod_la_DEPENDENCIES) $(EXTRA_cholmod_la_DEPENDENCIES) - $(cholmod_la_LINK) $(cholmod_la_OBJECTS) $(cholmod_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(cholmod_la_LINK) $(cholmod_la_OBJECTS) $(cholmod_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -357,22 +443,25 @@ -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -387,57 +476,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -453,12 +497,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -470,15 +509,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -487,6 +522,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -650,12 +700,11 @@ uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - clean-noinstLTLIBRARIES ctags ctags-recursive distclean \ +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ @@ -665,8 +714,10 @@ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/glm/SSparse/CHOLMOD/MatrixOps/Makefile.in jags-4.0.0/src/modules/glm/SSparse/CHOLMOD/MatrixOps/Makefile.in --- jags-3.4.0/src/modules/glm/SSparse/CHOLMOD/MatrixOps/Makefile.in 2013-08-30 13:23:29.000000000 +0000 +++ jags-4.0.0/src/modules/glm/SSparse/CHOLMOD/MatrixOps/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/glm/SSparse/CHOLMOD/MatrixOps -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -62,6 +98,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -78,22 +115,48 @@ cholmodmatrix_la-cholmod_ssmult.lo \ cholmodmatrix_la-cholmod_vertcat.lo cholmodmatrix_la_OBJECTS = $(am_cholmodmatrix_la_OBJECTS) -cholmodmatrix_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(cholmodmatrix_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +cholmodmatrix_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(cholmodmatrix_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(cholmodmatrix_la_SOURCES) DIST_SOURCES = $(cholmodmatrix_la_SOURCES) am__can_run_installinfo = \ @@ -101,11 +164,30 @@ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -119,6 +201,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -188,10 +273,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -284,7 +365,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/glm/SSparse/CHOLMOD/MatrixOps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/glm/SSparse/CHOLMOD/MatrixOps/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -305,14 +385,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + cholmodmatrix.la: $(cholmodmatrix_la_OBJECTS) $(cholmodmatrix_la_DEPENDENCIES) $(EXTRA_cholmodmatrix_la_DEPENDENCIES) - $(cholmodmatrix_la_LINK) $(cholmodmatrix_la_OBJECTS) $(cholmodmatrix_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(cholmodmatrix_la_LINK) $(cholmodmatrix_la_OBJECTS) $(cholmodmatrix_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -331,88 +414,91 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cholmodmatrix_la-cholmod_vertcat.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< cholmodmatrix_la-cholmod_drop.lo: cholmod_drop.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmatrix_la-cholmod_drop.lo -MD -MP -MF $(DEPDIR)/cholmodmatrix_la-cholmod_drop.Tpo -c -o cholmodmatrix_la-cholmod_drop.lo `test -f 'cholmod_drop.c' || echo '$(srcdir)/'`cholmod_drop.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodmatrix_la-cholmod_drop.Tpo $(DEPDIR)/cholmodmatrix_la-cholmod_drop.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_drop.c' object='cholmodmatrix_la-cholmod_drop.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmatrix_la-cholmod_drop.lo -MD -MP -MF $(DEPDIR)/cholmodmatrix_la-cholmod_drop.Tpo -c -o cholmodmatrix_la-cholmod_drop.lo `test -f 'cholmod_drop.c' || echo '$(srcdir)/'`cholmod_drop.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodmatrix_la-cholmod_drop.Tpo $(DEPDIR)/cholmodmatrix_la-cholmod_drop.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_drop.c' object='cholmodmatrix_la-cholmod_drop.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmatrix_la-cholmod_drop.lo `test -f 'cholmod_drop.c' || echo '$(srcdir)/'`cholmod_drop.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmatrix_la-cholmod_drop.lo `test -f 'cholmod_drop.c' || echo '$(srcdir)/'`cholmod_drop.c cholmodmatrix_la-cholmod_scale.lo: cholmod_scale.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmatrix_la-cholmod_scale.lo -MD -MP -MF $(DEPDIR)/cholmodmatrix_la-cholmod_scale.Tpo -c -o cholmodmatrix_la-cholmod_scale.lo `test -f 'cholmod_scale.c' || echo '$(srcdir)/'`cholmod_scale.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodmatrix_la-cholmod_scale.Tpo $(DEPDIR)/cholmodmatrix_la-cholmod_scale.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_scale.c' object='cholmodmatrix_la-cholmod_scale.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmatrix_la-cholmod_scale.lo -MD -MP -MF $(DEPDIR)/cholmodmatrix_la-cholmod_scale.Tpo -c -o cholmodmatrix_la-cholmod_scale.lo `test -f 'cholmod_scale.c' || echo '$(srcdir)/'`cholmod_scale.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodmatrix_la-cholmod_scale.Tpo $(DEPDIR)/cholmodmatrix_la-cholmod_scale.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_scale.c' object='cholmodmatrix_la-cholmod_scale.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmatrix_la-cholmod_scale.lo `test -f 'cholmod_scale.c' || echo '$(srcdir)/'`cholmod_scale.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmatrix_la-cholmod_scale.lo `test -f 'cholmod_scale.c' || echo '$(srcdir)/'`cholmod_scale.c cholmodmatrix_la-cholmod_submatrix.lo: cholmod_submatrix.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmatrix_la-cholmod_submatrix.lo -MD -MP -MF $(DEPDIR)/cholmodmatrix_la-cholmod_submatrix.Tpo -c -o cholmodmatrix_la-cholmod_submatrix.lo `test -f 'cholmod_submatrix.c' || echo '$(srcdir)/'`cholmod_submatrix.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodmatrix_la-cholmod_submatrix.Tpo $(DEPDIR)/cholmodmatrix_la-cholmod_submatrix.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_submatrix.c' object='cholmodmatrix_la-cholmod_submatrix.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmatrix_la-cholmod_submatrix.lo -MD -MP -MF $(DEPDIR)/cholmodmatrix_la-cholmod_submatrix.Tpo -c -o cholmodmatrix_la-cholmod_submatrix.lo `test -f 'cholmod_submatrix.c' || echo '$(srcdir)/'`cholmod_submatrix.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodmatrix_la-cholmod_submatrix.Tpo $(DEPDIR)/cholmodmatrix_la-cholmod_submatrix.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_submatrix.c' object='cholmodmatrix_la-cholmod_submatrix.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmatrix_la-cholmod_submatrix.lo `test -f 'cholmod_submatrix.c' || echo '$(srcdir)/'`cholmod_submatrix.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmatrix_la-cholmod_submatrix.lo `test -f 'cholmod_submatrix.c' || echo '$(srcdir)/'`cholmod_submatrix.c cholmodmatrix_la-cholmod_horzcat.lo: cholmod_horzcat.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmatrix_la-cholmod_horzcat.lo -MD -MP -MF $(DEPDIR)/cholmodmatrix_la-cholmod_horzcat.Tpo -c -o cholmodmatrix_la-cholmod_horzcat.lo `test -f 'cholmod_horzcat.c' || echo '$(srcdir)/'`cholmod_horzcat.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodmatrix_la-cholmod_horzcat.Tpo $(DEPDIR)/cholmodmatrix_la-cholmod_horzcat.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_horzcat.c' object='cholmodmatrix_la-cholmod_horzcat.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmatrix_la-cholmod_horzcat.lo -MD -MP -MF $(DEPDIR)/cholmodmatrix_la-cholmod_horzcat.Tpo -c -o cholmodmatrix_la-cholmod_horzcat.lo `test -f 'cholmod_horzcat.c' || echo '$(srcdir)/'`cholmod_horzcat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodmatrix_la-cholmod_horzcat.Tpo $(DEPDIR)/cholmodmatrix_la-cholmod_horzcat.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_horzcat.c' object='cholmodmatrix_la-cholmod_horzcat.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmatrix_la-cholmod_horzcat.lo `test -f 'cholmod_horzcat.c' || echo '$(srcdir)/'`cholmod_horzcat.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmatrix_la-cholmod_horzcat.lo `test -f 'cholmod_horzcat.c' || echo '$(srcdir)/'`cholmod_horzcat.c cholmodmatrix_la-cholmod_sdmult.lo: cholmod_sdmult.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmatrix_la-cholmod_sdmult.lo -MD -MP -MF $(DEPDIR)/cholmodmatrix_la-cholmod_sdmult.Tpo -c -o cholmodmatrix_la-cholmod_sdmult.lo `test -f 'cholmod_sdmult.c' || echo '$(srcdir)/'`cholmod_sdmult.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodmatrix_la-cholmod_sdmult.Tpo $(DEPDIR)/cholmodmatrix_la-cholmod_sdmult.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_sdmult.c' object='cholmodmatrix_la-cholmod_sdmult.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmatrix_la-cholmod_sdmult.lo -MD -MP -MF $(DEPDIR)/cholmodmatrix_la-cholmod_sdmult.Tpo -c -o cholmodmatrix_la-cholmod_sdmult.lo `test -f 'cholmod_sdmult.c' || echo '$(srcdir)/'`cholmod_sdmult.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodmatrix_la-cholmod_sdmult.Tpo $(DEPDIR)/cholmodmatrix_la-cholmod_sdmult.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_sdmult.c' object='cholmodmatrix_la-cholmod_sdmult.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmatrix_la-cholmod_sdmult.lo `test -f 'cholmod_sdmult.c' || echo '$(srcdir)/'`cholmod_sdmult.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmatrix_la-cholmod_sdmult.lo `test -f 'cholmod_sdmult.c' || echo '$(srcdir)/'`cholmod_sdmult.c cholmodmatrix_la-cholmod_symmetry.lo: cholmod_symmetry.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmatrix_la-cholmod_symmetry.lo -MD -MP -MF $(DEPDIR)/cholmodmatrix_la-cholmod_symmetry.Tpo -c -o cholmodmatrix_la-cholmod_symmetry.lo `test -f 'cholmod_symmetry.c' || echo '$(srcdir)/'`cholmod_symmetry.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodmatrix_la-cholmod_symmetry.Tpo $(DEPDIR)/cholmodmatrix_la-cholmod_symmetry.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_symmetry.c' object='cholmodmatrix_la-cholmod_symmetry.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmatrix_la-cholmod_symmetry.lo -MD -MP -MF $(DEPDIR)/cholmodmatrix_la-cholmod_symmetry.Tpo -c -o cholmodmatrix_la-cholmod_symmetry.lo `test -f 'cholmod_symmetry.c' || echo '$(srcdir)/'`cholmod_symmetry.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodmatrix_la-cholmod_symmetry.Tpo $(DEPDIR)/cholmodmatrix_la-cholmod_symmetry.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_symmetry.c' object='cholmodmatrix_la-cholmod_symmetry.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmatrix_la-cholmod_symmetry.lo `test -f 'cholmod_symmetry.c' || echo '$(srcdir)/'`cholmod_symmetry.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmatrix_la-cholmod_symmetry.lo `test -f 'cholmod_symmetry.c' || echo '$(srcdir)/'`cholmod_symmetry.c cholmodmatrix_la-cholmod_norm.lo: cholmod_norm.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmatrix_la-cholmod_norm.lo -MD -MP -MF $(DEPDIR)/cholmodmatrix_la-cholmod_norm.Tpo -c -o cholmodmatrix_la-cholmod_norm.lo `test -f 'cholmod_norm.c' || echo '$(srcdir)/'`cholmod_norm.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodmatrix_la-cholmod_norm.Tpo $(DEPDIR)/cholmodmatrix_la-cholmod_norm.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_norm.c' object='cholmodmatrix_la-cholmod_norm.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmatrix_la-cholmod_norm.lo -MD -MP -MF $(DEPDIR)/cholmodmatrix_la-cholmod_norm.Tpo -c -o cholmodmatrix_la-cholmod_norm.lo `test -f 'cholmod_norm.c' || echo '$(srcdir)/'`cholmod_norm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodmatrix_la-cholmod_norm.Tpo $(DEPDIR)/cholmodmatrix_la-cholmod_norm.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_norm.c' object='cholmodmatrix_la-cholmod_norm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmatrix_la-cholmod_norm.lo `test -f 'cholmod_norm.c' || echo '$(srcdir)/'`cholmod_norm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmatrix_la-cholmod_norm.lo `test -f 'cholmod_norm.c' || echo '$(srcdir)/'`cholmod_norm.c cholmodmatrix_la-cholmod_ssmult.lo: cholmod_ssmult.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmatrix_la-cholmod_ssmult.lo -MD -MP -MF $(DEPDIR)/cholmodmatrix_la-cholmod_ssmult.Tpo -c -o cholmodmatrix_la-cholmod_ssmult.lo `test -f 'cholmod_ssmult.c' || echo '$(srcdir)/'`cholmod_ssmult.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodmatrix_la-cholmod_ssmult.Tpo $(DEPDIR)/cholmodmatrix_la-cholmod_ssmult.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_ssmult.c' object='cholmodmatrix_la-cholmod_ssmult.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmatrix_la-cholmod_ssmult.lo -MD -MP -MF $(DEPDIR)/cholmodmatrix_la-cholmod_ssmult.Tpo -c -o cholmodmatrix_la-cholmod_ssmult.lo `test -f 'cholmod_ssmult.c' || echo '$(srcdir)/'`cholmod_ssmult.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodmatrix_la-cholmod_ssmult.Tpo $(DEPDIR)/cholmodmatrix_la-cholmod_ssmult.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_ssmult.c' object='cholmodmatrix_la-cholmod_ssmult.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmatrix_la-cholmod_ssmult.lo `test -f 'cholmod_ssmult.c' || echo '$(srcdir)/'`cholmod_ssmult.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmatrix_la-cholmod_ssmult.lo `test -f 'cholmod_ssmult.c' || echo '$(srcdir)/'`cholmod_ssmult.c cholmodmatrix_la-cholmod_vertcat.lo: cholmod_vertcat.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmatrix_la-cholmod_vertcat.lo -MD -MP -MF $(DEPDIR)/cholmodmatrix_la-cholmod_vertcat.Tpo -c -o cholmodmatrix_la-cholmod_vertcat.lo `test -f 'cholmod_vertcat.c' || echo '$(srcdir)/'`cholmod_vertcat.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodmatrix_la-cholmod_vertcat.Tpo $(DEPDIR)/cholmodmatrix_la-cholmod_vertcat.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_vertcat.c' object='cholmodmatrix_la-cholmod_vertcat.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmatrix_la-cholmod_vertcat.lo -MD -MP -MF $(DEPDIR)/cholmodmatrix_la-cholmod_vertcat.Tpo -c -o cholmodmatrix_la-cholmod_vertcat.lo `test -f 'cholmod_vertcat.c' || echo '$(srcdir)/'`cholmod_vertcat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodmatrix_la-cholmod_vertcat.Tpo $(DEPDIR)/cholmodmatrix_la-cholmod_vertcat.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_vertcat.c' object='cholmodmatrix_la-cholmod_vertcat.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmatrix_la-cholmod_vertcat.lo `test -f 'cholmod_vertcat.c' || echo '$(srcdir)/'`cholmod_vertcat.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmatrix_la-cholmod_vertcat.lo `test -f 'cholmod_vertcat.c' || echo '$(srcdir)/'`cholmod_vertcat.c mostlyclean-libtool: -rm -f *.lo @@ -420,26 +506,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -451,15 +526,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -468,6 +539,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -609,18 +695,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/glm/SSparse/CHOLMOD/Modify/Makefile.in jags-4.0.0/src/modules/glm/SSparse/CHOLMOD/Modify/Makefile.in --- jags-3.4.0/src/modules/glm/SSparse/CHOLMOD/Modify/Makefile.in 2013-08-30 13:23:29.000000000 +0000 +++ jags-4.0.0/src/modules/glm/SSparse/CHOLMOD/Modify/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/glm/SSparse/CHOLMOD/Modify -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -62,6 +98,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -72,22 +109,48 @@ cholmodmodify_la-cholmod_updown.lo \ cholmodmodify_la-cholmod_rowdel.lo cholmodmodify_la_OBJECTS = $(am_cholmodmodify_la_OBJECTS) -cholmodmodify_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(cholmodmodify_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +cholmodmodify_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(cholmodmodify_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(cholmodmodify_la_SOURCES) DIST_SOURCES = $(cholmodmodify_la_SOURCES) am__can_run_installinfo = \ @@ -95,11 +158,30 @@ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -113,6 +195,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -182,10 +267,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -277,7 +358,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/glm/SSparse/CHOLMOD/Modify/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/glm/SSparse/CHOLMOD/Modify/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -298,14 +378,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + cholmodmodify.la: $(cholmodmodify_la_OBJECTS) $(cholmodmodify_la_DEPENDENCIES) $(EXTRA_cholmodmodify_la_DEPENDENCIES) - $(cholmodmodify_la_LINK) $(cholmodmodify_la_OBJECTS) $(cholmodmodify_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(cholmodmodify_la_LINK) $(cholmodmodify_la_OBJECTS) $(cholmodmodify_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -318,46 +401,49 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cholmodmodify_la-cholmod_updown.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< cholmodmodify_la-cholmod_rowadd.lo: cholmod_rowadd.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmodify_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmodify_la-cholmod_rowadd.lo -MD -MP -MF $(DEPDIR)/cholmodmodify_la-cholmod_rowadd.Tpo -c -o cholmodmodify_la-cholmod_rowadd.lo `test -f 'cholmod_rowadd.c' || echo '$(srcdir)/'`cholmod_rowadd.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodmodify_la-cholmod_rowadd.Tpo $(DEPDIR)/cholmodmodify_la-cholmod_rowadd.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_rowadd.c' object='cholmodmodify_la-cholmod_rowadd.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmodify_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmodify_la-cholmod_rowadd.lo -MD -MP -MF $(DEPDIR)/cholmodmodify_la-cholmod_rowadd.Tpo -c -o cholmodmodify_la-cholmod_rowadd.lo `test -f 'cholmod_rowadd.c' || echo '$(srcdir)/'`cholmod_rowadd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodmodify_la-cholmod_rowadd.Tpo $(DEPDIR)/cholmodmodify_la-cholmod_rowadd.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_rowadd.c' object='cholmodmodify_la-cholmod_rowadd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmodify_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmodify_la-cholmod_rowadd.lo `test -f 'cholmod_rowadd.c' || echo '$(srcdir)/'`cholmod_rowadd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmodify_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmodify_la-cholmod_rowadd.lo `test -f 'cholmod_rowadd.c' || echo '$(srcdir)/'`cholmod_rowadd.c cholmodmodify_la-cholmod_updown.lo: cholmod_updown.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmodify_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmodify_la-cholmod_updown.lo -MD -MP -MF $(DEPDIR)/cholmodmodify_la-cholmod_updown.Tpo -c -o cholmodmodify_la-cholmod_updown.lo `test -f 'cholmod_updown.c' || echo '$(srcdir)/'`cholmod_updown.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodmodify_la-cholmod_updown.Tpo $(DEPDIR)/cholmodmodify_la-cholmod_updown.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_updown.c' object='cholmodmodify_la-cholmod_updown.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmodify_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmodify_la-cholmod_updown.lo -MD -MP -MF $(DEPDIR)/cholmodmodify_la-cholmod_updown.Tpo -c -o cholmodmodify_la-cholmod_updown.lo `test -f 'cholmod_updown.c' || echo '$(srcdir)/'`cholmod_updown.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodmodify_la-cholmod_updown.Tpo $(DEPDIR)/cholmodmodify_la-cholmod_updown.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_updown.c' object='cholmodmodify_la-cholmod_updown.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmodify_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmodify_la-cholmod_updown.lo `test -f 'cholmod_updown.c' || echo '$(srcdir)/'`cholmod_updown.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmodify_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmodify_la-cholmod_updown.lo `test -f 'cholmod_updown.c' || echo '$(srcdir)/'`cholmod_updown.c cholmodmodify_la-cholmod_rowdel.lo: cholmod_rowdel.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmodify_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmodify_la-cholmod_rowdel.lo -MD -MP -MF $(DEPDIR)/cholmodmodify_la-cholmod_rowdel.Tpo -c -o cholmodmodify_la-cholmod_rowdel.lo `test -f 'cholmod_rowdel.c' || echo '$(srcdir)/'`cholmod_rowdel.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodmodify_la-cholmod_rowdel.Tpo $(DEPDIR)/cholmodmodify_la-cholmod_rowdel.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_rowdel.c' object='cholmodmodify_la-cholmod_rowdel.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmodify_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodmodify_la-cholmod_rowdel.lo -MD -MP -MF $(DEPDIR)/cholmodmodify_la-cholmod_rowdel.Tpo -c -o cholmodmodify_la-cholmod_rowdel.lo `test -f 'cholmod_rowdel.c' || echo '$(srcdir)/'`cholmod_rowdel.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodmodify_la-cholmod_rowdel.Tpo $(DEPDIR)/cholmodmodify_la-cholmod_rowdel.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_rowdel.c' object='cholmodmodify_la-cholmod_rowdel.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmodify_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmodify_la-cholmod_rowdel.lo `test -f 'cholmod_rowdel.c' || echo '$(srcdir)/'`cholmod_rowdel.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodmodify_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodmodify_la-cholmod_rowdel.lo `test -f 'cholmod_rowdel.c' || echo '$(srcdir)/'`cholmod_rowdel.c mostlyclean-libtool: -rm -f *.lo @@ -365,26 +451,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -396,15 +471,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -413,6 +484,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -554,18 +640,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/glm/SSparse/CHOLMOD/Supernodal/Makefile.in jags-4.0.0/src/modules/glm/SSparse/CHOLMOD/Supernodal/Makefile.in --- jags-3.4.0/src/modules/glm/SSparse/CHOLMOD/Supernodal/Makefile.in 2013-08-30 13:23:29.000000000 +0000 +++ jags-4.0.0/src/modules/glm/SSparse/CHOLMOD/Supernodal/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/glm/SSparse/CHOLMOD/Supernodal -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -62,6 +98,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -73,22 +110,48 @@ cholmodsupernodal_la-cholmod_super_symbolic.lo \ cholmodsupernodal_la-cholmod_super_solve.lo cholmodsupernodal_la_OBJECTS = $(am_cholmodsupernodal_la_OBJECTS) -cholmodsupernodal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(cholmodsupernodal_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +cholmodsupernodal_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(cholmodsupernodal_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(cholmodsupernodal_la_SOURCES) DIST_SOURCES = $(cholmodsupernodal_la_SOURCES) am__can_run_installinfo = \ @@ -96,11 +159,30 @@ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -114,6 +196,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -183,10 +268,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -280,7 +361,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/glm/SSparse/CHOLMOD/Supernodal/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/glm/SSparse/CHOLMOD/Supernodal/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -301,14 +381,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + cholmodsupernodal.la: $(cholmodsupernodal_la_OBJECTS) $(cholmodsupernodal_la_DEPENDENCIES) $(EXTRA_cholmodsupernodal_la_DEPENDENCIES) - $(cholmodsupernodal_la_LINK) $(cholmodsupernodal_la_OBJECTS) $(cholmodsupernodal_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(cholmodsupernodal_la_LINK) $(cholmodsupernodal_la_OBJECTS) $(cholmodsupernodal_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -321,46 +404,49 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cholmodsupernodal_la-cholmod_super_symbolic.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< cholmodsupernodal_la-cholmod_super_numeric.lo: cholmod_super_numeric.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodsupernodal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodsupernodal_la-cholmod_super_numeric.lo -MD -MP -MF $(DEPDIR)/cholmodsupernodal_la-cholmod_super_numeric.Tpo -c -o cholmodsupernodal_la-cholmod_super_numeric.lo `test -f 'cholmod_super_numeric.c' || echo '$(srcdir)/'`cholmod_super_numeric.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodsupernodal_la-cholmod_super_numeric.Tpo $(DEPDIR)/cholmodsupernodal_la-cholmod_super_numeric.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_super_numeric.c' object='cholmodsupernodal_la-cholmod_super_numeric.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodsupernodal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodsupernodal_la-cholmod_super_numeric.lo -MD -MP -MF $(DEPDIR)/cholmodsupernodal_la-cholmod_super_numeric.Tpo -c -o cholmodsupernodal_la-cholmod_super_numeric.lo `test -f 'cholmod_super_numeric.c' || echo '$(srcdir)/'`cholmod_super_numeric.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodsupernodal_la-cholmod_super_numeric.Tpo $(DEPDIR)/cholmodsupernodal_la-cholmod_super_numeric.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_super_numeric.c' object='cholmodsupernodal_la-cholmod_super_numeric.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodsupernodal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodsupernodal_la-cholmod_super_numeric.lo `test -f 'cholmod_super_numeric.c' || echo '$(srcdir)/'`cholmod_super_numeric.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodsupernodal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodsupernodal_la-cholmod_super_numeric.lo `test -f 'cholmod_super_numeric.c' || echo '$(srcdir)/'`cholmod_super_numeric.c cholmodsupernodal_la-cholmod_super_symbolic.lo: cholmod_super_symbolic.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodsupernodal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodsupernodal_la-cholmod_super_symbolic.lo -MD -MP -MF $(DEPDIR)/cholmodsupernodal_la-cholmod_super_symbolic.Tpo -c -o cholmodsupernodal_la-cholmod_super_symbolic.lo `test -f 'cholmod_super_symbolic.c' || echo '$(srcdir)/'`cholmod_super_symbolic.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodsupernodal_la-cholmod_super_symbolic.Tpo $(DEPDIR)/cholmodsupernodal_la-cholmod_super_symbolic.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_super_symbolic.c' object='cholmodsupernodal_la-cholmod_super_symbolic.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodsupernodal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodsupernodal_la-cholmod_super_symbolic.lo -MD -MP -MF $(DEPDIR)/cholmodsupernodal_la-cholmod_super_symbolic.Tpo -c -o cholmodsupernodal_la-cholmod_super_symbolic.lo `test -f 'cholmod_super_symbolic.c' || echo '$(srcdir)/'`cholmod_super_symbolic.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodsupernodal_la-cholmod_super_symbolic.Tpo $(DEPDIR)/cholmodsupernodal_la-cholmod_super_symbolic.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_super_symbolic.c' object='cholmodsupernodal_la-cholmod_super_symbolic.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodsupernodal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodsupernodal_la-cholmod_super_symbolic.lo `test -f 'cholmod_super_symbolic.c' || echo '$(srcdir)/'`cholmod_super_symbolic.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodsupernodal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodsupernodal_la-cholmod_super_symbolic.lo `test -f 'cholmod_super_symbolic.c' || echo '$(srcdir)/'`cholmod_super_symbolic.c cholmodsupernodal_la-cholmod_super_solve.lo: cholmod_super_solve.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodsupernodal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodsupernodal_la-cholmod_super_solve.lo -MD -MP -MF $(DEPDIR)/cholmodsupernodal_la-cholmod_super_solve.Tpo -c -o cholmodsupernodal_la-cholmod_super_solve.lo `test -f 'cholmod_super_solve.c' || echo '$(srcdir)/'`cholmod_super_solve.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cholmodsupernodal_la-cholmod_super_solve.Tpo $(DEPDIR)/cholmodsupernodal_la-cholmod_super_solve.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cholmod_super_solve.c' object='cholmodsupernodal_la-cholmod_super_solve.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodsupernodal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cholmodsupernodal_la-cholmod_super_solve.lo -MD -MP -MF $(DEPDIR)/cholmodsupernodal_la-cholmod_super_solve.Tpo -c -o cholmodsupernodal_la-cholmod_super_solve.lo `test -f 'cholmod_super_solve.c' || echo '$(srcdir)/'`cholmod_super_solve.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cholmodsupernodal_la-cholmod_super_solve.Tpo $(DEPDIR)/cholmodsupernodal_la-cholmod_super_solve.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cholmod_super_solve.c' object='cholmodsupernodal_la-cholmod_super_solve.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodsupernodal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodsupernodal_la-cholmod_super_solve.lo `test -f 'cholmod_super_solve.c' || echo '$(srcdir)/'`cholmod_super_solve.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cholmodsupernodal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cholmodsupernodal_la-cholmod_super_solve.lo `test -f 'cholmod_super_solve.c' || echo '$(srcdir)/'`cholmod_super_solve.c mostlyclean-libtool: -rm -f *.lo @@ -368,26 +454,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -399,15 +474,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -416,6 +487,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -557,18 +643,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/glm/SSparse/COLAMD/Makefile.in jags-4.0.0/src/modules/glm/SSparse/COLAMD/Makefile.in --- jags-3.4.0/src/modules/glm/SSparse/COLAMD/Makefile.in 2013-08-30 13:23:29.000000000 +0000 +++ jags-4.0.0/src/modules/glm/SSparse/COLAMD/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/glm/SSparse/COLAMD -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,30 +99,59 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) colamd_la_LIBADD = -am_colamd_la_OBJECTS = colamd_la-colamd.lo colamd_la-colamd_global.lo +am__dirstamp = $(am__leading_dot)dirstamp +am_colamd_la_OBJECTS = Source/colamd_la-colamd.lo \ + Source/colamd_la-colamd_global.lo colamd_la_OBJECTS = $(am_colamd_la_OBJECTS) -colamd_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +colamd_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(colamd_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(colamd_la_SOURCES) DIST_SOURCES = $(colamd_la_SOURCES) am__can_run_installinfo = \ @@ -96,11 +160,30 @@ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -114,6 +197,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -183,10 +269,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -279,7 +361,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/glm/SSparse/COLAMD/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/glm/SSparse/COLAMD/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -300,85 +381,93 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } +Source/$(am__dirstamp): + @$(MKDIR_P) Source + @: > Source/$(am__dirstamp) +Source/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) Source/$(DEPDIR) + @: > Source/$(DEPDIR)/$(am__dirstamp) +Source/colamd_la-colamd.lo: Source/$(am__dirstamp) \ + Source/$(DEPDIR)/$(am__dirstamp) +Source/colamd_la-colamd_global.lo: Source/$(am__dirstamp) \ + Source/$(DEPDIR)/$(am__dirstamp) + colamd.la: $(colamd_la_OBJECTS) $(colamd_la_DEPENDENCIES) $(EXTRA_colamd_la_DEPENDENCIES) - $(colamd_la_LINK) $(colamd_la_OBJECTS) $(colamd_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(colamd_la_LINK) $(colamd_la_OBJECTS) $(colamd_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) + -rm -f Source/*.$(OBJEXT) + -rm -f Source/*.lo distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/colamd_la-colamd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/colamd_la-colamd_global.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@Source/$(DEPDIR)/colamd_la-colamd.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@Source/$(DEPDIR)/colamd_la-colamd_global.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< -colamd_la-colamd.lo: Source/colamd.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(colamd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT colamd_la-colamd.lo -MD -MP -MF $(DEPDIR)/colamd_la-colamd.Tpo -c -o colamd_la-colamd.lo `test -f 'Source/colamd.c' || echo '$(srcdir)/'`Source/colamd.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/colamd_la-colamd.Tpo $(DEPDIR)/colamd_la-colamd.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='Source/colamd.c' object='colamd_la-colamd.lo' libtool=yes @AMDEPBACKSLASH@ +Source/colamd_la-colamd.lo: Source/colamd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(colamd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT Source/colamd_la-colamd.lo -MD -MP -MF Source/$(DEPDIR)/colamd_la-colamd.Tpo -c -o Source/colamd_la-colamd.lo `test -f 'Source/colamd.c' || echo '$(srcdir)/'`Source/colamd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) Source/$(DEPDIR)/colamd_la-colamd.Tpo Source/$(DEPDIR)/colamd_la-colamd.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='Source/colamd.c' object='Source/colamd_la-colamd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(colamd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o colamd_la-colamd.lo `test -f 'Source/colamd.c' || echo '$(srcdir)/'`Source/colamd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(colamd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o Source/colamd_la-colamd.lo `test -f 'Source/colamd.c' || echo '$(srcdir)/'`Source/colamd.c -colamd_la-colamd_global.lo: Source/colamd_global.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(colamd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT colamd_la-colamd_global.lo -MD -MP -MF $(DEPDIR)/colamd_la-colamd_global.Tpo -c -o colamd_la-colamd_global.lo `test -f 'Source/colamd_global.c' || echo '$(srcdir)/'`Source/colamd_global.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/colamd_la-colamd_global.Tpo $(DEPDIR)/colamd_la-colamd_global.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='Source/colamd_global.c' object='colamd_la-colamd_global.lo' libtool=yes @AMDEPBACKSLASH@ +Source/colamd_la-colamd_global.lo: Source/colamd_global.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(colamd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT Source/colamd_la-colamd_global.lo -MD -MP -MF Source/$(DEPDIR)/colamd_la-colamd_global.Tpo -c -o Source/colamd_la-colamd_global.lo `test -f 'Source/colamd_global.c' || echo '$(srcdir)/'`Source/colamd_global.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) Source/$(DEPDIR)/colamd_la-colamd_global.Tpo Source/$(DEPDIR)/colamd_la-colamd_global.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='Source/colamd_global.c' object='Source/colamd_la-colamd_global.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(colamd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o colamd_la-colamd_global.lo `test -f 'Source/colamd_global.c' || echo '$(srcdir)/'`Source/colamd_global.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(colamd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o Source/colamd_la-colamd_global.lo `test -f 'Source/colamd_global.c' || echo '$(srcdir)/'`Source/colamd_global.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs + -rm -rf Source/.libs Source/_libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -390,15 +479,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -407,6 +492,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -471,6 +571,8 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f Source/$(DEPDIR)/$(am__dirstamp) + -rm -f Source/$(am__dirstamp) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -481,7 +583,7 @@ mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -rf Source/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -527,7 +629,7 @@ installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -rf Source/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -548,18 +650,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/glm/SSparse/Makefile.in jags-4.0.0/src/modules/glm/SSparse/Makefile.in --- jags-3.4.0/src/modules/glm/SSparse/Makefile.in 2013-08-30 13:23:29.000000000 +0000 +++ jags-4.0.0/src/modules/glm/SSparse/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/glm/SSparse -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -62,6 +98,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -71,28 +108,54 @@ CHOLMOD/cholmod.la am_ssparse_la_OBJECTS = ssparse_la_OBJECTS = $(am_ssparse_la_OBJECTS) -ssparse_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +ssparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(ssparse_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(ssparse_la_SOURCES) DIST_SOURCES = $(ssparse_la_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -100,12 +163,33 @@ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ @@ -134,6 +218,7 @@ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -147,6 +232,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -216,10 +304,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -305,7 +389,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/glm/SSparse/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/glm/SSparse/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -326,14 +409,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + ssparse.la: $(ssparse_la_OBJECTS) $(ssparse_la_DEPENDENCIES) $(EXTRA_ssparse_la_DEPENDENCIES) - $(ssparse_la_LINK) $(ssparse_la_OBJECTS) $(ssparse_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(ssparse_la_LINK) $(ssparse_la_OBJECTS) $(ssparse_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -348,22 +434,25 @@ -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -378,57 +467,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -444,12 +488,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -461,15 +500,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -478,6 +513,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -641,12 +691,11 @@ uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - clean-noinstLTLIBRARIES ctags ctags-recursive distclean \ +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ @@ -656,8 +705,10 @@ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/glm/SSparse/UFconfig/Makefile.in jags-4.0.0/src/modules/glm/SSparse/UFconfig/Makefile.in --- jags-3.4.0/src/modules/glm/SSparse/UFconfig/Makefile.in 2013-08-30 13:23:29.000000000 +0000 +++ jags-4.0.0/src/modules/glm/SSparse/UFconfig/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/glm/SSparse/UFconfig -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -63,10 +98,24 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -75,11 +124,30 @@ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -93,6 +161,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -162,10 +233,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -247,7 +314,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/glm/SSparse/UFconfig/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/glm/SSparse/UFconfig/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -272,26 +338,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -303,15 +358,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -320,6 +371,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -456,19 +522,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru jags-3.4.0/src/modules/glm/testglm.cc jags-4.0.0/src/modules/glm/testglm.cc --- jags-3.4.0/src/modules/glm/testglm.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/glm/testglm.cc 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,7 @@ +#include "testglm.h" +#include "samplers/testglmsamp.h" +#include + +void init_glm_test() { + CPPUNIT_TEST_SUITE_REGISTRATION( GLMSampTest ); +} diff -Nru jags-3.4.0/src/modules/glm/testglm.h jags-4.0.0/src/modules/glm/testglm.h --- jags-3.4.0/src/modules/glm/testglm.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/glm/testglm.h 2015-02-22 08:33:05.000000000 +0000 @@ -0,0 +1,6 @@ +#ifndef GLM_TEST_H_ +#define GLM_TEST_H_ + +void init_glm_test(); + +#endif /* GLM_TEST_H_ */ diff -Nru jags-3.4.0/src/modules/lecuyer/lecuyer.cc jags-4.0.0/src/modules/lecuyer/lecuyer.cc --- jags-3.4.0/src/modules/lecuyer/lecuyer.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/lecuyer/lecuyer.cc 2015-02-22 08:33:05.000000000 +0000 @@ -1,8 +1,9 @@ -#include +#include #include using std::vector; +namespace jags { namespace lecuyer { class LecuyerModule : public Module { @@ -28,6 +29,6 @@ } } -} +}} -lecuyer::LecuyerModule _lecuyer_module; +jags::lecuyer::LecuyerModule _lecuyer_module; diff -Nru jags-3.4.0/src/modules/lecuyer/Makefile.in jags-4.0.0/src/modules/lecuyer/Makefile.in --- jags-3.4.0/src/modules/lecuyer/Makefile.in 2013-08-30 13:23:29.000000000 +0000 +++ jags-4.0.0/src/modules/lecuyer/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,8 +91,6 @@ host_triplet = @host@ @WINDOWS_TRUE@am__append_1 = -no-undefined subdir = src/modules/lecuyer -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -65,6 +100,8 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -102,22 +139,47 @@ am_lecuyer_la_OBJECTS = lecuyer_la-lecuyer.lo lecuyer_la-RngStream.lo \ lecuyer_la-RngStreamFactory.lo lecuyer_la_OBJECTS = $(am_lecuyer_la_OBJECTS) -lecuyer_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +lecuyer_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(lecuyer_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(lecuyer_la_SOURCES) DIST_SOURCES = $(lecuyer_la_SOURCES) am__can_run_installinfo = \ @@ -126,11 +188,30 @@ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -144,6 +225,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -213,10 +297,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -304,7 +384,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/lecuyer/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/lecuyer/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -322,6 +401,7 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-jagsmodLTLIBRARIES: $(jagsmod_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(jagsmod_LTLIBRARIES)'; test -n "$(jagsmoddir)" || list=; \ @@ -348,14 +428,17 @@ clean-jagsmodLTLIBRARIES: -test -z "$(jagsmod_LTLIBRARIES)" || rm -f $(jagsmod_LTLIBRARIES) - @list='$(jagsmod_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(jagsmod_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + lecuyer.la: $(lecuyer_la_OBJECTS) $(lecuyer_la_DEPENDENCIES) $(EXTRA_lecuyer_la_DEPENDENCIES) - $(lecuyer_la_LINK) -rpath $(jagsmoddir) $(lecuyer_la_OBJECTS) $(lecuyer_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(lecuyer_la_LINK) -rpath $(jagsmoddir) $(lecuyer_la_OBJECTS) $(lecuyer_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -368,46 +451,49 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lecuyer_la-lecuyer.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< lecuyer_la-lecuyer.lo: lecuyer.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lecuyer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT lecuyer_la-lecuyer.lo -MD -MP -MF $(DEPDIR)/lecuyer_la-lecuyer.Tpo -c -o lecuyer_la-lecuyer.lo `test -f 'lecuyer.cc' || echo '$(srcdir)/'`lecuyer.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/lecuyer_la-lecuyer.Tpo $(DEPDIR)/lecuyer_la-lecuyer.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='lecuyer.cc' object='lecuyer_la-lecuyer.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lecuyer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT lecuyer_la-lecuyer.lo -MD -MP -MF $(DEPDIR)/lecuyer_la-lecuyer.Tpo -c -o lecuyer_la-lecuyer.lo `test -f 'lecuyer.cc' || echo '$(srcdir)/'`lecuyer.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lecuyer_la-lecuyer.Tpo $(DEPDIR)/lecuyer_la-lecuyer.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='lecuyer.cc' object='lecuyer_la-lecuyer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lecuyer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o lecuyer_la-lecuyer.lo `test -f 'lecuyer.cc' || echo '$(srcdir)/'`lecuyer.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lecuyer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o lecuyer_la-lecuyer.lo `test -f 'lecuyer.cc' || echo '$(srcdir)/'`lecuyer.cc lecuyer_la-RngStream.lo: RngStream.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lecuyer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT lecuyer_la-RngStream.lo -MD -MP -MF $(DEPDIR)/lecuyer_la-RngStream.Tpo -c -o lecuyer_la-RngStream.lo `test -f 'RngStream.cc' || echo '$(srcdir)/'`RngStream.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/lecuyer_la-RngStream.Tpo $(DEPDIR)/lecuyer_la-RngStream.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RngStream.cc' object='lecuyer_la-RngStream.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lecuyer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT lecuyer_la-RngStream.lo -MD -MP -MF $(DEPDIR)/lecuyer_la-RngStream.Tpo -c -o lecuyer_la-RngStream.lo `test -f 'RngStream.cc' || echo '$(srcdir)/'`RngStream.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lecuyer_la-RngStream.Tpo $(DEPDIR)/lecuyer_la-RngStream.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='RngStream.cc' object='lecuyer_la-RngStream.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lecuyer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o lecuyer_la-RngStream.lo `test -f 'RngStream.cc' || echo '$(srcdir)/'`RngStream.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lecuyer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o lecuyer_la-RngStream.lo `test -f 'RngStream.cc' || echo '$(srcdir)/'`RngStream.cc lecuyer_la-RngStreamFactory.lo: RngStreamFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lecuyer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT lecuyer_la-RngStreamFactory.lo -MD -MP -MF $(DEPDIR)/lecuyer_la-RngStreamFactory.Tpo -c -o lecuyer_la-RngStreamFactory.lo `test -f 'RngStreamFactory.cc' || echo '$(srcdir)/'`RngStreamFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/lecuyer_la-RngStreamFactory.Tpo $(DEPDIR)/lecuyer_la-RngStreamFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RngStreamFactory.cc' object='lecuyer_la-RngStreamFactory.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lecuyer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT lecuyer_la-RngStreamFactory.lo -MD -MP -MF $(DEPDIR)/lecuyer_la-RngStreamFactory.Tpo -c -o lecuyer_la-RngStreamFactory.lo `test -f 'RngStreamFactory.cc' || echo '$(srcdir)/'`RngStreamFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lecuyer_la-RngStreamFactory.Tpo $(DEPDIR)/lecuyer_la-RngStreamFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='RngStreamFactory.cc' object='lecuyer_la-RngStreamFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lecuyer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o lecuyer_la-RngStreamFactory.lo `test -f 'RngStreamFactory.cc' || echo '$(srcdir)/'`RngStreamFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lecuyer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o lecuyer_la-RngStreamFactory.lo `test -f 'RngStreamFactory.cc' || echo '$(srcdir)/'`RngStreamFactory.cc mostlyclean-libtool: -rm -f *.lo @@ -415,26 +501,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -446,15 +521,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -463,6 +534,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -607,19 +693,22 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-jagsmodLTLIBRARIES clean-libtool ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am \ - install-jagsmodLTLIBRARIES install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-jagsmodLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-jagsmodLTLIBRARIES clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-jagsmodLTLIBRARIES install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-jagsmodLTLIBRARIES + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/lecuyer/RngStream.cc jags-4.0.0/src/modules/lecuyer/RngStream.cc --- jags-3.4.0/src/modules/lecuyer/RngStream.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/lecuyer/RngStream.cc 2015-02-22 08:33:05.000000000 +0000 @@ -70,6 +70,7 @@ } } +namespace jags { namespace lecuyer { RngStream::RngStream(unsigned int state[6]) @@ -168,4 +169,4 @@ fixState(state); } -} +}} diff -Nru jags-3.4.0/src/modules/lecuyer/RngStreamFactory.cc jags-4.0.0/src/modules/lecuyer/RngStreamFactory.cc --- jags-3.4.0/src/modules/lecuyer/RngStreamFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/lecuyer/RngStreamFactory.cc 2015-02-22 08:33:05.000000000 +0000 @@ -93,17 +93,13 @@ s[i] = x[i]; } +namespace jags { namespace lecuyer { RngStreamFactory::RngStreamFactory() { unsigned int seed = static_cast(time(NULL)); - unsigned int state[6]; - RngStream::seedToState(seed, state); - - for (int i = 0; i < 6; ++i) { - Bg[i] = Ig[i] = state[i]; - } + setSeed(seed); } RngStreamFactory::~RngStreamFactory() @@ -113,6 +109,16 @@ } } + void RngStreamFactory::setSeed(unsigned int seed) + { + unsigned int state[6]; + RngStream::seedToState(seed, state); + + for (int i = 0; i < 6; ++i) { + Bg[i] = Ig[i] = state[i]; + } + } + void RngStreamFactory::nextStream () { MatVecModM (A1p127, Ig, m1); @@ -171,4 +177,5 @@ { return "lecuyer::RngStream"; } -} + +}} diff -Nru jags-3.4.0/src/modules/lecuyer/RngStreamFactory.h jags-4.0.0/src/modules/lecuyer/RngStreamFactory.h --- jags-3.4.0/src/modules/lecuyer/RngStreamFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/lecuyer/RngStreamFactory.h 2015-02-22 08:33:05.000000000 +0000 @@ -4,6 +4,7 @@ #include #include "RngStream.h" +namespace jags { namespace lecuyer { /** @@ -16,6 +17,7 @@ public: RngStreamFactory(); ~RngStreamFactory(); + void setSeed(unsigned int seed); void nextStream(); void nextSubstream(); std::vector makeRNGs(unsigned int n); @@ -23,6 +25,6 @@ std::string name() const; }; -} +}} #endif /* RNG_STREAM_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/lecuyer/RngStream.h jags-4.0.0/src/modules/lecuyer/RngStream.h --- jags-3.4.0/src/modules/lecuyer/RngStream.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/lecuyer/RngStream.h 2015-02-22 08:33:05.000000000 +0000 @@ -6,6 +6,7 @@ #define m1 4294967087.0 #define m2 4294944443.0 +namespace jags { namespace lecuyer { /** @@ -33,7 +34,7 @@ static void seedToState(unsigned int seed, unsigned int state[6]); }; -} +}} #endif /* _RNGSTREAM_H_ */ diff -Nru jags-3.4.0/src/modules/Makefile.in jags-4.0.0/src/modules/Makefile.in --- jags-3.4.0/src/modules/Makefile.in 2013-08-30 13:23:27.000000000 +0000 +++ jags-4.0.0/src/modules/Makefile.in 2015-09-27 12:02:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,7 +88,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -61,19 +97,33 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -81,12 +131,33 @@ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ @@ -115,6 +186,7 @@ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -128,6 +200,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -197,10 +272,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -282,7 +353,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -308,22 +378,25 @@ -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -338,57 +411,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -404,12 +432,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -421,15 +444,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -438,6 +457,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -598,22 +632,22 @@ uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/mix/distributions/DBetaBin.cc jags-4.0.0/src/modules/mix/distributions/DBetaBin.cc --- jags-3.4.0/src/modules/mix/distributions/DBetaBin.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/mix/distributions/DBetaBin.cc 2015-02-22 08:33:06.000000000 +0000 @@ -0,0 +1,126 @@ +#include +#include "DBetaBin.h" + +#include + +#include + +using std::vector; +using std::max; +using std::min; +using std::string; + +#define A(par) (*par[0]) +#define B(par) (*par[1]) +#define SIZE(par) (*par[2]) + +static double dbb(double x, double a, double b, double n) +{ + //Probability density function + return choose(a+x-1, x) * choose(b+n-x-1, n-x) / choose(a+b+n-1, n); +} + +static double ldbb(double x, double a, double b, double n) +{ + //Log probability density function + return lchoose(a+x-1, x) + lchoose(b+n-x-1, n-x) - lchoose(a+b+n-1, n); +} + +namespace jags { +namespace mix { + +DBetaBin::DBetaBin() + : RScalarDist("dbetabin", 3, DIST_SPECIAL, true) +{} + +string DBetaBin::alias() const +{ + return "dbetabinom"; +} + +bool +DBetaBin::checkParameterDiscrete (vector const &mask) const +{ + return mask[2] == true; +} + +bool DBetaBin::checkParameterValue (vector const &par) const +{ + return (SIZE(par) >= 0 && A(par) > 0.0 && B(par) > 0.0); +} + +double DBetaBin::d(double x, PDFType type, vector const &par, + bool give_log) const +{ + if (give_log) + return ldbb(x, A(par), B(par), SIZE(par)); + else + return dbb(x, A(par), B(par), SIZE(par)); +} + +static double pbb(double x, double a, double b, double n) +{ + //Distribution function + + if (x < 0) return 0; + if (x >= n) return 1; + + double y = 0; + for (int i = 0; i <= x; ++i) { + y += dbb(i, a, b, n); + } + return y; +} + +double DBetaBin::p(double x, vector const &par, + bool lower, bool give_log) const +{ + double y = pbb(x, A(par), B(par), SIZE(par)); + if (!lower) y = 1 - y; + return give_log ? log(y) : y; +} + +static double qbb(double p, double a, double b, double n) +{ + //Quantile function + + if (p < 0) return 0; + if (p >= 1) return n; + + double pi = 0; + for (int i = 0; i < n; ++i) { + pi += dbb(i, a, b, n); + if (pi > p) return i; + } + return n; +} + +double DBetaBin::q(double p, vector const &par, + bool lower, bool log_p) const +{ + if (log_p) p = exp(p); + if (!lower) p = 1 - p; + return qbb(p, A(par), B(par), SIZE(par)); +} + +double DBetaBin::r(vector const &par, RNG *rng) const +{ + return rbinom(SIZE(par), rbeta(A(par), B(par), rng), rng); +} + +double DBetaBin::l(vector const &par) const +{ + return 0; +} + +double DBetaBin::u(vector const &par) const +{ + return SIZE(par); +} + +bool DBetaBin::isSupportFixed(vector const &fixmask) const +{ + return fixmask[2]; //SIZE is fixed; +} + +}} diff -Nru jags-3.4.0/src/modules/mix/distributions/DBetaBin.h jags-4.0.0/src/modules/mix/distributions/DBetaBin.h --- jags-3.4.0/src/modules/mix/distributions/DBetaBin.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/mix/distributions/DBetaBin.h 2015-02-22 08:33:06.000000000 +0000 @@ -0,0 +1,43 @@ +#ifndef DBETA_BIN_H_ +#define DBETA_BIN_H_ + +#include + +namespace jags { +namespace mix { + +/** + * @short Beta-Binomial distribution + *
+ * Y ~ dbin(a, b, n)
+ * f(y|a,b,n) = choose(a+y-1, y) * choose(b+n-y-1, n-y) / choose(a+b+n-1, n)
+ * 
+ */ +class DBetaBin : public RScalarDist { + public: + DBetaBin(); + std::string alias() const; + double d(double x, PDFType type, + std::vector const ¶meters, + bool give_log) const; + double p(double x, std::vector const ¶meters, bool lower, + bool give_log) const; + double q(double p, std::vector const ¶meters, bool lower, + bool log_p) const; + double r(std::vector const ¶meters, RNG *rng) const; + double l(std::vector const ¶meters) const; + double u(std::vector const ¶meters) const; + /** + * Checks that n is discrete-valued. + */ + bool checkParameterDiscrete (std::vector const &mask) const; + /** + * Checks that p lies in (0,1), n >= 1, phi > -1 + */ + bool checkParameterValue(std::vector const ¶meters) const; + bool isSupportFixed(std::vector const &fixmask) const; +}; + +}} + +#endif /* DBETA_BIN_H_ */ diff -Nru jags-3.4.0/src/modules/mix/distributions/DNormMix.cc jags-4.0.0/src/modules/mix/distributions/DNormMix.cc --- jags-3.4.0/src/modules/mix/distributions/DNormMix.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/mix/distributions/DNormMix.cc 2015-02-22 08:33:06.000000000 +0000 @@ -14,6 +14,7 @@ #define PROB(par) (par[2]) #define NCAT(lengths) (lengths[0]) +namespace jags { namespace mix { DNormMix::DNormMix() @@ -129,4 +130,4 @@ return 1; } -} +}} diff -Nru jags-3.4.0/src/modules/mix/distributions/DNormMix.h jags-4.0.0/src/modules/mix/distributions/DNormMix.h --- jags-3.4.0/src/modules/mix/distributions/DNormMix.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/mix/distributions/DNormMix.h 2015-02-22 08:33:06.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace mix { /** @@ -48,7 +49,8 @@ std::vector const &lengths) const; unsigned int length(std::vector const &parlengths) const; }; -} + +}} #endif /* DNORM_MIX_H_ */ diff -Nru jags-3.4.0/src/modules/mix/distributions/Makefile.am jags-4.0.0/src/modules/mix/distributions/Makefile.am --- jags-3.4.0/src/modules/mix/distributions/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/mix/distributions/Makefile.am 2015-02-22 08:33:06.000000000 +0000 @@ -4,6 +4,6 @@ mixdist_la_LDFLAGS = -no-undefined -module -avoid-version -mixdist_la_SOURCES = DNormMix.cc +mixdist_la_SOURCES = DNormMix.cc DBetaBin.cc -noinst_HEADERS = DNormMix.h +noinst_HEADERS = DNormMix.h DBetaBin.h diff -Nru jags-3.4.0/src/modules/mix/distributions/Makefile.in jags-4.0.0/src/modules/mix/distributions/Makefile.in --- jags-3.4.0/src/modules/mix/distributions/Makefile.in 2013-08-30 13:23:29.000000000 +0000 +++ jags-4.0.0/src/modules/mix/distributions/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/mix/distributions -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,30 +99,57 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) mixdist_la_LIBADD = -am_mixdist_la_OBJECTS = mixdist_la-DNormMix.lo +am_mixdist_la_OBJECTS = mixdist_la-DNormMix.lo mixdist_la-DBetaBin.lo mixdist_la_OBJECTS = $(am_mixdist_la_OBJECTS) -mixdist_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +mixdist_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(mixdist_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(mixdist_la_SOURCES) DIST_SOURCES = $(mixdist_la_SOURCES) am__can_run_installinfo = \ @@ -96,11 +158,30 @@ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -114,6 +195,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -183,10 +267,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -255,8 +335,8 @@ noinst_LTLIBRARIES = mixdist.la mixdist_la_CPPFLAGS = -I$(top_srcdir)/src/include mixdist_la_LDFLAGS = -no-undefined -module -avoid-version -mixdist_la_SOURCES = DNormMix.cc -noinst_HEADERS = DNormMix.h +mixdist_la_SOURCES = DNormMix.cc DBetaBin.cc +noinst_HEADERS = DNormMix.h DBetaBin.h all: all-am .SUFFIXES: @@ -273,7 +353,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/mix/distributions/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/mix/distributions/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -294,14 +373,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + mixdist.la: $(mixdist_la_OBJECTS) $(mixdist_la_DEPENDENCIES) $(EXTRA_mixdist_la_DEPENDENCIES) - $(mixdist_la_LINK) $(mixdist_la_OBJECTS) $(mixdist_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(mixdist_la_LINK) $(mixdist_la_OBJECTS) $(mixdist_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -309,35 +391,46 @@ distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mixdist_la-DBetaBin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mixdist_la-DNormMix.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< mixdist_la-DNormMix.lo: DNormMix.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mixdist_la-DNormMix.lo -MD -MP -MF $(DEPDIR)/mixdist_la-DNormMix.Tpo -c -o mixdist_la-DNormMix.lo `test -f 'DNormMix.cc' || echo '$(srcdir)/'`DNormMix.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/mixdist_la-DNormMix.Tpo $(DEPDIR)/mixdist_la-DNormMix.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DNormMix.cc' object='mixdist_la-DNormMix.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mixdist_la-DNormMix.lo -MD -MP -MF $(DEPDIR)/mixdist_la-DNormMix.Tpo -c -o mixdist_la-DNormMix.lo `test -f 'DNormMix.cc' || echo '$(srcdir)/'`DNormMix.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mixdist_la-DNormMix.Tpo $(DEPDIR)/mixdist_la-DNormMix.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DNormMix.cc' object='mixdist_la-DNormMix.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mixdist_la-DNormMix.lo `test -f 'DNormMix.cc' || echo '$(srcdir)/'`DNormMix.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mixdist_la-DNormMix.lo `test -f 'DNormMix.cc' || echo '$(srcdir)/'`DNormMix.cc + +mixdist_la-DBetaBin.lo: DBetaBin.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mixdist_la-DBetaBin.lo -MD -MP -MF $(DEPDIR)/mixdist_la-DBetaBin.Tpo -c -o mixdist_la-DBetaBin.lo `test -f 'DBetaBin.cc' || echo '$(srcdir)/'`DBetaBin.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mixdist_la-DBetaBin.Tpo $(DEPDIR)/mixdist_la-DBetaBin.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DBetaBin.cc' object='mixdist_la-DBetaBin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mixdist_la-DBetaBin.lo `test -f 'DBetaBin.cc' || echo '$(srcdir)/'`DBetaBin.cc mostlyclean-libtool: -rm -f *.lo @@ -345,26 +438,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -376,15 +458,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -393,6 +471,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -534,18 +627,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/mix/Makefile.in jags-4.0.0/src/modules/mix/Makefile.in --- jags-3.4.0/src/modules/mix/Makefile.in 2013-08-30 13:23:29.000000000 +0000 +++ jags-4.0.0/src/modules/mix/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,7 +90,6 @@ host_triplet = @host@ @WINDOWS_TRUE@am__append_1 = -no-undefined subdir = src/modules/mix -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -63,6 +99,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -101,31 +138,57 @@ $(top_builddir)/src/lib/libjags.la am_mix_la_OBJECTS = mix_la-mix.lo mix_la_OBJECTS = $(am_mix_la_OBJECTS) -mix_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ - $(mix_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +mix_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(mix_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(mix_la_SOURCES) DIST_SOURCES = $(mix_la_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -133,12 +196,33 @@ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ @@ -167,6 +251,7 @@ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -180,6 +265,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -249,10 +337,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -344,7 +428,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/mix/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/mix/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -362,6 +445,7 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-jagsmodLTLIBRARIES: $(jagsmod_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(jagsmod_LTLIBRARIES)'; test -n "$(jagsmoddir)" || list=; \ @@ -388,14 +472,17 @@ clean-jagsmodLTLIBRARIES: -test -z "$(jagsmod_LTLIBRARIES)" || rm -f $(jagsmod_LTLIBRARIES) - @list='$(jagsmod_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(jagsmod_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + mix.la: $(mix_la_OBJECTS) $(mix_la_DEPENDENCIES) $(EXTRA_mix_la_DEPENDENCIES) - $(mix_la_LINK) -rpath $(jagsmoddir) $(mix_la_OBJECTS) $(mix_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(mix_la_LINK) -rpath $(jagsmoddir) $(mix_la_OBJECTS) $(mix_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -406,32 +493,35 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mix_la-mix.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< mix_la-mix.lo: mix.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mix_la-mix.lo -MD -MP -MF $(DEPDIR)/mix_la-mix.Tpo -c -o mix_la-mix.lo `test -f 'mix.cc' || echo '$(srcdir)/'`mix.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/mix_la-mix.Tpo $(DEPDIR)/mix_la-mix.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='mix.cc' object='mix_la-mix.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mix_la-mix.lo -MD -MP -MF $(DEPDIR)/mix_la-mix.Tpo -c -o mix_la-mix.lo `test -f 'mix.cc' || echo '$(srcdir)/'`mix.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mix_la-mix.Tpo $(DEPDIR)/mix_la-mix.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='mix.cc' object='mix_la-mix.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mix_la-mix.lo `test -f 'mix.cc' || echo '$(srcdir)/'`mix.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mix_la-mix.lo `test -f 'mix.cc' || echo '$(srcdir)/'`mix.cc mostlyclean-libtool: -rm -f *.lo @@ -440,22 +530,25 @@ -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -470,57 +563,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -536,12 +584,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -553,15 +596,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -570,6 +609,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -738,24 +792,25 @@ uninstall-am: uninstall-jagsmodLTLIBRARIES -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-jagsmodLTLIBRARIES \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am \ + install-jagsmodLTLIBRARIES install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-jagsmodLTLIBRARIES -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic \ - clean-jagsmodLTLIBRARIES clean-libtool ctags ctags-recursive \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-jagsmodLTLIBRARIES install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-jagsmodLTLIBRARIES +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/mix/mix.cc jags-4.0.0/src/modules/mix/mix.cc --- jags-3.4.0/src/modules/mix/mix.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/mix/mix.cc 2015-02-22 08:33:06.000000000 +0000 @@ -1,10 +1,14 @@ -#include +#include #include +#include #include +#include +#include using std::vector; +namespace jags { namespace mix { class MIXModule : public Module { @@ -16,8 +20,11 @@ MIXModule::MIXModule() : Module("mix") { + insert(new DBetaBin); insert(new DNormMix); insert(new MixSamplerFactory); + insert(new DirichletCatFactory); + insert(new LDAFactory); } MIXModule::~MIXModule() { @@ -33,6 +40,6 @@ } } -} +}} -mix::MIXModule _mix_module; +jags::mix::MIXModule _mix_module; diff -Nru jags-3.4.0/src/modules/mix/samplers/CatDirichlet.cc jags-4.0.0/src/modules/mix/samplers/CatDirichlet.cc --- jags-3.4.0/src/modules/mix/samplers/CatDirichlet.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/mix/samplers/CatDirichlet.cc 2015-02-22 08:33:06.000000000 +0000 @@ -0,0 +1,66 @@ +#include + +#include "CatDirichlet.h" +#include "DirichletCat.h" + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +using std::vector; +using std::set; +using std::string; +using std::copy; +using std::map; +using std::pair; + + +namespace jags { + + namespace mix { + + CatDirichlet::CatDirichlet(GraphView const *gv, DirichletCat *dc, + unsigned int chain) + : _gv(gv), _dc(dc), _chain(chain), _size(gv->nodes()[0]->length()) + { + } + + void CatDirichlet::update(RNG *rng) + { + vector const &snodes = _gv->nodes(); + vector xnew(_gv->length()); + + for (unsigned int i = 0; i < snodes.size(); ++i) { + + int index = static_cast(*snodes[i]->value(_chain)) - 1; + vector &alpha = _dc->getActiveParameter(i); + alpha[index] -= 1; + + double sump = 0.0; + unsigned int j = 0; + for ( ; j < _size; ++j) { + sump += alpha[j]; + } + double p = sump * rng->uniform(); + for ( ; j > 1; --j) { + sump -= alpha[j-1]; + if (sump <= p) + break; + } + xnew[i] = j; + alpha[j] += 1; + } + } + } +} + diff -Nru jags-3.4.0/src/modules/mix/samplers/CatDirichlet.h jags-4.0.0/src/modules/mix/samplers/CatDirichlet.h --- jags-3.4.0/src/modules/mix/samplers/CatDirichlet.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/mix/samplers/CatDirichlet.h 2015-02-22 08:33:06.000000000 +0000 @@ -0,0 +1,31 @@ +#ifndef CAT_DIRICHLET_H_ +#define CAT_DIRICHLET_H_ + +#include + +namespace jags { + + class GraphView; + + namespace mix { + + class DirichletCat; + + /** + * @short Collapsed sampler for categorical nodes in a + * Dirichlet mixture model. + */ + class CatDirichlet : public SampleMethodNoAdapt { + GraphView const *_gv; + DirichletCat *_dc; + unsigned int _chain; + unsigned int _size; + public: + CatDirichlet(GraphView const *gv, DirichletCat *dc, + unsigned int chain); + void update(RNG *rng); + }; + } +} + +#endif /* CAT_DIRICHLET_H_ */ diff -Nru jags-3.4.0/src/modules/mix/samplers/DirichletCat.cc jags-4.0.0/src/modules/mix/samplers/DirichletCat.cc --- jags-3.4.0/src/modules/mix/samplers/DirichletCat.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/mix/samplers/DirichletCat.cc 2015-02-22 08:33:06.000000000 +0000 @@ -0,0 +1,196 @@ +#include + +#include "DirichletCat.h" + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +using std::vector; +using std::set; +using std::string; +using std::copy; +using std::map; +using std::pair; + + +namespace jags { + + static vector makeMixParents(GraphView const *gv) + { + vector const &schildren = + gv->stochasticChildren(); + + vector mixnodes; + mixnodes.reserve(schildren.size()); + for (unsigned int i = 0; i < schildren.size(); ++i) { + mixnodes.push_back(asMixture(schildren[i]->parents()[0])); + } + return mixnodes; + } + + static map > makeParMap(GraphView const *gv) + { + vector const &snodes = gv->nodes(); + map > parmap; + unsigned int N = snodes[0]->length(); + for (unsigned int i = 0; i < snodes.size(); ++i) { + if (snodes[i]->length() != N) { + throwLogicError("Length mismatch in MixDirich"); + } + parmap[snodes[i]] = vector(N); + } + return parmap; + } + + namespace mix { + + bool DirichletCat::canSample(GraphView const *gv) + { + // Check sample nodes + vector snodes = gv->nodes(); + for (unsigned int i = 0; i < snodes.size(); ++i) { + if (isBounded(snodes[i])) return false; + if (snodes[i]->distribution()->name() != "ddirch") + return false; + } + + set sset; + set dset; + for (unsigned int i = 0; i < snodes.size(); ++i) { + sset.insert(snodes[i]); + dset.insert(snodes[i]); + } + + vector const &dchildren = + gv->deterministicChildren(); + + for (unsigned int i = 0; i < dchildren.size(); ++i) { + if (MixtureNode const *m = asMixture(dchildren[i])) { + vector const &mparents = m->parents(); + unsigned int Nindex = m->index_size(); + for (unsigned int j = 0; j < Nindex; ++j) { + if (dset.count(mparents[j])) return false; + } + for (unsigned int j = Nindex; j < mparents.size(); ++j) { + if (sset.count(mparents[j]) == 0) return false; + } + } + else { + return false; + } + dset.insert(dchildren[i]); + } + + // Check stochastic children + vector const &schildren = + gv->stochasticChildren(); + + for (unsigned int i = 0; i < schildren.size(); ++i) { + if (isBounded(schildren[i])) + return false; + if (schildren[i]->distribution()->name() != "dcat") + return false; + if (sset.count(schildren[i]->parents()[0])) + return false; + } + + return true; + } + + DirichletCat::DirichletCat(GraphView const *gv, unsigned int chain) + : _gv(gv), _parmap(makeParMap(gv)), _mixparents(makeMixParents(gv)), + _chain(chain), _size(gv->nodes()[0]->length()) + { + updateParMap(); + } + + vector &DirichletCat::getActiveParameter(unsigned int i) + { + Node const *active = _mixparents[i]->activeParent(_chain); + map >::iterator p = + _parmap.find(active); + if (p == _parmap.end()) { + throwLogicError("No active parameter in DirichletCat sampler"); + } + return p->second; + } + + void DirichletCat::updateParMap() + { + vector const &snodes = _gv->nodes(); + + //Priors + for (unsigned int i = 0; i < snodes.size(); ++i) { + double const *prior = snodes[i]->parents()[0]->value(_chain); + vector ¶m = _parmap[snodes[i]]; + copy(prior, prior + _size, param.begin()); + } + + vector const &schildren = + _gv->stochasticChildren(); + + //Likelihoods + for (unsigned int j = 0; j < schildren.size(); ++j) { + Node const *active = _mixparents[j]->activeParent(_chain); + vector ¶m = _parmap.find(active)->second; + int index = static_cast(*schildren[j]->value(_chain)) - 1; + if (param[index] > 0) { + param[index] += 1; + } + else { + throwNodeError(schildren[j], + "Likelihood error in DirichletCat sample"); + } + + } + } + + void DirichletCat::update(RNG *rng) + { + updateParMap(); + + /* + Draw Dirichlet sample by drawing independent gamma random + variates and then normalizing + */ + + vector const &snodes = _gv->nodes(); + vector xnew(_gv->length()); + + for (unsigned int i = 0; i < snodes.size(); ++i) { + + vector const &alpha = _parmap[snodes[i]]; + + double xsum = 0.0; + unsigned int offset = i * _size; + for (unsigned int j = 0; j < _size; ++j) { + if (alpha[j] > 0) { + xnew[j + offset] = rgamma(alpha[j], 1, rng); + xsum += xnew[j + offset]; + } + else { + xnew[j + offset] = 0; + } + } + for (unsigned int j = 0; j < _size; ++j) { + xnew[j + offset] /= xsum; + } + } + + _gv->setValue(xnew, _chain); + } + + } +} + diff -Nru jags-3.4.0/src/modules/mix/samplers/DirichletCatFactory.cc jags-4.0.0/src/modules/mix/samplers/DirichletCatFactory.cc --- jags-3.4.0/src/modules/mix/samplers/DirichletCatFactory.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/mix/samplers/DirichletCatFactory.cc 2015-02-22 08:33:06.000000000 +0000 @@ -0,0 +1,115 @@ +#include +#include "DirichletCatFactory.h" +#include "DirichletCat.h" + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +using std::list; +using std::set; +using std::vector; +using std::string; +using std::map; + +#define NLEVEL 200 +#define MAX_TEMP 100 +#define NREP 5 + +namespace jags { + + //STL syntax becomes unreadable if we don't use a typedef + typedef map, vector > DCMap; + + static + bool isCandidate(SingletonGraphView const &gv) + { + vector const &schild = gv.stochasticChildren(); + vector const &dchild = gv.deterministicChildren(); + + //A necessary but not sufficient condition: we do this first + //because it is fast + if (schild.size() != dchild.size()) return false; + + //Stochastic children must all have dcat distribution + Distribution const *dist0 = schild[0]->distribution(); + if (dist0->name() != "dcat") return false; + for (unsigned int i = 1; i < schild.size(); ++i) { + if (schild[i]->distribution() != dist0) return false; + } + + //Deterministic descendants must all be mixture nodes + for (unsigned int j = 0; j < dchild.size(); ++j) { + if (!isMixture(dchild[j])) return false; + } + + return true; + } + + namespace mix { + + Sampler * + DirichletCatFactory::makeSampler(vector const &snodes, + Graph const &graph) const + { + GraphView *gv = new GraphView(snodes, graph); + Sampler * sampler = 0; + unsigned int nchain = snodes[0]->nchain(); + + if (DirichletCat::canSample(gv)) { + vector methods(nchain); + for (unsigned int ch = 0; ch < nchain; ++ch) { + methods[ch] = new DirichletCat(gv, ch); + } + sampler = new MutableSampler(gv, methods, "mix::DirichletCat"); + } + else { + delete gv; + } + return sampler; + } + + string DirichletCatFactory::name() const + { + return "mix::DirichletCat"; + } + + + vector + DirichletCatFactory::makeSamplers(list const &nodes, + Graph const &graph) const + { + //Assemble candidates from available nodes and classify + //them by their stochastic children + DCMap cmap; + + for (list::const_iterator p = nodes.begin(); + p != nodes.end(); ++p) + { + if ((*p)->distribution()->name() != "ddirch") continue; + SingletonGraphView gv(*p, graph); + if (isCandidate(gv)) { + cmap[gv.stochasticChildren()].push_back(*p); + } + } + + //Now traverse the candidate map and generate samplers + vector samplers; + for (DCMap::const_iterator q = cmap.begin(); q != cmap.end(); ++q) + { + Sampler *s = makeSampler(q->second, graph); + if (s) samplers.push_back(s); + } + + return samplers; + } + + } +} diff -Nru jags-3.4.0/src/modules/mix/samplers/DirichletCatFactory.h jags-4.0.0/src/modules/mix/samplers/DirichletCatFactory.h --- jags-3.4.0/src/modules/mix/samplers/DirichletCatFactory.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/mix/samplers/DirichletCatFactory.h 2015-02-22 08:33:06.000000000 +0000 @@ -0,0 +1,25 @@ +#ifndef DIRICHLET_CAT_FACTORY_H_ +#define DIRICHLET_CAT_FACTORY_H_ + +#include + +namespace jags { + namespace mix { + + /** + * @short Factory object for DirichletCat samplers + */ + class DirichletCatFactory : public SamplerFactory + { + public: + Sampler * makeSampler(std::vector const &snodes, + Graph const &graph) const; + std::vector + makeSamplers(std::list const &nodes, + Graph const &graph) const; + std::string name() const; + }; + } +} + +#endif /* DIRICHLET_CAT_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/mix/samplers/DirichletCat.h jags-4.0.0/src/modules/mix/samplers/DirichletCat.h --- jags-3.4.0/src/modules/mix/samplers/DirichletCat.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/mix/samplers/DirichletCat.h 2015-02-22 08:33:06.000000000 +0000 @@ -0,0 +1,42 @@ +#ifndef DIRICHLET_CAT_H_ +#define DIRICHLET_CAT_H_ + +#include + +#include +#include + +namespace jags { + + class MixtureNode; + class Node; + class GraphView; + + namespace mix { + /** + * @short Block sampler for Dirichlet nodes in a mixture model. + * + */ + class DirichletCat : public SampleMethodNoAdapt { + GraphView const *_gv; + std::map > _parmap; + std::vector _mixparents; + unsigned int _chain; + unsigned int _size; + void updateParMap(); + public: + DirichletCat(GraphView const *gv, unsigned int chain); + void update(RNG *rng); + static bool canSample(GraphView const *gv); + /** + * Returns the active parameter for the stochastic child + * with index i. This is used by the companion sampler + * CatDirichlet in the case where the stochastic children + * are also unobserved. + */ + std::vector &getActiveParameter(unsigned int i); + }; + } +} + +#endif /* DIRICHLET_CAT_H_ */ diff -Nru jags-3.4.0/src/modules/mix/samplers/DirichletInfo.cc jags-4.0.0/src/modules/mix/samplers/DirichletInfo.cc --- jags-3.4.0/src/modules/mix/samplers/DirichletInfo.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/mix/samplers/DirichletInfo.cc 2015-02-22 08:33:06.000000000 +0000 @@ -8,6 +8,7 @@ using std::log; +namespace jags { namespace mix { DirichletInfo::DirichletInfo(StochasticNode const *snode, unsigned int s, @@ -24,4 +25,5 @@ { return (shape - 1) * log(sum) - shape * sum; } -} + +}} diff -Nru jags-3.4.0/src/modules/mix/samplers/DirichletInfo.h jags-4.0.0/src/modules/mix/samplers/DirichletInfo.h --- jags-3.4.0/src/modules/mix/samplers/DirichletInfo.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/mix/samplers/DirichletInfo.h 2015-02-22 08:33:06.000000000 +0000 @@ -1,6 +1,8 @@ #ifndef DIRICHLET_INFO_H_ #define DIRICHLET_INFO_H_ +namespace jags { + class StochasticNode; namespace mix { @@ -22,6 +24,6 @@ double gammaPenalty() const; }; -} +}} #endif /* DIRICHLET_INFO_H_ */ diff -Nru jags-3.4.0/src/modules/mix/samplers/LDA.cc jags-4.0.0/src/modules/mix/samplers/LDA.cc --- jags-3.4.0/src/modules/mix/samplers/LDA.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/mix/samplers/LDA.cc 2015-09-10 05:42:23.000000000 +0000 @@ -0,0 +1,327 @@ +#include + +#include "LDA.h" + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +using std::vector; +using std::set; +using std::string; +using std::upper_bound; +using std::accumulate; +using std::partial_sum; + +namespace jags { + + bool isCat(StochasticNode const *snode) { + return snode->distribution()->name() == "dcat"; + } + + bool isDirichlet(StochasticNode const *snode) { + return snode->distribution()->name() == "ddirch"; + } + + namespace mix { + + LDA::LDA(vector > const &topics, + vector > const &words, + vector const &topic_priors, + vector const &word_priors, + GraphView const *gv, unsigned int ch) + : _nTopic(word_priors.size()), + _nWord(word_priors[0]->length()), + _nDoc(topics.size()), + _topicHyper(topic_priors[0]->parents()[0]->value(ch)), + _wordHyper(word_priors[0]->parents()[0]->value(ch)), + _gv(gv), + _chain(ch), + _topicTokens(_nDoc), + _wordTokens(_nDoc), + _topicsByWord(_nWord, vector(_nTopic, 0)), + _topicsByDoc(_nDoc, vector(_nTopic, 0)), + _docSums(_nDoc), _topicSums(_nTopic), + _wordsObserved(true) + { + //Set up tables + for (unsigned int d = 0; d < _nDoc; ++d) { + _docSums[d] = topics[d].size(); + for (unsigned int i = 0; i < _docSums[d]; ++i) { + int topic = static_cast(*topics[d][i]->value(ch)) - 1; + _topicTokens[d].push_back(topic); + _topicsByDoc[d][topic]++; + _topicSums[topic]++; + int word = static_cast(*words[d][i]->value(ch)) - 1; + _wordTokens[d].push_back(word); + _topicsByWord[word][topic]++; + if (!isObserved(words[d][i])) _wordsObserved = false; + } + } + + //Sanity check on gv: + vector const &snodes = gv->nodes(); + unsigned int offset = 0; + for (unsigned int doc = 0; doc < _nDoc; ++doc) { + for (unsigned int i = 0; i < _docSums[doc]; ++i) { + if (topics[doc][i] != snodes[offset + i]) { + throwLogicError("Bad GraphView in LD constructor"); + } + } + offset += _docSums[doc]; + } + } + + void LDA::rebuildTable() + { + for (unsigned int t = 0; t < _nTopic; ++t) { + for (unsigned int w = 0; w < _nWord; ++w) { + _topicsByWord[w][t] = 0; + } + } + + vector const &s = _gv->nodes(); + unsigned int offset = 0; + for (unsigned int d = 0; d < _nDoc; ++d) { + for (unsigned int i = 0; i < _docSums[d]; ++i) { + int topic = _topicTokens[d][i]; + int word = static_cast(*s[offset + i]->value(_chain)) + - 1; + _topicsByWord[word][topic]++; + } + offset += _docSums[d]; + } + } + + void LDA::update(RNG *rng) + { + if (!_wordsObserved) { + rebuildTable(); + } + + double wordHyperSum = + accumulate(_wordHyper, _wordHyper + _nWord, 0.0); + + vector sump(_nTopic); + for (unsigned int doc = 0; doc < _nDoc; ++doc) { + + vector &thisDocTopics = _topicsByDoc[doc]; + + for (unsigned int i = 0; i < _docSums[doc]; ++i) { + + //Find current topic and word values + int &topic = _topicTokens[doc][i]; + int const &word = _wordTokens[doc][i]; + + vector &thisWordTopics = _topicsByWord[word]; + + //Remove current value from tables + thisDocTopics[topic]--; + thisWordTopics[topic]--; + _topicSums[topic]--; + + //Calculate probability vector + vector prob(_nTopic); + for (unsigned int t = 0; t < _nTopic; ++t) { + double prior = thisDocTopics[t] + _topicHyper[t]; + double likelihood = + (thisWordTopics[t] + _wordHyper[word]) / + (_topicSums[t] + wordHyperSum); + prob[t] = prior * likelihood; + } + + //Draw random sample from categorical distribution + partial_sum(prob.begin(), prob.end(), sump.begin()); + double p = rng->uniform() * sump.back(); + topic = upper_bound(sump.begin(), sump.end(), p) - + sump.begin(); + if (topic == _nTopic) --topic; + + //Restore current value to tables + thisDocTopics[topic]++; + thisWordTopics[topic]++; + _topicSums[topic]++; + } + } + + vector value; + value.reserve(_gv->length()); + for (unsigned int d = 0; d < _nDoc; ++d) { + for (unsigned int i = 0; i < _docSums[d]; ++i) { + value.push_back(_topicTokens[d][i] + 1); + } + } + _gv->setValue(value, _chain); + } + + bool LDA::canSample(vector > const &topics, + vector > const &words, + vector const &topic_priors, + vector const &word_priors, + Graph const &graph) + { + //Set up dimensions + unsigned int nDoc = topics.size(); + if (nDoc == 0) return false; + if (words.size() != nDoc) return false; + if (topic_priors.size() != nDoc) return false; + + unsigned int nTopic = word_priors.size(); + if (nTopic == 0) return false; + + unsigned int nWord = word_priors[0]->length(); + if (nWord == 0) return false; + + //topics and words are arranged hierarchically by document + + //topics and words have categorical distribution topics + //must be unobserved (because we are sampling them) and + //words must be observed (this may be relaxed in a future version). + for (unsigned int d = 0; d < nDoc; ++d) { + if (topics[d].size() != words[d].size()) return false; + for (unsigned int i = 0; i < topics[d].size(); ++i) { + if (!isCat(topics[d][i])) return false; + if (!isCat(words[d][i])) return false; + if (isObserved(topics[d][i])) return false; + if (!isObserved(words[d][i])) return false; + } + } + + //Word priors have a Dirichlet distribution. They are + //unobserved, as we need to marginalize over their + //distribution + for (unsigned int t = 0; t < nTopic; ++t) { + if (!isDirichlet(word_priors[t])) return false; + if (isObserved(word_priors[t])) return false; + if (word_priors[t]->length() != nWord) return false; + } + //Word priors have a common hyper-prior + Node const *word_hyper = word_priors[0]->parents()[0]; + for (unsigned int t = 1; t < nTopic; ++t) { + if (word_priors[t]->parents()[0] != word_hyper) return false; + } + + //Topic priors have a Dirichlet distribution. They are + //unobserved, as we need to marginalize over their + //distribution. + for (unsigned int d = 0; d < nDoc; ++d) { + if (!isDirichlet(topic_priors[d])) return false; + if (isObserved(topic_priors[d])) return false; + if (topic_priors[d]->length() != nTopic) return false; + } + //Topic priors have a common hyper-prior + Node const *topic_hyper = topic_priors[0]->parents()[0]; + for (unsigned int d = 1; d < nDoc; ++d) { + if (topic_priors[d]->parents()[0] != topic_hyper) return false; + } + + //topics[d] is the stochastic children of topic_priors[d]. + //There are no intermediate deterministic nodes. + for (unsigned int d = 0; d < nDoc; ++d) { + + SingletonGraphView tp_gv(topic_priors[d], graph); + + if (!tp_gv.deterministicChildren().empty()) return false; + + set set1, set2; + set1.insert(tp_gv.stochasticChildren().begin(), + tp_gv.stochasticChildren().end()); + set2.insert(topics[d].begin(), topics[d].end()); + if (set1 != set2) return false; + } + + //The stochastic children of word_priors are in words[0] + //... words[nDoc] + + GraphView wp_gv(word_priors, graph); + + set wp_schildren; + wp_schildren.insert(wp_gv.stochasticChildren().begin(), + wp_gv.stochasticChildren().end()); + set all_words; + for (unsigned int d = 0; d < nDoc; ++d) { + all_words.insert(words[d].begin(), words[d].end()); + } + if (wp_schildren != all_words) return false; + + //Create set to contain all mixture node children of word_priors + set wp_mixnodes; + + //The intermediate deterministic nodes are all mixture + //nodes with a common mixTab. + vector const &wp_dchild = + wp_gv.deterministicChildren(); + MixTab const *mtab = 0; + for (unsigned int i = 0; i < wp_dchild.size(); ++i) { + MixtureNode const *m = asMixture(wp_dchild[i]); + if (m == 0) return false; + if (i == 0) { + mtab = m->mixTab(); + } + else if (m->mixTab() != mtab) { + return false; + } + wp_mixnodes.insert(m); + } + + //The only possible values of the mixTab are in word_priors + set wp_set; +#ifndef _RWSTD_NO_MEMBER_TEMPLATES + wp_set.insert(word_priors.begin(), word_priors.end()); +#else + for (vector::const_iterator p = + word_priors.begin(); p != word_priors.end(); ++p) + { + wp_set.insert(*p); + } +#endif + for (RangeIterator p(mtab->range()); !p.atEnd(); p.nextLeft()) { + if (wp_set.count(mtab->getNode(p)) == 0) return false; + } + + //Create set to contain all mixture node children of topics + set topic_mixnodes; + + //Each topic is the index of a single mixture node and its + //single stochastic child is the corresponding word. All + //mixture nodes have the same mixTab + for (unsigned int d = 0; d < nDoc; ++d) { + for (unsigned int i = 0; i < topics[d].size(); ++i) { + + SingletonGraphView topic_gv(topics[d][i], graph); + + vector topic_dchild = + topic_gv.deterministicChildren(); + if (topic_dchild.size() != 1) return false; + MixtureNode const *m = asMixture(topic_dchild[0]); + if (m->index_size() != 1) return false; + if (m->parents()[0] != topics[d][i]) return false; + if (m->mixTab() != mtab) return false; + + topic_mixnodes.insert(m); + + vector topic_schild = + topic_gv.stochasticChildren(); + if (topic_schild.size() != 1) return false; + if (topic_schild[0] != words[d][i]) return false; + } + } + + //Finally, check that the deterministic children of topics + //and of word_priors are the same + if (wp_mixnodes != topic_mixnodes) return false; + + return true; + } + } +} + diff -Nru jags-3.4.0/src/modules/mix/samplers/LDAFactory.cc jags-4.0.0/src/modules/mix/samplers/LDAFactory.cc --- jags-3.4.0/src/modules/mix/samplers/LDAFactory.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/mix/samplers/LDAFactory.cc 2015-02-22 08:33:06.000000000 +0000 @@ -0,0 +1,218 @@ +#include +#include "LDAFactory.h" +#include "LDA.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include + +using std::set; +using std::vector; +using std::string; +using std::map; +using std::list; +using std::find; + +namespace jags { + + /* Struct to hold Dirichlet nodes that will be marginalized out + by the LDA sampler */ + struct DirichletPriors { + vector words; + vector topics; + }; + + typedef map LDAMap; + + static inline bool isCat(StochasticNode const *snode) { + return snode->distribution()->name() == "dcat"; + } + + MixTab const *checkTopicPrior(GraphView const &gv, Graph const &graph) + { + /* + Dirichlet node TopicPrior has categorical stochastic + children. There are no intermediate deterministic children. + */ + if (!gv.deterministicChildren().empty()) return 0; + vector const &schild = gv.stochasticChildren(); + for (unsigned int i = 0; i < schild.size(); ++i) { + if (!isCat(schild[i])) return 0; + } + + /* + Each stochastic child acts as the index of a single mixture + node. This mixture node has a single stochastic child with + a categorical distribution. + + All the mixture nodes have a common MixTab. + */ + + MixTab const *mtab = 0; + for (unsigned int i = 0; i < schild.size(); ++i) { + + SingletonGraphView gvi(schild[i], graph); + + vector const &si = gvi.stochasticChildren(); + if (si.size() != 1) return 0; + if (!isCat(si[0])) return 0; + + vector const &di = gvi.deterministicChildren(); + if (di.size() != 1) return 0; + MixtureNode const *m = asMixture(di[0]); + if (m == 0) return 0; + + //Check that schild[i] is the index of the mixture node + if (m->index_size() != 1) return 0; + if (m->parents()[0] != schild[i]) return 0; + for (unsigned int j = 1; j < m->parents().size(); ++j) { + if (m->parents()[j] == schild[i]) return 0; + } + + if (i == 0) { + mtab = m->mixTab(); + } + else { + if (m->mixTab() != mtab) return 0; + } + } + return mtab; + } + + MixTab const *checkWordPrior(GraphView const &gv, Graph const &graph) + { + /* + Dirichlet node WordPrior is related to multiple categorical + outcomes via a set of mixture nodes that all share the same + mixTable. + */ + vector const &schild = gv.stochasticChildren(); + for (unsigned int i = 0; i < schild.size(); ++i) { + if (!isCat(schild[i])) return 0; + } + + MixTab const *mtab = 0; + vector const &dchild = gv.deterministicChildren(); + for (unsigned int j = 0; j < dchild.size(); ++j) { + + MixtureNode const *m = asMixture(dchild[j]); + if (m == 0) return 0; + + if (j == 0) { + mtab = m->mixTab(); + } + else if (mtab != m->mixTab()) { + return 0; + } + } + + return mtab; + } + + namespace mix { + + Sampler * + LDAFactory::makeSampler(vector const &topicPriors, + vector const &wordPriors, + list const &free_nodes, + Graph const &graph) const + { + if (topicPriors.empty() || wordPriors.empty()) return 0; + + unsigned int nDoc = topicPriors.size(); + vector > topics(nDoc), words(nDoc); + vector snodes; + for (unsigned int d = 0; d < nDoc; ++d) { + SingletonGraphView gvd(topicPriors[d], graph); + topics[d] = gvd.stochasticChildren(); + for (unsigned int i = 0; i < topics[d].size(); ++i) { + if (find(free_nodes.begin(), free_nodes.end(), topics[d][i]) + == free_nodes.end()) + { + return 0; + } + SingletonGraphView gvi(topics[d][i], graph); + words[d].push_back(gvi.stochasticChildren()[0]); + snodes.push_back(topics[d][i]); + } + } + + if (LDA::canSample(topics, words, topicPriors, wordPriors, graph)) { + + GraphView *view = new GraphView(snodes, graph); + unsigned int N = nchain(view); + vector methods(N); + for (unsigned int ch = 0; ch < N; ++ch) { + methods[ch] = new LDA(topics, words, topicPriors, + wordPriors, view, ch); + } + return new MutableSampler(view, methods, "mix::LDA"); + } + else return 0; + } + + string LDAFactory::name() const + { + return "mix::LDA"; + } + + vector + LDAFactory::makeSamplers(list const &free_nodes, + Graph const &graph) const + { + //First we need to traverse the graph looking for + //Dirichlet nodes. We are not interested in sampling + //them, but they are the basis for finding the categorical + //nodes that we do want to sample + + set dirichlet_nodes; + + for (Graph::const_iterator p = graph.begin(); p != graph.end(); ++p) + { + VectorStochasticNode *vsnode = + dynamic_cast(*p); + if (vsnode && vsnode->distribution()->name() == "ddirch") { + dirichlet_nodes.insert(vsnode); + } + } + + // Now classify them according to their MixTab + + LDAMap dirichlet_map; + for (set::iterator p = dirichlet_nodes.begin(); + p != dirichlet_nodes.end(); ++p) + { + SingletonGraphView gv(*p, graph); + if (MixTab const *mtab = checkWordPrior(gv, graph)) { + dirichlet_map[mtab].words.push_back(*p); + } + else if (MixTab const *mtab = checkTopicPrior(gv, graph)) { + dirichlet_map[mtab].topics.push_back(*p); + } + } + + // Traverse the elements of the mixtable + vector samplers; + for (LDAMap::const_iterator p = dirichlet_map.begin(); + p != dirichlet_map.end(); ++p) + { + Sampler *s = makeSampler(p->second.topics, p->second.words, + free_nodes, graph); + + if (s) samplers.push_back(s); + } + return samplers; + } + } +} diff -Nru jags-3.4.0/src/modules/mix/samplers/LDAFactory.h jags-4.0.0/src/modules/mix/samplers/LDAFactory.h --- jags-3.4.0/src/modules/mix/samplers/LDAFactory.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/mix/samplers/LDAFactory.h 2015-02-22 08:33:06.000000000 +0000 @@ -0,0 +1,29 @@ +#ifndef LDA_FACTORY_H_ +#define LDA_FACTORY_H_ + +#include + +namespace jags { + namespace mix { + + /** + * @short Factory object for LDA samplers + */ + + class LDAFactory : public SamplerFactory + { + public: + Sampler * + makeSampler(std::vector const &topicPriors, + std::vector const &wordPriors, + std::list const &free_nodes, + Graph const &graph) const; + std::vector + makeSamplers(std::list const &nodes, + Graph const &graph) const; + std::string name() const; + }; + } +} + +#endif /* LDA_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/mix/samplers/LDA.h jags-4.0.0/src/modules/mix/samplers/LDA.h --- jags-3.4.0/src/modules/mix/samplers/LDA.h 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/modules/mix/samplers/LDA.h 2015-02-22 08:33:06.000000000 +0000 @@ -0,0 +1,82 @@ +#ifndef LDA_H_ +#define LDA_H_ + +#include + +#include + +namespace jags { + + class Graph; + class GraphView; + class StochasticNode; + + namespace mix { + /** + * @short Collapsed sampler for Latent Dirichlet Allocation + * models. + */ + class LDA : public SampleMethodNoAdapt { + const unsigned int _nTopic, _nWord, _nDoc; + double const *_topicHyper; + double const *_wordHyper; + GraphView const *_gv; + const unsigned int _chain; + std::vector > _topicTokens, _wordTokens; + std::vector > _topicsByWord, _topicsByDoc; + std::vector _docSums, _topicSums; + bool _wordsObserved; + void rebuildTable(); + public: + /** + * Constructor. + * + * @param topics Topic indicators with a categorical + * distribution, organized hierarchically within + * documents. Hence topics.size() is nDoc, the number of + * documents, and topics[d] contains the topic indicators + * for document d. These are the nodes that are sampled + * by the LDA sampler. + * + * @param words Word indicators with a categorical + * distribution, organized in the same way as + * topics. Hence words[d][i] is the stochastic child of + * topics[d][i]. All words must be observed. + * + * @param topic_priors Vector of length nDoc containing + * Dirichlet priors for the topic indicators, one for each + * document. All topic priors share a common hyper-prior. + * + * @param word_priors Vector of length nTopic, the number + * of topics, containing Dirichlet priors for the + * words. The choice of which element of word_prior to use + * as prior for words[d][i] is determined by the value of + * topics[d][i]. All word priors share a common + * hyper-prior. + * + * @param gv Pointer to the GraphView within which sampling + * takes place. + */ + LDA(std::vector > const &topics, + std::vector > const &words, + std::vector const &topic_priors, + std::vector const &word_priors, + GraphView const *gv, unsigned int chain); + void update(RNG *rng); + /** + * Tests whether a set of topics can be sampled by the LDA + * method. The arguments are the same as for the LDA + * constructor, except that a Graph is passed as the last + * argument instead of a GraphView. + */ + static bool canSample( + std::vector > const &topics, + std::vector > const &words, + std::vector const &topic_priors, + std::vector const &word_priors, + Graph const &graph); + }; + } +} + +#endif /* LDA_H_ */ diff -Nru jags-3.4.0/src/modules/mix/samplers/Makefile.am jags-4.0.0/src/modules/mix/samplers/Makefile.am --- jags-3.4.0/src/modules/mix/samplers/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/mix/samplers/Makefile.am 2015-02-22 08:33:06.000000000 +0000 @@ -4,6 +4,10 @@ mixsamp_la_LDFLAGS = -no-undefined -module -avoid-version -mixsamp_la_SOURCES = DirichletInfo.cc NormMix.cc MixSamplerFactory.cc +mixsamp_la_SOURCES = DirichletInfo.cc NormMix.cc MixSamplerFactory.cc \ + DirichletCat.cc DirichletCatFactory.cc CatDirichlet.cc LDA.cc \ +LDAFactory.cc -noinst_HEADERS = DirichletInfo.h NormMix.h MixSamplerFactory.h +noinst_HEADERS = DirichletInfo.h NormMix.h MixSamplerFactory.h \ + DirichletCat.h DirichletCatFactory.h CatDirichlet.h LDA.h \ +LDAFactory.h diff -Nru jags-3.4.0/src/modules/mix/samplers/Makefile.in jags-4.0.0/src/modules/mix/samplers/Makefile.in --- jags-3.4.0/src/modules/mix/samplers/Makefile.in 2013-08-30 13:23:30.000000000 +0000 +++ jags-4.0.0/src/modules/mix/samplers/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/mix/samplers -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,6 +99,8 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -71,24 +108,52 @@ LTLIBRARIES = $(noinst_LTLIBRARIES) mixsamp_la_LIBADD = am_mixsamp_la_OBJECTS = mixsamp_la-DirichletInfo.lo \ - mixsamp_la-NormMix.lo mixsamp_la-MixSamplerFactory.lo + mixsamp_la-NormMix.lo mixsamp_la-MixSamplerFactory.lo \ + mixsamp_la-DirichletCat.lo mixsamp_la-DirichletCatFactory.lo \ + mixsamp_la-CatDirichlet.lo mixsamp_la-LDA.lo \ + mixsamp_la-LDAFactory.lo mixsamp_la_OBJECTS = $(am_mixsamp_la_OBJECTS) -mixsamp_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +mixsamp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(mixsamp_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(mixsamp_la_SOURCES) DIST_SOURCES = $(mixsamp_la_SOURCES) am__can_run_installinfo = \ @@ -97,11 +162,30 @@ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -115,6 +199,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -184,10 +271,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -256,8 +339,14 @@ noinst_LTLIBRARIES = mixsamp.la mixsamp_la_CPPFLAGS = -I$(top_srcdir)/src/include mixsamp_la_LDFLAGS = -no-undefined -module -avoid-version -mixsamp_la_SOURCES = DirichletInfo.cc NormMix.cc MixSamplerFactory.cc -noinst_HEADERS = DirichletInfo.h NormMix.h MixSamplerFactory.h +mixsamp_la_SOURCES = DirichletInfo.cc NormMix.cc MixSamplerFactory.cc \ + DirichletCat.cc DirichletCatFactory.cc CatDirichlet.cc LDA.cc \ +LDAFactory.cc + +noinst_HEADERS = DirichletInfo.h NormMix.h MixSamplerFactory.h \ + DirichletCat.h DirichletCatFactory.h CatDirichlet.h LDA.h \ +LDAFactory.h + all: all-am .SUFFIXES: @@ -274,7 +363,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/mix/samplers/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/mix/samplers/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -295,14 +383,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + mixsamp.la: $(mixsamp_la_OBJECTS) $(mixsamp_la_DEPENDENCIES) $(EXTRA_mixsamp_la_DEPENDENCIES) - $(mixsamp_la_LINK) $(mixsamp_la_OBJECTS) $(mixsamp_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(mixsamp_la_LINK) $(mixsamp_la_OBJECTS) $(mixsamp_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -310,51 +401,94 @@ distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mixsamp_la-CatDirichlet.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mixsamp_la-DirichletCat.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mixsamp_la-DirichletCatFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mixsamp_la-DirichletInfo.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mixsamp_la-LDA.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mixsamp_la-LDAFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mixsamp_la-MixSamplerFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mixsamp_la-NormMix.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< mixsamp_la-DirichletInfo.lo: DirichletInfo.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mixsamp_la-DirichletInfo.lo -MD -MP -MF $(DEPDIR)/mixsamp_la-DirichletInfo.Tpo -c -o mixsamp_la-DirichletInfo.lo `test -f 'DirichletInfo.cc' || echo '$(srcdir)/'`DirichletInfo.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/mixsamp_la-DirichletInfo.Tpo $(DEPDIR)/mixsamp_la-DirichletInfo.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DirichletInfo.cc' object='mixsamp_la-DirichletInfo.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mixsamp_la-DirichletInfo.lo -MD -MP -MF $(DEPDIR)/mixsamp_la-DirichletInfo.Tpo -c -o mixsamp_la-DirichletInfo.lo `test -f 'DirichletInfo.cc' || echo '$(srcdir)/'`DirichletInfo.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mixsamp_la-DirichletInfo.Tpo $(DEPDIR)/mixsamp_la-DirichletInfo.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DirichletInfo.cc' object='mixsamp_la-DirichletInfo.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mixsamp_la-DirichletInfo.lo `test -f 'DirichletInfo.cc' || echo '$(srcdir)/'`DirichletInfo.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mixsamp_la-DirichletInfo.lo `test -f 'DirichletInfo.cc' || echo '$(srcdir)/'`DirichletInfo.cc mixsamp_la-NormMix.lo: NormMix.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mixsamp_la-NormMix.lo -MD -MP -MF $(DEPDIR)/mixsamp_la-NormMix.Tpo -c -o mixsamp_la-NormMix.lo `test -f 'NormMix.cc' || echo '$(srcdir)/'`NormMix.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/mixsamp_la-NormMix.Tpo $(DEPDIR)/mixsamp_la-NormMix.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='NormMix.cc' object='mixsamp_la-NormMix.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mixsamp_la-NormMix.lo -MD -MP -MF $(DEPDIR)/mixsamp_la-NormMix.Tpo -c -o mixsamp_la-NormMix.lo `test -f 'NormMix.cc' || echo '$(srcdir)/'`NormMix.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mixsamp_la-NormMix.Tpo $(DEPDIR)/mixsamp_la-NormMix.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='NormMix.cc' object='mixsamp_la-NormMix.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mixsamp_la-NormMix.lo `test -f 'NormMix.cc' || echo '$(srcdir)/'`NormMix.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mixsamp_la-NormMix.lo `test -f 'NormMix.cc' || echo '$(srcdir)/'`NormMix.cc mixsamp_la-MixSamplerFactory.lo: MixSamplerFactory.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mixsamp_la-MixSamplerFactory.lo -MD -MP -MF $(DEPDIR)/mixsamp_la-MixSamplerFactory.Tpo -c -o mixsamp_la-MixSamplerFactory.lo `test -f 'MixSamplerFactory.cc' || echo '$(srcdir)/'`MixSamplerFactory.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/mixsamp_la-MixSamplerFactory.Tpo $(DEPDIR)/mixsamp_la-MixSamplerFactory.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MixSamplerFactory.cc' object='mixsamp_la-MixSamplerFactory.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mixsamp_la-MixSamplerFactory.lo -MD -MP -MF $(DEPDIR)/mixsamp_la-MixSamplerFactory.Tpo -c -o mixsamp_la-MixSamplerFactory.lo `test -f 'MixSamplerFactory.cc' || echo '$(srcdir)/'`MixSamplerFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mixsamp_la-MixSamplerFactory.Tpo $(DEPDIR)/mixsamp_la-MixSamplerFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MixSamplerFactory.cc' object='mixsamp_la-MixSamplerFactory.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mixsamp_la-MixSamplerFactory.lo `test -f 'MixSamplerFactory.cc' || echo '$(srcdir)/'`MixSamplerFactory.cc + +mixsamp_la-DirichletCat.lo: DirichletCat.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mixsamp_la-DirichletCat.lo -MD -MP -MF $(DEPDIR)/mixsamp_la-DirichletCat.Tpo -c -o mixsamp_la-DirichletCat.lo `test -f 'DirichletCat.cc' || echo '$(srcdir)/'`DirichletCat.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mixsamp_la-DirichletCat.Tpo $(DEPDIR)/mixsamp_la-DirichletCat.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DirichletCat.cc' object='mixsamp_la-DirichletCat.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mixsamp_la-DirichletCat.lo `test -f 'DirichletCat.cc' || echo '$(srcdir)/'`DirichletCat.cc + +mixsamp_la-DirichletCatFactory.lo: DirichletCatFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mixsamp_la-DirichletCatFactory.lo -MD -MP -MF $(DEPDIR)/mixsamp_la-DirichletCatFactory.Tpo -c -o mixsamp_la-DirichletCatFactory.lo `test -f 'DirichletCatFactory.cc' || echo '$(srcdir)/'`DirichletCatFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mixsamp_la-DirichletCatFactory.Tpo $(DEPDIR)/mixsamp_la-DirichletCatFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DirichletCatFactory.cc' object='mixsamp_la-DirichletCatFactory.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mixsamp_la-DirichletCatFactory.lo `test -f 'DirichletCatFactory.cc' || echo '$(srcdir)/'`DirichletCatFactory.cc + +mixsamp_la-CatDirichlet.lo: CatDirichlet.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mixsamp_la-CatDirichlet.lo -MD -MP -MF $(DEPDIR)/mixsamp_la-CatDirichlet.Tpo -c -o mixsamp_la-CatDirichlet.lo `test -f 'CatDirichlet.cc' || echo '$(srcdir)/'`CatDirichlet.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mixsamp_la-CatDirichlet.Tpo $(DEPDIR)/mixsamp_la-CatDirichlet.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CatDirichlet.cc' object='mixsamp_la-CatDirichlet.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mixsamp_la-CatDirichlet.lo `test -f 'CatDirichlet.cc' || echo '$(srcdir)/'`CatDirichlet.cc + +mixsamp_la-LDA.lo: LDA.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mixsamp_la-LDA.lo -MD -MP -MF $(DEPDIR)/mixsamp_la-LDA.Tpo -c -o mixsamp_la-LDA.lo `test -f 'LDA.cc' || echo '$(srcdir)/'`LDA.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mixsamp_la-LDA.Tpo $(DEPDIR)/mixsamp_la-LDA.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='LDA.cc' object='mixsamp_la-LDA.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mixsamp_la-LDA.lo `test -f 'LDA.cc' || echo '$(srcdir)/'`LDA.cc + +mixsamp_la-LDAFactory.lo: LDAFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mixsamp_la-LDAFactory.lo -MD -MP -MF $(DEPDIR)/mixsamp_la-LDAFactory.Tpo -c -o mixsamp_la-LDAFactory.lo `test -f 'LDAFactory.cc' || echo '$(srcdir)/'`LDAFactory.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mixsamp_la-LDAFactory.Tpo $(DEPDIR)/mixsamp_la-LDAFactory.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='LDAFactory.cc' object='mixsamp_la-LDAFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mixsamp_la-MixSamplerFactory.lo `test -f 'MixSamplerFactory.cc' || echo '$(srcdir)/'`MixSamplerFactory.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mixsamp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mixsamp_la-LDAFactory.lo `test -f 'LDAFactory.cc' || echo '$(srcdir)/'`LDAFactory.cc mostlyclean-libtool: -rm -f *.lo @@ -362,26 +496,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -393,15 +516,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -410,6 +529,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -551,18 +685,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/mix/samplers/MixSamplerFactory.cc jags-4.0.0/src/modules/mix/samplers/MixSamplerFactory.cc --- jags-3.4.0/src/modules/mix/samplers/MixSamplerFactory.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/mix/samplers/MixSamplerFactory.cc 2015-02-22 08:33:06.000000000 +0000 @@ -5,12 +5,11 @@ #include #include #include -#include -#include - -#include +#include +#include using std::set; +using std::list; using std::vector; using std::string; @@ -18,15 +17,18 @@ #define MAX_TEMP 100 #define NREP 5 +namespace jags { + /* - * Returns a pointer to a newly allocated GraphView if snode has a - * stochastic child with distribution "dnormmix", otherwise a null - * pointer. + * Returns a pointer to a newly allocated SingletonGraphView if snode + * has a stochastic child with distribution "dnormmix", otherwise a + * null pointer. */ -static GraphView * isCandidate(StochasticNode *snode, Graph const &graph) +static SingletonGraphView * isCandidate(StochasticNode *snode, + Graph const &graph) { - GraphView *gv = new GraphView(snode, graph); - vector const &schildren = gv->stochasticChildren(); + SingletonGraphView *gv = new SingletonGraphView(snode, graph); + vector const &schildren = gv->stochasticChildren(); for (unsigned int i = 0; i < schildren.size(); ++i) { if (schildren[i]->distribution()->name() == "dnormmix") { return gv; @@ -39,11 +41,12 @@ /* * Used to aggregate nodes with common stochastic children. */ -static void aggregate(GraphView const *gv, vector &nodes, +static void aggregate(SingletonGraphView const *gv, + vector &nodes, set &common_children) { bool agg = nodes.empty(); - vector const &schildren = gv->stochasticChildren(); + vector const &schildren = gv->stochasticChildren(); for (unsigned int i = 0; i < schildren.size(); ++i) { if (common_children.count(schildren[i])) { agg = true; @@ -54,21 +57,22 @@ for (unsigned int i = 0; i < schildren.size(); ++i) { common_children.insert(schildren[i]); } - nodes.push_back(gv->nodes()[0]); + nodes.push_back(gv->node()); } } namespace mix { - Sampler * MixSamplerFactory::makeSampler(set const &nodes, - Graph const &graph) const + Sampler * + MixSamplerFactory::makeSampler(list const &nodes, + Graph const &graph) const { - vector gvec; - for (set::const_iterator p = nodes.begin(); + vector gvec; + for (list::const_iterator p = nodes.begin(); p != nodes.end(); ++p) { - GraphView *gv = isCandidate(*p, graph); + SingletonGraphView *gv = isCandidate(*p, graph); if (gv) { gvec.push_back(gv); } @@ -86,11 +90,11 @@ if (NormMix::canSample(sample_nodes)) { GraphView *gv = new GraphView(sample_nodes, graph, true); unsigned int nchain = sample_nodes[0]->nchain(); - vector methods(nchain,0); + vector methods(nchain,0); for (unsigned int ch = 0; ch < nchain; ++ch) { methods[ch] = new NormMix(gv, ch, NLEVEL, MAX_TEMP, NREP); } - return new ParallelSampler(gv, methods); + return new MutableSampler(gv, methods, "mix::NormMix"); } else { return 0; @@ -103,7 +107,7 @@ } vector - MixSamplerFactory::makeSamplers(set const &nodes, + MixSamplerFactory::makeSamplers(list const &nodes, Graph const &graph) const { Sampler *s = makeSampler(nodes, graph); @@ -112,4 +116,5 @@ else return vector(); } -} + +}} diff -Nru jags-3.4.0/src/modules/mix/samplers/MixSamplerFactory.h jags-4.0.0/src/modules/mix/samplers/MixSamplerFactory.h --- jags-3.4.0/src/modules/mix/samplers/MixSamplerFactory.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/mix/samplers/MixSamplerFactory.h 2015-02-22 08:33:06.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace mix { /** @@ -11,14 +12,14 @@ class MixSamplerFactory : public SamplerFactory { public: - Sampler * makeSampler(std::set const &nodes, + Sampler * makeSampler(std::list const &nodes, Graph const &graph) const; std::vector - makeSamplers(std::set const &nodes, + makeSamplers(std::list const &nodes, Graph const &graph) const; std::string name() const; }; -} +}} #endif /* MIX_SAMPLER_FACTORY_H_ */ diff -Nru jags-3.4.0/src/modules/mix/samplers/NormMix.cc jags-4.0.0/src/modules/mix/samplers/NormMix.cc --- jags-3.4.0/src/modules/mix/samplers/NormMix.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/mix/samplers/NormMix.cc 2015-02-22 08:33:06.000000000 +0000 @@ -18,6 +18,8 @@ using std::pair; using std::set; +namespace jags { + static bool isDirch(StochasticNode const *snode) { return snode->distribution()->name() == "ddirch"; @@ -163,9 +165,9 @@ if (isDirch(snodes[i])) { /* We can't handle structural zeros in the Dirichlet distribution. This excludes Dirichlet nodes with - unobserved parents + non-fixed parents */ - if (!snodes[i]->parents()[0]->isObserved()) { + if (!snodes[i]->parents()[0]->isFixed()) { return false; } double const *par = snodes[i]->parents()[0]->value(0); @@ -183,11 +185,6 @@ return true; } - string NormMix::name() const - { - return "NormMix"; - } - void NormMix::getValue(vector &x) const { _gv->getValue(x, _chain); @@ -240,4 +237,5 @@ { return _gv->logLikelihood(_chain); } -} + +}} diff -Nru jags-3.4.0/src/modules/mix/samplers/NormMix.h jags-4.0.0/src/modules/mix/samplers/NormMix.h --- jags-3.4.0/src/modules/mix/samplers/NormMix.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/mix/samplers/NormMix.h 2015-02-22 15:01:24.000000000 +0000 @@ -6,12 +6,14 @@ #include +namespace jags { + class Graph; class GraphView; namespace mix { - class DirichletInfo; + struct DirichletInfo; /** * @short Sample method for normal mixture models @@ -51,10 +53,9 @@ double logLikelihood() const; double logJacobian(std::vector const &value) const; void step(std::vector &value, double step, RNG *rng) const; - std::string name() const; static bool canSample(std::vector const &snodes); }; -} +}} #endif /* NORM_MIX_METHOD_H_ */ diff -Nru jags-3.4.0/src/modules/msm/distributions/DMState.cc jags-4.0.0/src/modules/msm/distributions/DMState.cc --- jags-3.4.0/src/modules/msm/distributions/DMState.cc 2011-11-22 09:42:15.000000000 +0000 +++ jags-4.0.0/src/modules/msm/distributions/DMState.cc 2015-02-22 08:33:06.000000000 +0000 @@ -21,6 +21,7 @@ #define NSTATE(dims) (dims[2][0]) #define INTENSITY(par) (par[2]) +namespace jags { namespace msm { DMState::DMState() @@ -192,4 +193,4 @@ return true; } -} +}} diff -Nru jags-3.4.0/src/modules/msm/distributions/DMState.h jags-4.0.0/src/modules/msm/distributions/DMState.h --- jags-3.4.0/src/modules/msm/distributions/DMState.h 2011-11-21 14:31:13.000000000 +0000 +++ jags-4.0.0/src/modules/msm/distributions/DMState.h 2015-02-22 08:33:06.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace msm { /** @@ -44,6 +45,7 @@ bool isDiscreteValued(std::vector const &mask) const; }; -} +}} #endif /* DMSTATE_H_ */ + diff -Nru jags-3.4.0/src/modules/msm/distributions/Makefile.in jags-4.0.0/src/modules/msm/distributions/Makefile.in --- jags-3.4.0/src/modules/msm/distributions/Makefile.in 2013-08-30 13:23:30.000000000 +0000 +++ jags-4.0.0/src/modules/msm/distributions/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/msm/distributions -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,6 +99,8 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -72,22 +109,47 @@ msmdist_la_LIBADD = am_msmdist_la_OBJECTS = msmdist_la-DMState.lo msmdist_la_OBJECTS = $(am_msmdist_la_OBJECTS) -msmdist_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +msmdist_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(msmdist_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(msmdist_la_SOURCES) DIST_SOURCES = $(msmdist_la_SOURCES) am__can_run_installinfo = \ @@ -96,11 +158,30 @@ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -114,6 +195,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -183,10 +267,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -275,7 +355,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/msm/distributions/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/msm/distributions/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -296,14 +375,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + msmdist.la: $(msmdist_la_OBJECTS) $(msmdist_la_DEPENDENCIES) $(EXTRA_msmdist_la_DEPENDENCIES) - $(msmdist_la_LINK) $(msmdist_la_OBJECTS) $(msmdist_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(msmdist_la_LINK) $(msmdist_la_OBJECTS) $(msmdist_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -314,32 +396,35 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msmdist_la-DMState.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< msmdist_la-DMState.lo: DMState.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(msmdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT msmdist_la-DMState.lo -MD -MP -MF $(DEPDIR)/msmdist_la-DMState.Tpo -c -o msmdist_la-DMState.lo `test -f 'DMState.cc' || echo '$(srcdir)/'`DMState.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/msmdist_la-DMState.Tpo $(DEPDIR)/msmdist_la-DMState.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DMState.cc' object='msmdist_la-DMState.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(msmdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT msmdist_la-DMState.lo -MD -MP -MF $(DEPDIR)/msmdist_la-DMState.Tpo -c -o msmdist_la-DMState.lo `test -f 'DMState.cc' || echo '$(srcdir)/'`DMState.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/msmdist_la-DMState.Tpo $(DEPDIR)/msmdist_la-DMState.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DMState.cc' object='msmdist_la-DMState.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(msmdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o msmdist_la-DMState.lo `test -f 'DMState.cc' || echo '$(srcdir)/'`DMState.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(msmdist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o msmdist_la-DMState.lo `test -f 'DMState.cc' || echo '$(srcdir)/'`DMState.cc mostlyclean-libtool: -rm -f *.lo @@ -347,26 +432,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -378,15 +452,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -395,6 +465,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -536,18 +621,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/msm/functions/Makefile.in jags-4.0.0/src/modules/msm/functions/Makefile.in --- jags-3.4.0/src/modules/msm/functions/Makefile.in 2013-08-30 13:23:30.000000000 +0000 +++ jags-4.0.0/src/modules/msm/functions/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/msm/functions -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,6 +99,8 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -72,22 +109,47 @@ msmfunc_la_LIBADD = am_msmfunc_la_OBJECTS = msmfunc_la-Mexp.lo msmfunc_la_OBJECTS = $(am_msmfunc_la_OBJECTS) -msmfunc_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +msmfunc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(msmfunc_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(msmfunc_la_SOURCES) DIST_SOURCES = $(msmfunc_la_SOURCES) am__can_run_installinfo = \ @@ -96,11 +158,30 @@ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -114,6 +195,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -183,10 +267,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -275,7 +355,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/msm/functions/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/msm/functions/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -296,14 +375,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + msmfunc.la: $(msmfunc_la_OBJECTS) $(msmfunc_la_DEPENDENCIES) $(EXTRA_msmfunc_la_DEPENDENCIES) - $(msmfunc_la_LINK) $(msmfunc_la_OBJECTS) $(msmfunc_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(msmfunc_la_LINK) $(msmfunc_la_OBJECTS) $(msmfunc_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -314,32 +396,35 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msmfunc_la-Mexp.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< msmfunc_la-Mexp.lo: Mexp.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(msmfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT msmfunc_la-Mexp.lo -MD -MP -MF $(DEPDIR)/msmfunc_la-Mexp.Tpo -c -o msmfunc_la-Mexp.lo `test -f 'Mexp.cc' || echo '$(srcdir)/'`Mexp.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/msmfunc_la-Mexp.Tpo $(DEPDIR)/msmfunc_la-Mexp.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Mexp.cc' object='msmfunc_la-Mexp.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(msmfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT msmfunc_la-Mexp.lo -MD -MP -MF $(DEPDIR)/msmfunc_la-Mexp.Tpo -c -o msmfunc_la-Mexp.lo `test -f 'Mexp.cc' || echo '$(srcdir)/'`Mexp.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/msmfunc_la-Mexp.Tpo $(DEPDIR)/msmfunc_la-Mexp.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Mexp.cc' object='msmfunc_la-Mexp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(msmfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o msmfunc_la-Mexp.lo `test -f 'Mexp.cc' || echo '$(srcdir)/'`Mexp.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(msmfunc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o msmfunc_la-Mexp.lo `test -f 'Mexp.cc' || echo '$(srcdir)/'`Mexp.cc mostlyclean-libtool: -rm -f *.lo @@ -347,26 +432,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -378,15 +452,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -395,6 +465,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -536,18 +621,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/msm/functions/Mexp.cc jags-4.0.0/src/modules/msm/functions/Mexp.cc --- jags-3.4.0/src/modules/msm/functions/Mexp.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/msm/functions/Mexp.cc 2015-02-22 08:33:06.000000000 +0000 @@ -7,6 +7,7 @@ using std::vector; +namespace jags { namespace msm { Mexp::Mexp() @@ -20,7 +21,8 @@ MatrixExpPade(value, args[0], dims[0][0], 1); } -vector Mexp::dim (vector > const &dims) const +vector Mexp::dim (vector > const &dims, + vector const &values) const { return dims[0]; } @@ -30,4 +32,4 @@ return isSquareMatrix(dims[0]); } -} +}} diff -Nru jags-3.4.0/src/modules/msm/functions/Mexp.h jags-4.0.0/src/modules/msm/functions/Mexp.h --- jags-3.4.0/src/modules/msm/functions/Mexp.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/msm/functions/Mexp.h 2015-02-22 08:33:06.000000000 +0000 @@ -3,6 +3,7 @@ #include +namespace jags { namespace msm { class Mexp : public ArrayFunction @@ -12,10 +13,11 @@ void evaluate (double *value, std::vector const &args, std::vector > const &dims) const; std::vector - dim(std::vector > const &dims) const; + dim(std::vector > const &dims, + std::vector const &values) const; bool checkParameterDim(std::vector > const &dims) const; }; -} +}} #endif /* MEXP_H_ */ diff -Nru jags-3.4.0/src/modules/msm/Makefile.am jags-4.0.0/src/modules/msm/Makefile.am --- jags-3.4.0/src/modules/msm/Makefile.am 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/msm/Makefile.am 2015-09-13 20:32:25.000000000 +0000 @@ -11,9 +11,14 @@ matrix/msmmatrix.la \ $(top_builddir)/src/jrmath/libjrmath.la \ $(top_builddir)/src/lib/libjags.la \ - @LAPACK_LIBS@ @BLAS_LIBS@ + @LAPACK_LIBS@ @BLAS_LIBS@ msm_la_LDFLAGS = -module -avoid-version + if WINDOWS msm_la_LDFLAGS += -no-undefined +else +# Adding FLIBS here allows static linking, but on Windows we don't want to +# do this as it will cause failure to build msm.dll using Rtools +msm_la_LIBADD += @FLIBS@ endif diff -Nru jags-3.4.0/src/modules/msm/Makefile.in jags-4.0.0/src/modules/msm/Makefile.in --- jags-3.4.0/src/modules/msm/Makefile.in 2013-08-30 13:23:30.000000000 +0000 +++ jags-4.0.0/src/modules/msm/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +89,10 @@ build_triplet = @build@ host_triplet = @host@ @WINDOWS_TRUE@am__append_1 = -no-undefined +# Adding FLIBS here allows static linking, but on Windows we don't want to +# do this as it will cause failure to build msm.dll using Rtools +@WINDOWS_FALSE@am__append_2 = @FLIBS@ subdir = src/modules/msm -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -63,6 +102,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -96,36 +136,63 @@ } am__installdirs = "$(DESTDIR)$(jagsmoddir)" LTLIBRARIES = $(jagsmod_LTLIBRARIES) +am__DEPENDENCIES_1 = msm_la_DEPENDENCIES = distributions/msmdist.la functions/msmfunc.la \ matrix/msmmatrix.la $(top_builddir)/src/jrmath/libjrmath.la \ - $(top_builddir)/src/lib/libjags.la + $(top_builddir)/src/lib/libjags.la $(am__DEPENDENCIES_1) am_msm_la_OBJECTS = msm_la-msm.lo msm_la_OBJECTS = $(am_msm_la_OBJECTS) -msm_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ - $(msm_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +msm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(msm_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(msm_la_SOURCES) DIST_SOURCES = $(msm_la_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -133,12 +200,33 @@ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ @@ -167,6 +255,7 @@ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -180,6 +269,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -249,10 +341,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -322,13 +410,10 @@ jagsmod_LTLIBRARIES = msm.la msm_la_SOURCES = msm.cc msm_la_CPPFLAGS = -I$(top_srcdir)/src/include -msm_la_LIBADD = distributions/msmdist.la \ - functions/msmfunc.la \ - matrix/msmmatrix.la \ - $(top_builddir)/src/jrmath/libjrmath.la \ - $(top_builddir)/src/lib/libjags.la \ - @LAPACK_LIBS@ @BLAS_LIBS@ - +msm_la_LIBADD = distributions/msmdist.la functions/msmfunc.la \ + matrix/msmmatrix.la $(top_builddir)/src/jrmath/libjrmath.la \ + $(top_builddir)/src/lib/libjags.la @LAPACK_LIBS@ @BLAS_LIBS@ \ + $(am__append_2) msm_la_LDFLAGS = -module -avoid-version $(am__append_1) all: all-recursive @@ -346,7 +431,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/msm/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/msm/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -364,6 +448,7 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-jagsmodLTLIBRARIES: $(jagsmod_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(jagsmod_LTLIBRARIES)'; test -n "$(jagsmoddir)" || list=; \ @@ -390,14 +475,17 @@ clean-jagsmodLTLIBRARIES: -test -z "$(jagsmod_LTLIBRARIES)" || rm -f $(jagsmod_LTLIBRARIES) - @list='$(jagsmod_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(jagsmod_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + msm.la: $(msm_la_OBJECTS) $(msm_la_DEPENDENCIES) $(EXTRA_msm_la_DEPENDENCIES) - $(msm_la_LINK) -rpath $(jagsmoddir) $(msm_la_OBJECTS) $(msm_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(msm_la_LINK) -rpath $(jagsmoddir) $(msm_la_OBJECTS) $(msm_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -408,32 +496,35 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msm_la-msm.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< msm_la-msm.lo: msm.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(msm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT msm_la-msm.lo -MD -MP -MF $(DEPDIR)/msm_la-msm.Tpo -c -o msm_la-msm.lo `test -f 'msm.cc' || echo '$(srcdir)/'`msm.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/msm_la-msm.Tpo $(DEPDIR)/msm_la-msm.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='msm.cc' object='msm_la-msm.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(msm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT msm_la-msm.lo -MD -MP -MF $(DEPDIR)/msm_la-msm.Tpo -c -o msm_la-msm.lo `test -f 'msm.cc' || echo '$(srcdir)/'`msm.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/msm_la-msm.Tpo $(DEPDIR)/msm_la-msm.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='msm.cc' object='msm_la-msm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(msm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o msm_la-msm.lo `test -f 'msm.cc' || echo '$(srcdir)/'`msm.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(msm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o msm_la-msm.lo `test -f 'msm.cc' || echo '$(srcdir)/'`msm.cc mostlyclean-libtool: -rm -f *.lo @@ -442,22 +533,25 @@ -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -472,57 +566,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -538,12 +587,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -555,15 +599,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -572,6 +612,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -740,24 +795,25 @@ uninstall-am: uninstall-jagsmodLTLIBRARIES -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-jagsmodLTLIBRARIES \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am \ + install-jagsmodLTLIBRARIES install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-jagsmodLTLIBRARIES -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic \ - clean-jagsmodLTLIBRARIES clean-libtool ctags ctags-recursive \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-jagsmodLTLIBRARIES install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-jagsmodLTLIBRARIES +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/msm/matrix/Makefile.in jags-4.0.0/src/modules/msm/matrix/Makefile.in --- jags-3.4.0/src/modules/msm/matrix/Makefile.in 2013-08-30 13:23:30.000000000 +0000 +++ jags-4.0.0/src/modules/msm/matrix/Makefile.in 2015-09-27 12:02:18.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +90,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/modules/msm/matrix -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -64,6 +99,8 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -72,22 +109,47 @@ msmmatrix_la_LIBADD = am_msmmatrix_la_OBJECTS = msmmatrix_la-matexp.lo msmmatrix_la_OBJECTS = $(am_msmmatrix_la_OBJECTS) -msmmatrix_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +msmmatrix_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(msmmatrix_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(msmmatrix_la_SOURCES) DIST_SOURCES = $(msmmatrix_la_SOURCES) am__can_run_installinfo = \ @@ -96,11 +158,30 @@ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -114,6 +195,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -183,10 +267,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -273,7 +353,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/msm/matrix/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/msm/matrix/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -294,14 +373,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + msmmatrix.la: $(msmmatrix_la_OBJECTS) $(msmmatrix_la_DEPENDENCIES) $(EXTRA_msmmatrix_la_DEPENDENCIES) - $(msmmatrix_la_LINK) $(msmmatrix_la_OBJECTS) $(msmmatrix_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(msmmatrix_la_LINK) $(msmmatrix_la_OBJECTS) $(msmmatrix_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -312,32 +394,35 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msmmatrix_la-matexp.Plo@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< msmmatrix_la-matexp.lo: matexp.cc -@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(msmmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT msmmatrix_la-matexp.lo -MD -MP -MF $(DEPDIR)/msmmatrix_la-matexp.Tpo -c -o msmmatrix_la-matexp.lo `test -f 'matexp.cc' || echo '$(srcdir)/'`matexp.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/msmmatrix_la-matexp.Tpo $(DEPDIR)/msmmatrix_la-matexp.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='matexp.cc' object='msmmatrix_la-matexp.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(msmmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT msmmatrix_la-matexp.lo -MD -MP -MF $(DEPDIR)/msmmatrix_la-matexp.Tpo -c -o msmmatrix_la-matexp.lo `test -f 'matexp.cc' || echo '$(srcdir)/'`matexp.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/msmmatrix_la-matexp.Tpo $(DEPDIR)/msmmatrix_la-matexp.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='matexp.cc' object='msmmatrix_la-matexp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(msmmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o msmmatrix_la-matexp.lo `test -f 'matexp.cc' || echo '$(srcdir)/'`matexp.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(msmmatrix_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o msmmatrix_la-matexp.lo `test -f 'matexp.cc' || echo '$(srcdir)/'`matexp.cc mostlyclean-libtool: -rm -f *.lo @@ -345,26 +430,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -376,15 +450,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -393,6 +463,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -534,18 +619,21 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/src/modules/msm/matrix/matexp.cc jags-4.0.0/src/modules/msm/matrix/matexp.cc --- jags-3.4.0/src/modules/msm/matrix/matexp.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/msm/matrix/matexp.cc 2015-02-22 08:33:06.000000000 +0000 @@ -24,6 +24,7 @@ using std::exp; using std::log; +namespace jags { namespace msm { static int c_1 = 1; @@ -203,4 +204,4 @@ delete [] workspace; } -} +}} diff -Nru jags-3.4.0/src/modules/msm/matrix/matexp.h jags-4.0.0/src/modules/msm/matrix/matexp.h --- jags-3.4.0/src/modules/msm/matrix/matexp.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/msm/matrix/matexp.h 2015-02-22 08:33:06.000000000 +0000 @@ -1,11 +1,12 @@ #ifndef MATEXP_H_ #define MATEXP_H_ +namespace jags { namespace msm { void MatrixExp(double *expmat, double const *mat, int n, double t); void MatrixExpPade(double *expmat, double const *mat, int n, double t); -} +}} #endif /* MATEXP_H_ */ diff -Nru jags-3.4.0/src/modules/msm/msm.cc jags-4.0.0/src/modules/msm/msm.cc --- jags-3.4.0/src/modules/msm/msm.cc 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/modules/msm/msm.cc 2015-02-22 08:33:06.000000000 +0000 @@ -1,5 +1,4 @@ -#include -#include +#include #include @@ -7,6 +6,7 @@ using std::vector; +namespace jags { namespace msm { class MSMModule : public Module { @@ -35,7 +35,8 @@ delete fvec[i]; } } -} + +}} -msm::MSMModule _msm_module; +jags::msm::MSMModule _msm_module; diff -Nru jags-3.4.0/src/terminal/Makefile.am jags-4.0.0/src/terminal/Makefile.am --- jags-3.4.0/src/terminal/Makefile.am 2013-04-30 15:19:32.000000000 +0000 +++ jags-4.0.0/src/terminal/Makefile.am 2015-09-12 07:00:16.000000000 +0000 @@ -1,4 +1,4 @@ -BUILT_SOURCES = parser.h +BUILT_SOURCES = parser.hh AM_YFLAGS = -d libexec_PROGRAMS = jags-terminal @@ -64,4 +64,5 @@ ## and cleaning of the jags shell script and its source. EXTRA_DIST = jags.in -CLEANFILES = jags +CLEANFILES = jags +MAINTAINERCLEANFILES = parser.cc parser.hh scanner.cc diff -Nru jags-3.4.0/src/terminal/Makefile.in jags-4.0.0/src/terminal/Makefile.in --- jags-3.4.0/src/terminal/Makefile.in 2013-08-30 13:23:30.000000000 +0000 +++ jags-4.0.0/src/terminal/Makefile.in 2015-09-27 12:02:19.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -18,23 +17,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -55,9 +92,6 @@ host_triplet = @host@ libexec_PROGRAMS = jags-terminal$(EXEEXT) subdir = src/terminal -DIST_COMMON = $(am__dist_bin_SCRIPTS_DIST) $(noinst_HEADERS) \ - $(srcdir)/Makefile.am $(srcdir)/Makefile.in parser.cc parser.h \ - scanner.cc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -67,6 +101,8 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__dist_bin_SCRIPTS_DIST) \ + $(noinst_HEADERS) $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -90,6 +126,10 @@ @WINDOWS_FALSE@ ${top_builddir}/src/modules/msm/msm.la @WINDOWS_TRUE@jags_terminal_DEPENDENCIES = $(am__DEPENDENCIES_1) \ @WINDOWS_TRUE@ ${top_builddir}/src/lib/libjags.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -119,35 +159,75 @@ } am__dist_bin_SCRIPTS_DIST = jags.bat SCRIPTS = $(bin_SCRIPTS) $(dist_bin_SCRIPTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS) -LTLEXCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(LEX) $(AM_LFLAGS) $(LFLAGS) +LTLEXCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(LEX) $(AM_LFLAGS) $(LFLAGS) +AM_V_LEX = $(am__v_LEX_@AM_V@) +am__v_LEX_ = $(am__v_LEX_@AM_DEFAULT_V@) +am__v_LEX_0 = @echo " LEX " $@; +am__v_LEX_1 = YLWRAP = $(top_srcdir)/ylwrap +am__yacc_c2h = sed -e s/cc$$/hh/ -e s/cpp$$/hpp/ -e s/cxx$$/hxx/ \ + -e s/c++$$/h++/ -e s/c$$/h/ YACCCOMPILE = $(YACC) $(AM_YFLAGS) $(YFLAGS) -LTYACCCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(YACC) $(AM_YFLAGS) $(YFLAGS) +LTYACCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(YACC) $(AM_YFLAGS) $(YFLAGS) +AM_V_YACC = $(am__v_YACC_@AM_V@) +am__v_YACC_ = $(am__v_YACC_@AM_DEFAULT_V@) +am__v_YACC_0 = @echo " YACC " $@; +am__v_YACC_1 = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(jags_terminal_SOURCES) DIST_SOURCES = $(jags_terminal_SOURCES) am__can_run_installinfo = \ @@ -156,11 +236,31 @@ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \ + $(top_srcdir)/ylwrap parser.cc parser.hh scanner.cc DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -174,6 +274,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -243,10 +346,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -312,7 +411,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -BUILT_SOURCES = parser.h +BUILT_SOURCES = parser.hh AM_YFLAGS = -d jags_terminal_SOURCES = parser.yy scanner.ll ReadData.cc @WINDOWS_FALSE@jags_terminal_LDADD = $(LIBLTDL) ${top_builddir}/src/lib/libjags.la \ @@ -342,7 +441,8 @@ @WINDOWS_FALSE@ -e "s,@jterm\@,$${jterm},g" EXTRA_DIST = jags.in -CLEANFILES = jags +CLEANFILES = jags +MAINTAINERCLEANFILES = parser.cc parser.hh scanner.cc all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am @@ -360,7 +460,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/terminal/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/terminal/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -387,10 +486,12 @@ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p || test -f $$p1; \ - then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p \ + || test -f $$p1 \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -411,7 +512,8 @@ @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ + -e 's/$$/$(EXEEXT)/' \ + `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(libexecdir)" && rm -f $$files @@ -424,12 +526,13 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -parser.h: parser.cc +parser.hh: parser.cc @if test ! -f $@; then rm -f parser.cc; else :; fi @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) parser.cc; else :; fi + jags-terminal$(EXEEXT): $(jags_terminal_OBJECTS) $(jags_terminal_DEPENDENCIES) $(EXTRA_jags_terminal_DEPENDENCIES) @rm -f jags-terminal$(EXEEXT) - $(CXXLINK) $(jags_terminal_OBJECTS) $(jags_terminal_LDADD) $(LIBS) + $(AM_V_CXXLD)$(CXXLINK) $(jags_terminal_OBJECTS) $(jags_terminal_LDADD) $(LIBS) install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ @@ -512,73 +615,76 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jags_terminal-scanner.Po@am__quote@ .cc.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< jags_terminal-parser.o: parser.cc -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT jags_terminal-parser.o -MD -MP -MF $(DEPDIR)/jags_terminal-parser.Tpo -c -o jags_terminal-parser.o `test -f 'parser.cc' || echo '$(srcdir)/'`parser.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/jags_terminal-parser.Tpo $(DEPDIR)/jags_terminal-parser.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='parser.cc' object='jags_terminal-parser.o' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT jags_terminal-parser.o -MD -MP -MF $(DEPDIR)/jags_terminal-parser.Tpo -c -o jags_terminal-parser.o `test -f 'parser.cc' || echo '$(srcdir)/'`parser.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/jags_terminal-parser.Tpo $(DEPDIR)/jags_terminal-parser.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='parser.cc' object='jags_terminal-parser.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o jags_terminal-parser.o `test -f 'parser.cc' || echo '$(srcdir)/'`parser.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o jags_terminal-parser.o `test -f 'parser.cc' || echo '$(srcdir)/'`parser.cc jags_terminal-parser.obj: parser.cc -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT jags_terminal-parser.obj -MD -MP -MF $(DEPDIR)/jags_terminal-parser.Tpo -c -o jags_terminal-parser.obj `if test -f 'parser.cc'; then $(CYGPATH_W) 'parser.cc'; else $(CYGPATH_W) '$(srcdir)/parser.cc'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/jags_terminal-parser.Tpo $(DEPDIR)/jags_terminal-parser.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='parser.cc' object='jags_terminal-parser.obj' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT jags_terminal-parser.obj -MD -MP -MF $(DEPDIR)/jags_terminal-parser.Tpo -c -o jags_terminal-parser.obj `if test -f 'parser.cc'; then $(CYGPATH_W) 'parser.cc'; else $(CYGPATH_W) '$(srcdir)/parser.cc'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/jags_terminal-parser.Tpo $(DEPDIR)/jags_terminal-parser.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='parser.cc' object='jags_terminal-parser.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o jags_terminal-parser.obj `if test -f 'parser.cc'; then $(CYGPATH_W) 'parser.cc'; else $(CYGPATH_W) '$(srcdir)/parser.cc'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o jags_terminal-parser.obj `if test -f 'parser.cc'; then $(CYGPATH_W) 'parser.cc'; else $(CYGPATH_W) '$(srcdir)/parser.cc'; fi` jags_terminal-scanner.o: scanner.cc -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT jags_terminal-scanner.o -MD -MP -MF $(DEPDIR)/jags_terminal-scanner.Tpo -c -o jags_terminal-scanner.o `test -f 'scanner.cc' || echo '$(srcdir)/'`scanner.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/jags_terminal-scanner.Tpo $(DEPDIR)/jags_terminal-scanner.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scanner.cc' object='jags_terminal-scanner.o' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT jags_terminal-scanner.o -MD -MP -MF $(DEPDIR)/jags_terminal-scanner.Tpo -c -o jags_terminal-scanner.o `test -f 'scanner.cc' || echo '$(srcdir)/'`scanner.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/jags_terminal-scanner.Tpo $(DEPDIR)/jags_terminal-scanner.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='scanner.cc' object='jags_terminal-scanner.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o jags_terminal-scanner.o `test -f 'scanner.cc' || echo '$(srcdir)/'`scanner.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o jags_terminal-scanner.o `test -f 'scanner.cc' || echo '$(srcdir)/'`scanner.cc jags_terminal-scanner.obj: scanner.cc -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT jags_terminal-scanner.obj -MD -MP -MF $(DEPDIR)/jags_terminal-scanner.Tpo -c -o jags_terminal-scanner.obj `if test -f 'scanner.cc'; then $(CYGPATH_W) 'scanner.cc'; else $(CYGPATH_W) '$(srcdir)/scanner.cc'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/jags_terminal-scanner.Tpo $(DEPDIR)/jags_terminal-scanner.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scanner.cc' object='jags_terminal-scanner.obj' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT jags_terminal-scanner.obj -MD -MP -MF $(DEPDIR)/jags_terminal-scanner.Tpo -c -o jags_terminal-scanner.obj `if test -f 'scanner.cc'; then $(CYGPATH_W) 'scanner.cc'; else $(CYGPATH_W) '$(srcdir)/scanner.cc'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/jags_terminal-scanner.Tpo $(DEPDIR)/jags_terminal-scanner.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='scanner.cc' object='jags_terminal-scanner.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o jags_terminal-scanner.obj `if test -f 'scanner.cc'; then $(CYGPATH_W) 'scanner.cc'; else $(CYGPATH_W) '$(srcdir)/scanner.cc'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o jags_terminal-scanner.obj `if test -f 'scanner.cc'; then $(CYGPATH_W) 'scanner.cc'; else $(CYGPATH_W) '$(srcdir)/scanner.cc'; fi` jags_terminal-ReadData.o: ReadData.cc -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT jags_terminal-ReadData.o -MD -MP -MF $(DEPDIR)/jags_terminal-ReadData.Tpo -c -o jags_terminal-ReadData.o `test -f 'ReadData.cc' || echo '$(srcdir)/'`ReadData.cc -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/jags_terminal-ReadData.Tpo $(DEPDIR)/jags_terminal-ReadData.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ReadData.cc' object='jags_terminal-ReadData.o' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT jags_terminal-ReadData.o -MD -MP -MF $(DEPDIR)/jags_terminal-ReadData.Tpo -c -o jags_terminal-ReadData.o `test -f 'ReadData.cc' || echo '$(srcdir)/'`ReadData.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/jags_terminal-ReadData.Tpo $(DEPDIR)/jags_terminal-ReadData.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ReadData.cc' object='jags_terminal-ReadData.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o jags_terminal-ReadData.o `test -f 'ReadData.cc' || echo '$(srcdir)/'`ReadData.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o jags_terminal-ReadData.o `test -f 'ReadData.cc' || echo '$(srcdir)/'`ReadData.cc jags_terminal-ReadData.obj: ReadData.cc -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT jags_terminal-ReadData.obj -MD -MP -MF $(DEPDIR)/jags_terminal-ReadData.Tpo -c -o jags_terminal-ReadData.obj `if test -f 'ReadData.cc'; then $(CYGPATH_W) 'ReadData.cc'; else $(CYGPATH_W) '$(srcdir)/ReadData.cc'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/jags_terminal-ReadData.Tpo $(DEPDIR)/jags_terminal-ReadData.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ReadData.cc' object='jags_terminal-ReadData.obj' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT jags_terminal-ReadData.obj -MD -MP -MF $(DEPDIR)/jags_terminal-ReadData.Tpo -c -o jags_terminal-ReadData.obj `if test -f 'ReadData.cc'; then $(CYGPATH_W) 'ReadData.cc'; else $(CYGPATH_W) '$(srcdir)/ReadData.cc'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/jags_terminal-ReadData.Tpo $(DEPDIR)/jags_terminal-ReadData.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ReadData.cc' object='jags_terminal-ReadData.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o jags_terminal-ReadData.obj `if test -f 'ReadData.cc'; then $(CYGPATH_W) 'ReadData.cc'; else $(CYGPATH_W) '$(srcdir)/ReadData.cc'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jags_terminal_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o jags_terminal-ReadData.obj `if test -f 'ReadData.cc'; then $(CYGPATH_W) 'ReadData.cc'; else $(CYGPATH_W) '$(srcdir)/ReadData.cc'; fi` .ll.cc: - $(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) + $(AM_V_LEX)$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) .yy.cc: - $(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE) + $(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h `echo $@ | $(am__yacc_c2h)` y.output $*.output -- $(YACCCOMPILE) mostlyclean-libtool: -rm -f *.lo @@ -586,26 +692,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -617,15 +712,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -634,6 +725,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -709,9 +815,10 @@ @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -rm -f parser.cc - -rm -f parser.h + -rm -f parser.hh -rm -f scanner.cc -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libexecPROGRAMS clean-libtool \ @@ -787,22 +894,24 @@ .MAKE: all check install install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libexecPROGRAMS clean-libtool ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-binSCRIPTS install-data \ - install-data-am install-dist_binSCRIPTS install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libexecPROGRAMS clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binSCRIPTS \ + install-data install-data-am install-dist_binSCRIPTS \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ install-libexecPROGRAMS install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-binSCRIPTS \ + tags tags-am uninstall uninstall-am uninstall-binSCRIPTS \ uninstall-dist_binSCRIPTS uninstall-libexecPROGRAMS +.PRECIOUS: Makefile + @WINDOWS_FALSE@jags: Makefile $(srcdir)/jags.in @WINDOWS_FALSE@ rm -f jags jags.tmp diff -Nru jags-3.4.0/src/terminal/parser.cc jags-4.0.0/src/terminal/parser.cc --- jags-3.4.0/src/terminal/parser.cc 2013-08-30 11:52:57.000000000 +0000 +++ jags-4.0.0/src/terminal/parser.cc 2015-10-01 05:37:25.000000000 +0000 @@ -1,19 +1,19 @@ -/* A Bison parser, made by GNU Bison 2.6.1. */ +/* A Bison parser, made by GNU Bison 3.0.2. */ /* Bison implementation for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. - + + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -26,7 +26,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.6.1" +#define YYBISON_VERSION "3.0.2" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -63,14 +63,14 @@ #define yyparse zzparse #define yylex zzlex #define yyerror zzerror -#define yylval zzlval -#define yychar zzchar #define yydebug zzdebug #define yynerrs zznerrs +#define yylval zzlval +#define yychar zzchar + /* Copy the first part of user declarations. */ -/* Line 336 of yacc.c */ -#line 2 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 2 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:339 */ #include @@ -102,7 +102,7 @@ #include #include -#include +#include #include #include #include @@ -121,20 +121,20 @@ int zzlex(); int zzlex_destroy(); #define YYERROR_VERBOSE 0 - static Console *console; + static jags::Console *console; bool interactive; extern int command_buffer_count; - void setName(ParseTree *p, std::string *name); - std::map _data_table; + void setName(jags::ParseTree *p, std::string *name); + std::map _data_table; std::deque _dyn_lib; bool open_data_buffer(std::string const *name); bool open_command_buffer(std::string const *name); void return_to_main_buffer(); - void setMonitor(ParseTree const *var, int thin, std::string const &type); - void clearMonitor(ParseTree const *var, std::string const &type); - void doCoda (ParseTree const *var, std::string const &stem); + void setMonitor(jags::ParseTree const *var, int thin, std::string const &type); + void clearMonitor(jags::ParseTree const *var, std::string const &type); + void doCoda (jags::ParseTree const *var, std::string const &stem); void doAllCoda (std::string const &stem); - void doDump (std::string const &file, DumpType type, unsigned int chain); + void doDump (std::string const &file, jags::DumpType type, unsigned int chain); void dumpMonitors(std::string const &file, std::string const &type); void doSystem(std::string const *command); std::string ExpandFileName(char const *s); @@ -143,27 +143,28 @@ static void errordump(); static void updatestar(long niter, long refresh, int width); static void adaptstar(long niter, long refresh, int width); - static void setParameters(ParseTree *p, ParseTree *param1); - static void setParameters(ParseTree *p, std::vector *parameters); - static void setParameters(ParseTree *p, ParseTree *param1, ParseTree *param2); + static void setParameters(jags::ParseTree *p, jags::ParseTree *param1); + static void setParameters(jags::ParseTree *p, std::vector *parameters); + static void setParameters(jags::ParseTree *p, jags::ParseTree *param1, jags::ParseTree *param2); static void loadModule(std::string const &name); static void unloadModule(std::string const &name); static void dumpSamplers(std::string const &file); - static void delete_pvec(std::vector *); - static void print_unused_variables(std::map const &table, bool data); - static void listFactories(FactoryType type); - static void setFactory(std::string const &name, FactoryType type, + static void delete_pvec(std::vector *); + static void print_unused_variables(std::map const &table, bool data); + static void listFactories(jags::FactoryType type); + static void setFactory(std::string const &name, jags::FactoryType type, std::string const &status); + static void setSeed(unsigned int seed); static bool Jtry(bool ok); -/* Line 336 of yacc.c */ -#line 161 "parser.cc" -# ifndef YY_NULL +#line 162 "parser.cc" /* yacc.c:339 */ + +# ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULL nullptr +# define YY_NULLPTR nullptr # else -# define YY_NULL 0 +# define YY_NULLPTR 0 # endif # endif @@ -177,9 +178,9 @@ /* In a future release of Bison, this section will be replaced by #include "y.tab.h". */ -#ifndef ZZ_Y_TAB_H -# define ZZ_Y_TAB_H -/* Enabling traces. */ +#ifndef YY_ZZ_PARSER_HH_INCLUDED +# define YY_ZZ_PARSER_HH_INCLUDED +/* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif @@ -187,63 +188,63 @@ extern int zzdebug; #endif -/* Tokens. */ +/* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - INT = 258, - DOUBLE = 259, - NAME = 260, - STRING = 261, - SYSCMD = 262, - ENDCMD = 263, - MODEL = 264, - DATA = 265, - IN = 266, - TO = 267, - INITS = 268, - PARAMETERS = 269, - COMPILE = 270, - INITIALIZE = 271, - ADAPT = 272, - UPDATE = 273, - BY = 274, - MONITORS = 275, - MONITOR = 276, - TYPE = 277, - SET = 278, - CLEAR = 279, - THIN = 280, - CODA = 281, - STEM = 282, - EXIT = 283, - NCHAINS = 284, - CHAIN = 285, - LOAD = 286, - UNLOAD = 287, - SAMPLER = 288, - SAMPLERS = 289, - RNGTOK = 290, - FACTORY = 291, - FACTORIES = 292, - LIST = 293, - STRUCTURE = 294, - DIM = 295, - NA = 296, - R_NULL = 297, - DIMNAMES = 298, - ITER = 299, - ARROW = 300, - ENDDATA = 301, - ASINTEGER = 302, - DIRECTORY = 303, - CD = 304, - PWD = 305, - RUN = 306, - ENDSCRIPT = 307 - }; + enum yytokentype + { + INT = 258, + DOUBLE = 259, + NAME = 260, + STRING = 261, + SYSCMD = 262, + ENDCMD = 263, + MODEL = 264, + DATA = 265, + IN = 266, + TO = 267, + INITS = 268, + PARAMETERS = 269, + COMPILE = 270, + INITIALIZE = 271, + ADAPT = 272, + UPDATE = 273, + BY = 274, + MONITORS = 275, + MONITOR = 276, + TYPE = 277, + SET = 278, + CLEAR = 279, + THIN = 280, + CODA = 281, + STEM = 282, + EXIT = 283, + NCHAINS = 284, + CHAIN = 285, + LOAD = 286, + UNLOAD = 287, + SAMPLER = 288, + SAMPLERS = 289, + RNGTOK = 290, + FACTORY = 291, + FACTORIES = 292, + SEED = 293, + LIST = 294, + STRUCTURE = 295, + DIM = 296, + NA = 297, + R_NULL = 298, + DIMNAMES = 299, + ITER = 300, + ARROW = 301, + ENDDATA = 302, + ASINTEGER = 303, + DIRECTORY = 304, + CD = 305, + PWD = 306, + RUN = 307, + ENDSCRIPT = 308 + }; #endif /* Tokens. */ #define INT 258 @@ -281,69 +282,54 @@ #define RNGTOK 290 #define FACTORY 291 #define FACTORIES 292 -#define LIST 293 -#define STRUCTURE 294 -#define DIM 295 -#define NA 296 -#define R_NULL 297 -#define DIMNAMES 298 -#define ITER 299 -#define ARROW 300 -#define ENDDATA 301 -#define ASINTEGER 302 -#define DIRECTORY 303 -#define CD 304 -#define PWD 305 -#define RUN 306 -#define ENDSCRIPT 307 - - +#define SEED 293 +#define LIST 294 +#define STRUCTURE 295 +#define DIM 296 +#define NA 297 +#define R_NULL 298 +#define DIMNAMES 299 +#define ITER 300 +#define ARROW 301 +#define ENDDATA 302 +#define ASINTEGER 303 +#define DIRECTORY 304 +#define CD 305 +#define PWD 306 +#define RUN 307 +#define ENDSCRIPT 308 +/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE +typedef union YYSTYPE YYSTYPE; +union YYSTYPE { -/* Line 350 of yacc.c */ -#line 91 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 92 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:355 */ int intval; double val; std::string *stringptr; - ParseTree *ptree; - std::vector *pvec; + jags::ParseTree *ptree; + std::vector *pvec; std::vector *vec; std::vector *ivec; - -/* Line 350 of yacc.c */ -#line 319 "parser.cc" -} YYSTYPE; +#line 318 "parser.cc" /* yacc.c:355 */ +}; # define YYSTYPE_IS_TRIVIAL 1 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif + extern YYSTYPE zzlval; -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int zzparse (void *YYPARSE_PARAM); -#else -int zzparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus int zzparse (void); -#else -int zzparse (); -#endif -#endif /* ! YYPARSE_PARAM */ -#endif /* !ZZ_Y_TAB_H */ +#endif /* !YY_ZZ_PARSER_HH_INCLUDED */ /* Copy the second part of user declarations. */ -/* Line 353 of yacc.c */ -#line 347 "parser.cc" +#line 333 "parser.cc" /* yacc.c:358 */ #ifdef short # undef short @@ -357,11 +343,8 @@ #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; -#elif (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -typedef signed char yytype_int8; #else -typedef short int yytype_int8; +typedef signed char yytype_int8; #endif #ifdef YYTYPE_UINT16 @@ -381,8 +364,7 @@ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# elif ! defined YYSIZE_T # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -396,39 +378,68 @@ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ -# define YY_(msgid) dgettext ("bison-runtime", msgid) +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ -# define YY_(msgid) msgid +# define YY_(Msgid) Msgid +# endif +#endif + +#ifndef YY_ATTRIBUTE +# if (defined __GNUC__ \ + && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ + || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C +# define YY_ATTRIBUTE(Spec) __attribute__(Spec) +# else +# define YY_ATTRIBUTE(Spec) /* empty */ +# endif +#endif + +#ifndef YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +#endif + +#if !defined _Noreturn \ + && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) +# if defined _MSC_VER && 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(e) ((void) (e)) +# define YYUSE(E) ((void) (E)) #else -# define YYUSE(e) /* empty */ +# define YYUSE(E) /* empty */ #endif -/* Identity function, used to suppress warnings about constant conditions. */ -#ifndef lint -# define YYID(n) (n) +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") #else -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static int -YYID (int yyi) -#else -static int -YYID (yyi) - int yyi; +# define YY_INITIAL_VALUE(Value) Value #endif -{ - return yyi; -} +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif + #if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -446,8 +457,7 @@ # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS @@ -459,8 +469,8 @@ # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely @@ -476,7 +486,7 @@ # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) + && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 @@ -484,15 +494,13 @@ # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif @@ -502,7 +510,7 @@ #if (! defined yyoverflow \ && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc @@ -527,16 +535,16 @@ elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) #endif @@ -555,7 +563,7 @@ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ - while (YYID (0)) + while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ @@ -563,37 +571,39 @@ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 277 +#define YYLAST 282 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 64 +#define YYNTOKENS 65 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 55 +#define YYNNTS 56 /* YYNRULES -- Number of rules. */ -#define YYNRULES 137 -/* YYNRULES -- Number of states. */ -#define YYNSTATES 290 +#define YYNRULES 139 +/* YYNSTATES -- Number of states. */ +#define YYNSTATES 293 -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned + by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 307 +#define YYMAXUTOK 308 -#define YYTRANSLATE(YYX) \ +#define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, without out-of-bounds checking. */ static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 54, 55, 59, 2, 53, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 58, 60, - 2, 62, 2, 2, 2, 2, 2, 2, 2, 2, + 55, 56, 60, 2, 54, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 59, 61, + 2, 63, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 56, 2, 57, 2, 2, 61, 2, 2, 63, + 2, 57, 2, 58, 2, 2, 62, 2, 2, 64, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -614,104 +624,27 @@ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52 + 45, 46, 47, 48, 49, 50, 51, 52, 53 }; #if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint16 yyprhs[] = -{ - 0, 0, 3, 4, 7, 9, 12, 15, 17, 20, - 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, - 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, - 63, 65, 67, 71, 74, 78, 80, 84, 88, 91, - 95, 104, 106, 110, 119, 123, 127, 129, 136, 138, - 141, 149, 152, 160, 162, 164, 169, 171, 175, 177, - 181, 183, 185, 187, 191, 200, 203, 211, 219, 231, - 243, 247, 256, 260, 269, 271, 273, 276, 284, 287, - 295, 298, 301, 305, 313, 321, 329, 339, 349, 359, - 361, 364, 368, 372, 376, 380, 382, 384, 388, 395, - 400, 402, 404, 408, 412, 416, 420, 422, 424, 429, - 431, 436, 438, 442, 444, 446, 450, 452, 456, 458, - 462, 464, 469, 471, 476, 481, 483, 485, 490, 492, - 496, 498, 503, 505, 509, 511, 514, 516 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int8 yyrhs[] = -{ - 65, 0, -1, -1, 65, 66, -1, 8, -1, 67, - 8, -1, 1, 8, -1, 118, -1, 52, 8, -1, - 7, 8, -1, 68, -1, 69, -1, 70, -1, 72, - -1, 73, -1, 74, -1, 76, -1, 77, -1, 78, - -1, 79, -1, 85, -1, 88, -1, 90, -1, 91, - -1, 92, -1, 80, -1, 117, -1, 115, -1, 116, - -1, 93, -1, 94, -1, 95, -1, 9, 11, 89, - -1, 9, 24, -1, 71, 96, 46, -1, 71, -1, - 10, 12, 89, -1, 10, 11, 89, -1, 10, 24, - -1, 75, 96, 46, -1, 75, 96, 46, 53, 30, - 54, 3, 55, -1, 75, -1, 14, 12, 89, -1, - 14, 12, 89, 53, 30, 54, 3, 55, -1, 14, - 11, 89, -1, 13, 11, 89, -1, 15, -1, 15, - 53, 29, 54, 3, 55, -1, 16, -1, 17, 3, - -1, 17, 3, 53, 19, 54, 3, 55, -1, 18, - 3, -1, 18, 3, 53, 19, 54, 3, 55, -1, - 28, -1, 5, -1, 5, 56, 82, 57, -1, 83, - -1, 82, 53, 83, -1, 84, -1, 84, 58, 84, - -1, 3, -1, 86, -1, 87, -1, 21, 23, 81, - -1, 21, 23, 81, 53, 25, 54, 3, 55, -1, - 21, 81, -1, 21, 81, 53, 25, 54, 3, 55, - -1, 21, 81, 53, 22, 54, 5, 55, -1, 21, - 81, 53, 22, 54, 5, 55, 25, 54, 3, 55, - -1, 21, 81, 53, 25, 54, 3, 55, 22, 54, - 5, 55, -1, 21, 24, 81, -1, 21, 24, 81, - 53, 22, 54, 5, 55, -1, 20, 12, 89, -1, - 20, 12, 89, 53, 22, 54, 5, 55, -1, 5, - -1, 6, -1, 26, 81, -1, 26, 81, 53, 27, - 54, 89, 55, -1, 26, 59, -1, 26, 59, 53, - 27, 54, 89, 55, -1, 31, 89, -1, 32, 5, - -1, 34, 12, 89, -1, 38, 37, 53, 22, 54, - 33, 55, -1, 38, 37, 53, 22, 54, 35, 55, - -1, 38, 37, 53, 22, 54, 21, 55, -1, 23, - 36, 6, 5, 53, 22, 54, 33, 55, -1, 23, - 36, 5, 5, 53, 22, 54, 35, 55, -1, 23, - 36, 5, 5, 53, 22, 54, 21, 55, -1, 97, - -1, 96, 97, -1, 96, 60, 97, -1, 98, 45, - 99, -1, 98, 45, 102, -1, 98, 45, 6, -1, - 6, -1, 5, -1, 61, 5, 61, -1, 39, 54, - 102, 53, 100, 55, -1, 39, 54, 102, 55, -1, - 101, -1, 107, -1, 100, 53, 107, -1, 100, 53, - 101, -1, 40, 62, 102, -1, 40, 62, 83, -1, - 103, -1, 104, -1, 47, 54, 104, 55, -1, 106, - -1, 63, 54, 105, 55, -1, 106, -1, 105, 53, - 106, -1, 4, -1, 41, -1, 5, 62, 110, -1, - 109, -1, 108, 53, 109, -1, 110, -1, 5, 62, - 110, -1, 111, -1, 47, 54, 111, 55, -1, 113, - -1, 38, 54, 108, 55, -1, 39, 54, 108, 55, - -1, 42, -1, 4, -1, 63, 54, 112, 55, -1, - 4, -1, 112, 53, 4, -1, 6, -1, 63, 54, - 114, 55, -1, 6, -1, 114, 53, 6, -1, 50, - -1, 49, 89, -1, 48, -1, 51, 89, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 168, 168, 172, 178, 179, 180, 181, 182, 183, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 210, 222, 227, 235, 241, 247, 259, 265, - 291, 305, 308, 312, 318, 327, 339, 343, 349, 356, - 360, 365, 369, 374, 377, 380, 386, 389, 394, 397, - 403, 406, 407, 410, 413, 416, 419, 422, 426, 430, - 436, 439, 445, 451, 463, 464, 467, 470, 473, 476, - 481, 484, 487, 494, 499, 504, 510, 517, 524, 534, - 537, 540, 545, 548, 553, 561, 562, 563, 568, 575, - 583, 584, 585, 586, 589, 592, 597, 598, 601, 604, - 608, 614, 615, 618, 619, 625, 628, 629, 632, 633, - 636, 637, 638, 639, 640, 641, 644, 645, 648, 649, - 652, 653, 656, 657, 662, 673, 681, 705 + 0, 170, 170, 174, 180, 181, 182, 183, 184, 185, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 213, 225, 230, 238, 244, 250, 262, + 268, 294, 308, 311, 315, 321, 330, 342, 346, 352, + 359, 363, 368, 372, 377, 380, 383, 389, 392, 397, + 400, 406, 409, 410, 413, 416, 419, 422, 425, 429, + 433, 439, 442, 448, 454, 466, 467, 470, 473, 476, + 479, 484, 487, 490, 497, 502, 507, 513, 520, 527, + 535, 543, 546, 549, 554, 557, 562, 570, 571, 572, + 577, 584, 592, 593, 594, 595, 598, 601, 606, 607, + 610, 613, 617, 623, 624, 627, 628, 634, 637, 638, + 641, 642, 645, 646, 647, 648, 649, 650, 653, 654, + 657, 658, 661, 662, 665, 666, 671, 682, 690, 714 }; #endif @@ -725,28 +658,28 @@ "COMPILE", "INITIALIZE", "ADAPT", "UPDATE", "BY", "MONITORS", "MONITOR", "TYPE", "SET", "CLEAR", "THIN", "CODA", "STEM", "EXIT", "NCHAINS", "CHAIN", "LOAD", "UNLOAD", "SAMPLER", "SAMPLERS", "RNGTOK", "FACTORY", - "FACTORIES", "LIST", "STRUCTURE", "DIM", "NA", "R_NULL", "DIMNAMES", - "ITER", "ARROW", "ENDDATA", "ASINTEGER", "DIRECTORY", "CD", "PWD", "RUN", - "ENDSCRIPT", "','", "'('", "')'", "'['", "']'", "':'", "'*'", "';'", - "'`'", "'='", "'c'", "$accept", "input", "line", "command", "model", - "data_in", "data_to", "data", "data_clear", "parameters_in", + "FACTORIES", "SEED", "LIST", "STRUCTURE", "DIM", "NA", "R_NULL", + "DIMNAMES", "ITER", "ARROW", "ENDDATA", "ASINTEGER", "DIRECTORY", "CD", + "PWD", "RUN", "ENDSCRIPT", "','", "'('", "')'", "'['", "']'", "':'", + "'*'", "';'", "'`'", "'='", "'c'", "$accept", "input", "line", "command", + "model", "data_in", "data_to", "data", "data_clear", "parameters_in", "parameters_to", "parameters", "compile", "initialize", "adapt", "update", "exit", "var", "range_list", "range_element", "index", "monitor", "monitor_set", "monitor_clear", "monitors_to", "file_name", "coda", "load", "unload", "samplers_to", "list_factories", "set_factory", - "r_assignment_list", "r_assignment", "r_name", "r_structure", + "set_seed", "r_assignment_list", "r_assignment", "r_name", "r_structure", "r_attribute_list", "r_dim", "r_collection", "r_integer_collection", "r_value_collection", "r_value_list", "r_value", "r_generic_attribute", "r_generic_list", "r_generic_list_element", "r_generic_vector", "r_numeric_vector", "r_double_list", "r_character_vector", "r_string_list", "get_working_dir", "set_working_dir", "read_dir", - "run_script", YY_NULL + "run_script", YY_NULLPTR }; #endif # ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ +/* YYTOKNUM[NUM] -- (External) token number corresponding to the + (internal) symbol number NUM (which must be that of a token). */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, @@ -754,276 +687,269 @@ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 44, 40, 41, 91, 93, 58, 42, - 59, 96, 61, 99 + 305, 306, 307, 308, 44, 40, 41, 91, 93, 58, + 42, 59, 96, 61, 99 }; # endif -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = -{ - 0, 64, 65, 65, 66, 66, 66, 66, 66, 66, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 68, 68, 69, 69, 70, 71, 72, 73, - 73, 73, 74, 74, 75, 75, 76, 76, 77, 78, - 78, 79, 79, 80, 81, 81, 82, 82, 83, 83, - 84, 85, 85, 86, 86, 86, 86, 86, 86, 86, - 87, 87, 88, 88, 89, 89, 90, 90, 90, 90, - 91, 92, 93, 94, 94, 94, 95, 95, 95, 96, - 96, 96, 97, 97, 97, 98, 98, 98, 99, 99, - 100, 100, 100, 100, 101, 101, 102, 102, 103, 104, - 104, 105, 105, 106, 106, 107, 108, 108, 109, 109, - 110, 110, 110, 110, 110, 110, 111, 111, 112, 112, - 113, 113, 114, 114, 115, 116, 117, 118 -}; +#define YYPACT_NINF -225 -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-225))) + +#define YYTABLE_NINF -1 + +#define yytable_value_is_error(Yytable_value) \ + 0 + + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const yytype_int16 yypact[] = { - 0, 2, 0, 2, 1, 2, 2, 1, 2, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 2, 3, 1, 3, 3, 2, 3, - 8, 1, 3, 8, 3, 3, 1, 6, 1, 2, - 7, 2, 7, 1, 1, 4, 1, 3, 1, 3, - 1, 1, 1, 3, 8, 2, 7, 7, 11, 11, - 3, 8, 3, 8, 1, 1, 2, 7, 2, 7, - 2, 2, 3, 7, 7, 7, 9, 9, 9, 1, - 2, 3, 3, 3, 3, 1, 1, 3, 6, 4, - 1, 1, 3, 3, 3, 3, 1, 1, 4, 1, - 4, 1, 3, 1, 1, 3, 1, 3, 1, 3, - 1, 4, 1, 4, 4, 1, 1, 4, 1, 3, - 1, 4, 1, 3, 1, 2, 1, 2 + -225, 90, -225, 18, 40, -225, 58, 120, 84, 64, + -40, -225, 106, 109, 107, 4, 56, 8, -225, 132, + 97, 115, 108, -225, 132, -225, 132, 122, -225, 150, + -225, -225, -225, 10, -225, -225, -225, 10, -225, -225, + -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, + -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, + 132, -225, 132, 132, -225, 132, 132, 132, 131, 105, + 110, 132, 104, 157, 157, 111, 151, 160, 112, 113, + -225, -225, -225, -225, 132, 114, -225, -225, -225, -225, + -225, -225, 164, 24, -225, 124, 27, -225, -225, -225, + -225, -225, 117, 118, 153, 155, 121, 173, 123, 125, + 12, 175, 176, -225, 156, 158, -225, 162, 116, -225, + 10, -225, 17, 128, 159, 183, 133, 135, 165, -225, + -23, -225, 134, 166, 170, 139, 140, 142, 143, 144, + 145, 146, -225, -225, -225, -225, 147, -225, 148, 149, + -225, -225, -225, -225, -225, 168, 152, 154, 202, 203, + 161, 173, -225, 173, 163, 167, 204, 205, 189, 190, + 132, 132, 93, 16, 20, 21, 169, 210, -225, 171, + 172, 209, -225, -225, 212, 214, 174, 177, 179, 180, + 181, 182, 184, 185, 186, 61, 187, 69, -225, 217, + 188, -225, -225, 191, 192, 193, 196, 195, 66, 198, + -225, -225, -225, -225, -225, -1, -225, -225, 21, -225, + 194, -225, -225, -225, -225, 197, 199, 200, 201, 206, + 207, 208, 79, -225, -225, -225, -225, 220, 221, -225, + -225, -225, 13, 2, -1, -225, 211, 213, -225, -225, + 218, 219, -225, 222, 223, -225, -225, -225, -225, -225, + -225, -225, -225, -225, 6, 6, 3, 130, 216, 94, + -225, -225, 95, 225, 226, -225, -225, 98, 99, 13, + 6, -225, -225, 228, -225, 232, -225, 233, -225, -225, + -225, -225, -225 }; -/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ static const yytype_uint8 yydefact[] = { 2, 0, 1, 0, 0, 4, 0, 0, 0, 0, - 46, 48, 0, 0, 0, 0, 0, 0, 53, 0, - 0, 0, 0, 136, 0, 134, 0, 0, 3, 0, - 10, 11, 12, 35, 13, 14, 15, 41, 16, 17, - 18, 19, 25, 20, 61, 62, 21, 22, 23, 24, - 29, 30, 31, 27, 28, 26, 7, 6, 9, 0, - 33, 0, 0, 38, 0, 0, 0, 0, 49, 51, - 0, 54, 0, 0, 65, 0, 78, 76, 74, 75, - 80, 81, 0, 0, 135, 137, 8, 5, 96, 95, - 0, 0, 89, 0, 0, 32, 37, 36, 45, 44, - 42, 0, 0, 0, 72, 0, 63, 70, 0, 0, - 0, 0, 0, 82, 0, 0, 34, 0, 90, 0, - 39, 0, 0, 0, 0, 0, 60, 0, 56, 58, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, - 91, 113, 94, 0, 114, 0, 0, 92, 93, 106, - 107, 109, 0, 0, 0, 0, 0, 0, 0, 55, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 47, 0, 0, 0, 57, - 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 111, 0, 0, 50, 52, - 0, 0, 0, 67, 66, 0, 0, 79, 77, 85, - 83, 84, 0, 99, 108, 0, 110, 0, 43, 73, - 64, 71, 0, 0, 0, 0, 0, 0, 0, 0, - 100, 101, 112, 40, 0, 0, 88, 87, 86, 0, - 0, 0, 98, 0, 0, 126, 130, 0, 0, 125, - 0, 0, 115, 120, 122, 105, 104, 103, 102, 68, - 69, 0, 0, 0, 0, 0, 0, 116, 118, 0, - 0, 0, 128, 132, 0, 0, 0, 0, 123, 124, - 0, 121, 0, 127, 0, 131, 119, 117, 129, 133 + 47, 49, 0, 0, 0, 0, 0, 0, 54, 0, + 0, 0, 0, 138, 0, 136, 0, 0, 3, 0, + 10, 11, 12, 36, 13, 14, 15, 42, 16, 17, + 18, 19, 25, 20, 62, 63, 21, 22, 23, 24, + 29, 30, 31, 32, 27, 28, 26, 7, 6, 9, + 0, 34, 0, 0, 39, 0, 0, 0, 0, 50, + 52, 0, 55, 0, 0, 66, 0, 0, 79, 77, + 75, 76, 81, 82, 0, 0, 137, 139, 8, 5, + 98, 97, 0, 0, 91, 0, 0, 33, 38, 37, + 46, 45, 43, 0, 0, 0, 73, 0, 64, 71, + 0, 0, 0, 90, 0, 0, 83, 0, 0, 35, + 0, 92, 0, 40, 0, 0, 0, 0, 0, 61, + 0, 57, 59, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 99, 93, 115, 96, 0, 116, 0, 0, + 94, 95, 108, 109, 111, 0, 0, 0, 0, 0, + 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, + 0, 0, 58, 60, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 113, 0, + 0, 51, 53, 0, 0, 0, 68, 67, 0, 0, + 80, 78, 86, 84, 85, 0, 101, 110, 0, 112, + 0, 44, 74, 65, 72, 0, 0, 0, 0, 0, + 0, 0, 0, 102, 103, 114, 41, 0, 0, 89, + 88, 87, 0, 0, 0, 100, 0, 0, 128, 132, + 0, 0, 127, 0, 0, 117, 122, 124, 107, 106, + 105, 104, 69, 70, 0, 0, 0, 0, 0, 0, + 118, 120, 0, 0, 0, 130, 134, 0, 0, 0, + 0, 125, 126, 0, 123, 0, 129, 0, 133, 121, + 119, 131, 135 +}; + + /* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, + -225, -225, -225, -225, -225, -225, -225, 5, -225, -160, + 62, -225, -225, -225, -225, -24, -225, -225, -225, -225, + -225, -225, -225, 224, 0, -225, -225, -225, -15, -170, + -225, 71, -225, -167, 7, -19, -27, -224, -11, -225, + -225, -225, -225, -225, -225, -225 }; -/* YYDEFGOTO[NTERM-NUM]. */ + /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 1, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 74, 127, 128, - 129, 43, 44, 45, 46, 80, 47, 48, 49, 50, - 51, 52, 91, 92, 93, 147, 229, 230, 148, 149, - 150, 194, 151, 231, 266, 267, 268, 253, 274, 254, - 275, 53, 54, 55, 56 + 36, 37, 38, 39, 40, 41, 42, 75, 130, 131, + 132, 43, 44, 45, 46, 82, 47, 48, 49, 50, + 51, 52, 53, 93, 94, 95, 150, 232, 233, 151, + 152, 153, 197, 154, 234, 269, 270, 271, 256, 277, + 257, 278, 54, 55, 56, 57 }; -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -217 -static const yytype_int16 yypact[] = + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ +static const yytype_uint16 yytable[] = { - -217, 86, -217, 20, 25, -217, 87, 117, 50, -3, - -36, -217, 61, 113, 60, 8, 54, 9, -217, 134, - 137, 85, 108, -217, 134, -217, 134, 148, -217, 150, - -217, -217, -217, 19, -217, -217, -217, 19, -217, -217, - -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, - -217, -217, -217, -217, -217, -217, -217, -217, -217, 134, - -217, 134, 134, -217, 134, 134, 134, 128, 106, 107, - 134, 105, 157, 157, 110, 149, 111, 112, -217, -217, - -217, -217, 134, 114, -217, -217, -217, -217, -217, -217, - 161, 21, -217, 123, 24, -217, -217, -217, -217, -217, - 116, 118, 151, 152, 120, 171, 122, 124, 14, 173, - 174, 153, 154, -217, 160, 115, -217, 19, -217, 16, - 130, 155, 181, 132, 133, 166, -217, 69, -217, 131, - 165, 169, 138, 139, 141, 142, 143, 144, 145, -217, - -217, -217, -217, 146, -217, 147, 156, -217, -217, -217, - -217, -217, 172, 158, 159, 193, 200, 162, 171, -217, - 171, 163, 164, 199, 202, 184, 185, 134, 134, 92, - 15, 11, 30, 167, 205, -217, 168, 170, 204, -217, - -217, 208, 210, 175, 176, 178, 179, 180, 182, 183, - 186, 187, 55, 188, 66, -217, 216, 189, -217, -217, - 190, 191, 192, 195, 206, 70, 194, -217, -217, -217, - -217, -217, 83, -217, -217, 30, -217, 196, -217, -217, - -217, -217, 198, 201, 203, 207, 209, 177, 197, 77, - -217, -217, -217, -217, 219, 221, -217, -217, -217, 12, - 2, 83, -217, 211, 212, -217, -217, 214, 215, -217, - 217, 218, -217, -217, -217, -217, -217, -217, -217, -217, - -217, 6, 6, 3, 127, 213, 93, -217, -217, 94, - 220, 222, -217, -217, 97, 98, 12, 6, -217, -217, - 225, -217, 230, -217, 234, -217, -217, -217, -217, -217 + 86, 182, 87, 195, 230, 129, 144, 248, 198, 72, + 248, 268, 249, 72, 68, 90, 91, 248, 255, 249, + 144, 144, 79, 145, 144, 144, 58, 73, 74, 90, + 91, 161, 90, 91, 135, 162, 97, 136, 98, 99, + 231, 100, 101, 102, 147, 250, 251, 106, 59, 252, + 148, 235, 250, 251, 253, 289, 252, 146, 147, 147, + 116, 253, 147, 147, 148, 148, 149, 273, 78, 60, + 254, 119, 92, 259, 123, 66, 67, 254, 108, 109, + 149, 149, 61, 258, 149, 120, 92, 227, 120, 92, + 2, 3, 76, 121, 77, 65, 121, 4, 5, 6, + 7, 228, 83, 8, 9, 10, 11, 12, 13, 69, + 14, 15, 70, 16, 192, 215, 17, 216, 18, 71, + 143, 19, 20, 218, 21, 219, 193, 84, 194, 22, + 88, 62, 63, 244, 275, 245, 276, 80, 81, 23, + 24, 25, 26, 27, 64, 85, 190, 191, 280, 280, + 281, 282, 285, 287, 286, 288, 111, 112, 89, 104, + 103, 107, 72, 113, 105, 110, 114, 115, 117, 118, + 122, 124, 126, 125, 127, 128, 129, 133, 142, 134, + 137, 138, 155, 139, 141, 140, 157, 160, 158, 156, + 159, 164, 165, 163, 166, 167, 168, 169, 176, 170, + 171, 172, 173, 174, 175, 179, 180, 177, 187, 186, + 178, 188, 189, 200, 203, 204, 181, 226, 184, 205, + 220, 225, 185, 246, 199, 183, 247, 201, 202, 260, + 206, 229, 275, 207, 208, 209, 291, 210, 211, 292, + 212, 213, 214, 217, 221, 196, 272, 222, 223, 224, + 236, 261, 237, 290, 238, 274, 239, 240, 0, 0, + 0, 96, 241, 0, 0, 0, 0, 262, 0, 263, + 242, 243, 0, 264, 265, 0, 0, 266, 267, 279, + 283, 0, 284 }; -/* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = +static const yytype_int16 yycheck[] = { - -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, - -217, -217, -217, -217, -217, -217, -217, 4, -217, -157, - 53, -217, -217, -217, -217, -24, -217, -217, -217, -217, - -217, -217, 223, -2, -217, -217, -217, -17, -167, -217, - 65, -217, -168, 7, -13, -27, -216, -10, -217, -217, - -217, -217, -217, -217, -217 + 24, 161, 26, 173, 5, 3, 4, 4, 175, 5, + 4, 5, 6, 5, 54, 5, 6, 4, 242, 6, + 4, 4, 17, 6, 4, 4, 8, 23, 24, 5, + 6, 54, 5, 6, 22, 58, 60, 25, 62, 63, + 41, 65, 66, 67, 42, 39, 40, 71, 8, 43, + 48, 218, 39, 40, 48, 279, 43, 40, 42, 42, + 84, 48, 42, 42, 48, 48, 64, 64, 60, 11, + 64, 47, 62, 243, 47, 11, 12, 64, 73, 74, + 64, 64, 24, 243, 64, 61, 62, 21, 61, 62, + 0, 1, 36, 93, 38, 11, 96, 7, 8, 9, + 10, 35, 5, 13, 14, 15, 16, 17, 18, 3, + 20, 21, 3, 23, 21, 54, 26, 56, 28, 12, + 120, 31, 32, 54, 34, 56, 33, 12, 35, 39, + 8, 11, 12, 54, 4, 56, 6, 5, 6, 49, + 50, 51, 52, 53, 24, 37, 170, 171, 54, 54, + 56, 56, 54, 54, 56, 56, 5, 6, 8, 54, + 29, 57, 5, 3, 54, 54, 54, 54, 54, 5, + 46, 54, 19, 55, 19, 54, 3, 54, 62, 54, + 5, 5, 54, 27, 22, 27, 3, 22, 55, 30, + 55, 25, 22, 59, 55, 55, 54, 54, 30, 55, + 55, 55, 55, 55, 55, 3, 3, 55, 3, 5, + 56, 22, 22, 3, 5, 3, 55, 22, 55, 5, + 3, 25, 55, 3, 55, 163, 5, 56, 56, 244, + 56, 33, 4, 56, 55, 55, 4, 56, 56, 6, + 56, 56, 56, 56, 56, 174, 265, 56, 56, 56, + 56, 244, 55, 280, 55, 266, 56, 56, -1, -1, + -1, 37, 56, -1, -1, -1, -1, 56, -1, 56, + 63, 63, -1, 55, 55, -1, -1, 55, 55, 63, + 55, -1, 56 }; -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -1 -static const yytype_uint16 yytable[] = + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint8 yystos[] = { - 84, 179, 85, 192, 195, 126, 141, 245, 65, 66, - 245, 265, 246, 71, 71, 141, 245, 67, 246, 141, - 141, 77, 142, 252, 88, 89, 88, 89, 57, 88, - 89, 72, 73, 58, 141, 95, 132, 96, 97, 133, - 98, 99, 100, 144, 247, 248, 104, 232, 249, 145, - 247, 248, 144, 250, 249, 143, 144, 144, 113, 250, - 286, 64, 145, 145, 68, 146, 270, 116, 76, 251, - 120, 144, 70, 256, 146, 251, 106, 107, 146, 146, - 90, 117, 90, 255, 117, 90, 2, 3, 227, 118, - 75, 224, 118, 4, 5, 6, 7, 82, 59, 8, - 9, 10, 11, 12, 13, 225, 14, 15, 212, 16, - 213, 60, 17, 189, 18, 140, 69, 19, 20, 215, - 21, 216, 158, 228, 22, 190, 159, 191, 61, 62, - 241, 272, 242, 273, 23, 24, 25, 26, 27, 78, - 79, 63, 81, 187, 188, 83, 277, 277, 278, 279, - 282, 284, 283, 285, 109, 110, 86, 101, 87, 102, - 103, 105, 71, 108, 111, 112, 115, 114, 119, 121, - 123, 124, 122, 125, 126, 130, 139, 131, 134, 135, - 136, 137, 138, 152, 154, 153, 155, 156, 157, 160, - 161, 162, 163, 164, 165, 166, 176, 167, 168, 169, - 170, 171, 173, 177, 183, 184, 185, 186, 197, 200, - 172, 201, 174, 180, 175, 202, 178, 181, 182, 217, - 222, 196, 243, 198, 257, 199, 244, 226, 223, 272, - 203, 204, 205, 206, 288, 207, 193, 208, 209, 239, - 289, 210, 211, 214, 218, 219, 220, 221, 258, 269, - 287, 233, 234, 271, 0, 235, 0, 0, 236, 240, - 94, 0, 237, 0, 238, 0, 259, 260, 261, 262, - 0, 263, 264, 0, 280, 276, 0, 281 + 0, 66, 0, 1, 7, 8, 9, 10, 13, 14, + 15, 16, 17, 18, 20, 21, 23, 26, 28, 31, + 32, 34, 39, 49, 50, 51, 52, 53, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 86, 87, 88, 89, 91, 92, 93, + 94, 95, 96, 97, 117, 118, 119, 120, 8, 8, + 11, 24, 11, 12, 24, 11, 11, 12, 54, 3, + 3, 12, 5, 23, 24, 82, 36, 38, 60, 82, + 5, 6, 90, 5, 12, 37, 90, 90, 8, 8, + 5, 6, 62, 98, 99, 100, 98, 90, 90, 90, + 90, 90, 90, 29, 54, 54, 90, 57, 82, 82, + 54, 5, 6, 3, 54, 54, 90, 54, 5, 47, + 61, 99, 46, 47, 54, 55, 19, 19, 54, 3, + 83, 84, 85, 54, 54, 22, 25, 5, 5, 27, + 27, 22, 62, 99, 4, 6, 40, 42, 48, 64, + 101, 104, 105, 106, 108, 54, 30, 3, 55, 55, + 22, 54, 58, 59, 25, 22, 55, 55, 54, 54, + 55, 55, 55, 55, 55, 55, 30, 55, 56, 3, + 3, 55, 84, 85, 55, 55, 5, 3, 22, 22, + 90, 90, 21, 33, 35, 104, 106, 107, 108, 55, + 3, 56, 56, 5, 3, 5, 56, 56, 55, 55, + 56, 56, 56, 56, 56, 54, 56, 56, 54, 56, + 3, 56, 56, 56, 56, 25, 22, 21, 35, 33, + 5, 41, 102, 103, 109, 108, 56, 55, 55, 56, + 56, 56, 63, 63, 54, 56, 3, 5, 4, 6, + 39, 40, 43, 48, 64, 112, 113, 115, 84, 104, + 103, 109, 56, 56, 55, 55, 55, 55, 5, 110, + 111, 112, 110, 64, 113, 4, 6, 114, 116, 63, + 54, 56, 56, 55, 56, 54, 56, 54, 56, 112, + 111, 4, 6 }; -#define yypact_value_is_default(yystate) \ - ((yystate) == (-217)) - -#define yytable_value_is_error(yytable_value) \ - YYID (0) - -static const yytype_int16 yycheck[] = + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint8 yyr1[] = { - 24, 158, 26, 170, 172, 3, 4, 4, 11, 12, - 4, 5, 6, 5, 5, 4, 4, 53, 6, 4, - 4, 17, 6, 239, 5, 6, 5, 6, 8, 5, - 6, 23, 24, 8, 4, 59, 22, 61, 62, 25, - 64, 65, 66, 41, 38, 39, 70, 215, 42, 47, - 38, 39, 41, 47, 42, 39, 41, 41, 82, 47, - 276, 11, 47, 47, 3, 63, 63, 46, 59, 63, - 46, 41, 12, 240, 63, 63, 72, 73, 63, 63, - 61, 60, 61, 240, 60, 61, 0, 1, 5, 91, - 36, 21, 94, 7, 8, 9, 10, 12, 11, 13, - 14, 15, 16, 17, 18, 35, 20, 21, 53, 23, - 55, 24, 26, 21, 28, 117, 3, 31, 32, 53, - 34, 55, 53, 40, 38, 33, 57, 35, 11, 12, - 53, 4, 55, 6, 48, 49, 50, 51, 52, 5, - 6, 24, 5, 167, 168, 37, 53, 53, 55, 55, - 53, 53, 55, 55, 5, 6, 8, 29, 8, 53, - 53, 56, 5, 53, 53, 53, 5, 53, 45, 53, - 19, 19, 54, 53, 3, 53, 61, 53, 5, 5, - 27, 27, 22, 53, 3, 30, 54, 54, 22, 58, - 25, 22, 54, 54, 53, 53, 3, 54, 54, 54, - 54, 54, 30, 3, 5, 3, 22, 22, 3, 5, - 54, 3, 54, 160, 55, 5, 54, 54, 54, 3, - 25, 54, 3, 55, 241, 55, 5, 33, 22, 4, - 55, 55, 54, 54, 4, 55, 171, 55, 55, 62, - 6, 55, 55, 55, 55, 55, 55, 55, 241, 262, - 277, 55, 54, 263, -1, 54, -1, -1, 55, 62, - 37, -1, 55, -1, 55, -1, 55, 55, 54, 54, - -1, 54, 54, -1, 54, 62, -1, 55 + 0, 65, 66, 66, 67, 67, 67, 67, 67, 67, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 69, 69, 70, 70, 71, 72, 73, + 74, 74, 74, 75, 75, 76, 76, 77, 77, 78, + 79, 79, 80, 80, 81, 82, 82, 83, 83, 84, + 84, 85, 86, 86, 87, 87, 87, 87, 87, 87, + 87, 88, 88, 89, 89, 90, 90, 91, 91, 91, + 91, 92, 93, 94, 95, 95, 95, 96, 96, 96, + 97, 98, 98, 98, 99, 99, 99, 100, 100, 100, + 101, 101, 102, 102, 102, 102, 103, 103, 104, 104, + 105, 106, 106, 107, 107, 108, 108, 109, 110, 110, + 111, 111, 112, 112, 112, 112, 112, 112, 113, 113, + 114, 114, 115, 115, 116, 116, 117, 118, 119, 120 }; -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_uint8 yystos[] = + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = { - 0, 65, 0, 1, 7, 8, 9, 10, 13, 14, - 15, 16, 17, 18, 20, 21, 23, 26, 28, 31, - 32, 34, 38, 48, 49, 50, 51, 52, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 85, 86, 87, 88, 90, 91, 92, - 93, 94, 95, 115, 116, 117, 118, 8, 8, 11, - 24, 11, 12, 24, 11, 11, 12, 53, 3, 3, - 12, 5, 23, 24, 81, 36, 59, 81, 5, 6, - 89, 5, 12, 37, 89, 89, 8, 8, 5, 6, - 61, 96, 97, 98, 96, 89, 89, 89, 89, 89, - 89, 29, 53, 53, 89, 56, 81, 81, 53, 5, - 6, 53, 53, 89, 53, 5, 46, 60, 97, 45, - 46, 53, 54, 19, 19, 53, 3, 82, 83, 84, - 53, 53, 22, 25, 5, 5, 27, 27, 22, 61, - 97, 4, 6, 39, 41, 47, 63, 99, 102, 103, - 104, 106, 53, 30, 3, 54, 54, 22, 53, 57, - 58, 25, 22, 54, 54, 53, 53, 54, 54, 54, - 54, 54, 54, 30, 54, 55, 3, 3, 54, 83, - 84, 54, 54, 5, 3, 22, 22, 89, 89, 21, - 33, 35, 102, 104, 105, 106, 54, 3, 55, 55, - 5, 3, 5, 55, 55, 54, 54, 55, 55, 55, - 55, 55, 53, 55, 55, 53, 55, 3, 55, 55, - 55, 55, 25, 22, 21, 35, 33, 5, 40, 100, - 101, 107, 106, 55, 54, 54, 55, 55, 55, 62, - 62, 53, 55, 3, 5, 4, 6, 38, 39, 42, - 47, 63, 110, 111, 113, 83, 102, 101, 107, 55, - 55, 54, 54, 54, 54, 5, 108, 109, 110, 108, - 63, 111, 4, 6, 112, 114, 62, 53, 55, 55, - 54, 55, 53, 55, 53, 55, 110, 109, 4, 6 + 0, 2, 0, 2, 1, 2, 2, 1, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 2, 3, 1, 3, 3, 2, + 3, 8, 1, 3, 8, 3, 3, 1, 6, 1, + 2, 7, 2, 7, 1, 1, 4, 1, 3, 1, + 3, 1, 1, 1, 3, 8, 2, 7, 7, 11, + 11, 3, 8, 3, 8, 1, 1, 2, 7, 2, + 7, 2, 2, 3, 7, 7, 7, 9, 9, 9, + 3, 1, 2, 3, 3, 3, 3, 1, 1, 3, + 6, 4, 1, 1, 3, 3, 3, 3, 1, 1, + 4, 1, 4, 1, 3, 1, 1, 3, 1, 3, + 1, 3, 1, 4, 1, 4, 4, 1, 1, 4, + 1, 3, 1, 4, 1, 3, 1, 2, 1, 2 }; -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab - - -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. However, - YYFAIL appears to be in use. Nevertheless, it is formally deprecated - in Bison 2.4.2's NEWS entry, where a plan to phase it out is - discussed. */ - -#define YYFAIL goto yyerrlab -#if defined YYFAIL - /* This is here to suppress warnings from the GCC cpp's - -Wunused-macros. Normally we don't worry about that warning, but - some users do, and we want to make it easy for users to remove - YYFAIL uses, which will produce warnings from Bison 2.5. */ -#endif + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + #define YYRECOVERING() (!!yyerrstatus) @@ -1040,99 +966,54 @@ else \ { \ yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (YYID (0)) + YYERROR; \ + } \ +while (0) +/* Error token number */ +#define YYTERROR 1 +#define YYERRCODE 256 -#define YYTERROR 1 -#define YYERRCODE 256 -/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. - If N is 0, then set CURRENT to the empty location which ends - the previous symbol: RHS[0] (always defined). */ -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (YYID (N)) \ - { \ - (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ - (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ - (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ - (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ - } \ - else \ - { \ - (Current).first_line = (Current).last_line = \ - YYRHSLOC (Rhs, 0).last_line; \ - (Current).first_column = (Current).last_column = \ - YYRHSLOC (Rhs, 0).last_column; \ - } \ - while (YYID (0)) -#endif - -#define YYRHSLOC(Rhs, K) ((Rhs)[K]) +/* Enable debugging if requested. */ +#if YYDEBUG +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) /* This macro is provided for backward compatibility. */ - #ifndef YY_LOCATION_PRINT # define YY_LOCATION_PRINT(File, Loc) ((void) 0) #endif -/* YYLEX -- calling `yylex' with the right arguments. */ - -#ifdef YYLEX_PARAM -# define YYLEX yylex (YYLEX_PARAM) -#else -# define YYLEX yylex () -#endif - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (YYID (0)) - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (YYID (0)) +/*----------------------------------------. +| Print this symbol's value on YYOUTPUT. | +`----------------------------------------*/ -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ - -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_value_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif { FILE *yyo = yyoutput; YYUSE (yyo); @@ -1141,14 +1022,8 @@ # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# else - YYUSE (yyoutput); # endif - switch (yytype) - { - default: - break; - } + YYUSE (yytype); } @@ -1156,22 +1031,11 @@ | Print this symbol on YYOUTPUT. | `--------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif { - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + YYFPRINTF (yyoutput, "%s %s (", + yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); yy_symbol_value_print (yyoutput, yytype, yyvaluep); YYFPRINTF (yyoutput, ")"); @@ -1182,16 +1046,8 @@ | TOP (included). | `------------------------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) -#else -static void -yy_stack_print (yybottom, yytop) - yytype_int16 *yybottom; - yytype_int16 *yytop; -#endif { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -1202,49 +1058,42 @@ YYFPRINTF (stderr, "\n"); } -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (YYID (0)) +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_reduce_print (YYSTYPE *yyvsp, int yyrule) -#else static void -yy_reduce_print (yyvsp, yyrule) - YYSTYPE *yyvsp; - int yyrule; -#endif +yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) { + unsigned long int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); + yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - ); + yy_symbol_print (stderr, + yystos[yyssp[yyi + 1 - yynrhs]], + &(yyvsp[(yyi + 1) - (yynrhs)]) + ); YYFPRINTF (stderr, "\n"); } } -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyvsp, Rule); \ -} while (YYID (0)) +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, Rule); \ +} while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ @@ -1258,7 +1107,7 @@ /* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH +#ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif @@ -1281,15 +1130,8 @@ # define yystrlen strlen # else /* Return the length of YYSTR. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static YYSIZE_T yystrlen (const char *yystr) -#else -static YYSIZE_T -yystrlen (yystr) - const char *yystr; -#endif { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) @@ -1305,16 +1147,8 @@ # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static char * yystpcpy (char *yydest, const char *yysrc) -#else -static char * -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -#endif { char *yyd = yydest; const char *yys = yysrc; @@ -1344,27 +1178,27 @@ char const *yyp = yystr; for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } do_not_strip_quotes: ; } @@ -1387,12 +1221,11 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken) { - YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); + YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ - const char *yyformat = YY_NULL; + const char *yyformat = YY_NULLPTR; /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Number of reported tokens (one for the "unexpected", one per @@ -1400,10 +1233,6 @@ int yycount = 0; /* There are many possibilities here to consider: - - Assume YYFAIL is not used. It's too flawed to consider. See - - for details. YYERROR is fine as it does not invoke this - function. - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action is an error action. In that case, don't check for expected @@ -1452,11 +1281,13 @@ break; } yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); - if (! (yysize <= yysize1 - && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) - return 2; - yysize = yysize1; + { + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + if (! (yysize <= yysize1 + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } } } } @@ -1476,10 +1307,12 @@ # undef YYCASE_ } - yysize1 = yysize + yystrlen (yyformat); - if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) - return 2; - yysize = yysize1; + { + YYSIZE_T yysize1 = yysize + yystrlen (yyformat); + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } if (*yymsg_alloc < yysize) { @@ -1516,31 +1349,17 @@ | Release the memory associated to this symbol. | `-----------------------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) -#else -static void -yydestruct (yymsg, yytype, yyvaluep) - const char *yymsg; - int yytype; - YYSTYPE *yyvaluep; -#endif { YYUSE (yyvaluep); - if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - switch (yytype) - { - - default: - break; - } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -1551,7 +1370,6 @@ /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; - /* Number of syntax errors so far. */ int yynerrs; @@ -1560,35 +1378,16 @@ | yyparse. | `----------*/ -#ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void *YYPARSE_PARAM) -#else -int -yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -#endif -#else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) int yyparse (void) -#else -int -yyparse () - -#endif -#endif { int yystate; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* The stacks and their tools: - `yyss': related to states. - `yyvs': related to semantic values. + 'yyss': related to states. + 'yyvs': related to semantic values. Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ @@ -1608,7 +1407,7 @@ int yyn; int yyresult; /* Lookahead token as an internal (translated) token number. */ - int yytoken; + int yytoken = 0; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; @@ -1626,9 +1425,8 @@ Keep to zero when no symbol should be popped. */ int yylen = 0; - yytoken = 0; - yyss = yyssa; - yyvs = yyvsa; + yyssp = yyss = yyssa; + yyvsp = yyvs = yyvsa; yystacksize = YYINITDEPTH; YYDPRINTF ((stderr, "Starting parse\n")); @@ -1637,13 +1435,6 @@ yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - yyssp = yyss; - yyvsp = yyvs; goto yysetstate; /*------------------------------------------------------------. @@ -1664,23 +1455,23 @@ #ifdef yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); - yyss = yyss1; - yyvs = yyvs1; + yyss = yyss1; + yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE @@ -1688,22 +1479,22 @@ # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; + yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ @@ -1712,10 +1503,10 @@ yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) - YYABORT; + YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); @@ -1744,7 +1535,7 @@ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; + yychar = yylex (); } if (yychar <= YYEOF) @@ -1784,7 +1575,9 @@ yychar = YYEMPTY; yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END goto yynewstate; @@ -1807,7 +1600,7 @@ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. + '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison @@ -1821,147 +1614,146 @@ switch (yyn) { case 2: -/* Line 1787 of yacc.c */ -#line 168 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 170 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { if (interactive && command_buffer_count == 0) std::cout << ". " << std::flush; } +#line 1623 "parser.cc" /* yacc.c:1646 */ break; case 3: -/* Line 1787 of yacc.c */ -#line 172 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 174 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { if (interactive && command_buffer_count == 0) std::cout << ". " << std::flush; } +#line 1632 "parser.cc" /* yacc.c:1646 */ break; case 4: -/* Line 1787 of yacc.c */ -#line 178 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 180 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {} +#line 1638 "parser.cc" /* yacc.c:1646 */ break; case 5: -/* Line 1787 of yacc.c */ -#line 179 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 181 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {} +#line 1644 "parser.cc" /* yacc.c:1646 */ break; case 6: -/* Line 1787 of yacc.c */ -#line 180 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 182 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {if(interactive) yyerrok; else exit(1); } +#line 1650 "parser.cc" /* yacc.c:1646 */ break; case 7: -/* Line 1787 of yacc.c */ -#line 181 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 183 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {} +#line 1656 "parser.cc" /* yacc.c:1646 */ break; case 8: -/* Line 1787 of yacc.c */ -#line 182 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 184 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {} +#line 1662 "parser.cc" /* yacc.c:1646 */ break; case 9: -/* Line 1787 of yacc.c */ -#line 183 "../../../../../jags-3_patched/src/terminal/parser.yy" - { doSystem((yyvsp[(1) - (2)].stringptr)); delete (yyvsp[(1) - (2)].stringptr);} +#line 185 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + { doSystem((yyvsp[-1].stringptr)); delete (yyvsp[-1].stringptr);} +#line 1668 "parser.cc" /* yacc.c:1646 */ break; - case 32: -/* Line 1787 of yacc.c */ -#line 210 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 33: +#line 213 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - std::FILE *file = std::fopen(ExpandFileName(((yyvsp[(3) - (3)].stringptr))->c_str()).c_str(), "r"); + std::FILE *file = std::fopen(ExpandFileName(((yyvsp[0].stringptr))->c_str()).c_str(), "r"); if (!file) { - std::cerr << "Failed to open file " << *((yyvsp[(3) - (3)].stringptr)) << std::endl; + std::cerr << "Failed to open file " << *((yyvsp[0].stringptr)) << std::endl; if (!interactive) exit(1); } else { Jtry(console->checkModel(file)); std::fclose(file); } - delete (yyvsp[(3) - (3)].stringptr); + delete (yyvsp[0].stringptr); } +#line 1685 "parser.cc" /* yacc.c:1646 */ break; - case 33: -/* Line 1787 of yacc.c */ -#line 222 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 34: +#line 225 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { console->clearModel(); } +#line 1693 "parser.cc" /* yacc.c:1646 */ break; - case 34: -/* Line 1787 of yacc.c */ -#line 227 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 35: +#line 230 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { std::string rngname; - readRData((yyvsp[(2) - (3)].pvec), _data_table, rngname); + readRData((yyvsp[-1].pvec), _data_table, rngname); if (rngname.size() != 0) { std::cerr << "WARNING: .RNG.name assignment ignored" << std::endl; } - delete_pvec((yyvsp[(2) - (3)].pvec)); + delete_pvec((yyvsp[-1].pvec)); } +#line 1706 "parser.cc" /* yacc.c:1646 */ break; - case 35: -/* Line 1787 of yacc.c */ -#line 235 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 36: +#line 238 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { // Failed to open the data file if (!interactive) exit(1); } +#line 1715 "parser.cc" /* yacc.c:1646 */ break; - case 36: -/* Line 1787 of yacc.c */ -#line 241 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 37: +#line 244 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - doDump(*(yyvsp[(3) - (3)].stringptr), DUMP_DATA, 1); - delete (yyvsp[(3) - (3)].stringptr); + doDump(*(yyvsp[0].stringptr), jags::DUMP_DATA, 1); + delete (yyvsp[0].stringptr); } +#line 1724 "parser.cc" /* yacc.c:1646 */ break; - case 37: -/* Line 1787 of yacc.c */ -#line 247 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 38: +#line 250 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - if(open_data_buffer((yyvsp[(3) - (3)].stringptr))) { - std::cout << "Reading data file " << *(yyvsp[(3) - (3)].stringptr) << std::endl; + if(open_data_buffer((yyvsp[0].stringptr))) { + std::cout << "Reading data file " << *(yyvsp[0].stringptr) << std::endl; } else { - std::cerr << "Unable to open file " << *(yyvsp[(3) - (3)].stringptr) << std::endl << std::flush; + std::cerr << "Unable to open file " << *(yyvsp[0].stringptr) << std::endl << std::flush; if (!interactive) exit(1); } - delete (yyvsp[(3) - (3)].stringptr); + delete (yyvsp[0].stringptr); } +#line 1739 "parser.cc" /* yacc.c:1646 */ break; - case 38: -/* Line 1787 of yacc.c */ -#line 259 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 39: +#line 262 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { std::cout << "Clearing data table " << std::endl; _data_table.clear(); } +#line 1748 "parser.cc" /* yacc.c:1646 */ break; - case 39: -/* Line 1787 of yacc.c */ -#line 266 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 40: +#line 269 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - std::map parameter_table; + std::map parameter_table; std::string rngname; - readRData((yyvsp[(2) - (3)].pvec), parameter_table, rngname); - delete_pvec((yyvsp[(2) - (3)].pvec)); + readRData((yyvsp[-1].pvec), parameter_table, rngname); + delete_pvec((yyvsp[-1].pvec)); /* Set all chains to the same state. If the user sets the RNG state in addition to the parameter values then all chains will be identical! @@ -1982,686 +1774,694 @@ print_unused_variables(parameter_table, false); } +#line 1778 "parser.cc" /* yacc.c:1646 */ break; - case 40: -/* Line 1787 of yacc.c */ -#line 292 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 41: +#line 295 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - std::map parameter_table; + std::map parameter_table; std::string rngname; - readRData((yyvsp[(2) - (8)].pvec), parameter_table, rngname); - delete (yyvsp[(2) - (8)].pvec); + readRData((yyvsp[-6].pvec), parameter_table, rngname); + delete (yyvsp[-6].pvec); /* We have to set the name first, because the state or seed might be embedded in the parameter_table */ if (rngname.size() != 0) { - Jtry(console->setRNGname(rngname, (yyvsp[(7) - (8)].intval))); + Jtry(console->setRNGname(rngname, (yyvsp[-1].intval))); } - Jtry(console->setParameters(parameter_table, (yyvsp[(7) - (8)].intval))); + Jtry(console->setParameters(parameter_table, (yyvsp[-1].intval))); print_unused_variables(parameter_table, false); } +#line 1796 "parser.cc" /* yacc.c:1646 */ break; - case 41: -/* Line 1787 of yacc.c */ -#line 305 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 42: +#line 308 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {} +#line 1802 "parser.cc" /* yacc.c:1646 */ break; - case 42: -/* Line 1787 of yacc.c */ -#line 308 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 43: +#line 311 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - doDump(*(yyvsp[(3) - (3)].stringptr), DUMP_PARAMETERS, 1); - delete (yyvsp[(3) - (3)].stringptr); + doDump(*(yyvsp[0].stringptr), jags::DUMP_PARAMETERS, 1); + delete (yyvsp[0].stringptr); } +#line 1811 "parser.cc" /* yacc.c:1646 */ break; - case 43: -/* Line 1787 of yacc.c */ -#line 312 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 44: +#line 315 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - doDump(*(yyvsp[(3) - (8)].stringptr), DUMP_PARAMETERS, (yyvsp[(7) - (8)].intval)); - delete (yyvsp[(3) - (8)].stringptr); + doDump(*(yyvsp[-5].stringptr), jags::DUMP_PARAMETERS, (yyvsp[-1].intval)); + delete (yyvsp[-5].stringptr); } +#line 1820 "parser.cc" /* yacc.c:1646 */ break; - case 44: -/* Line 1787 of yacc.c */ -#line 318 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 45: +#line 321 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - if(open_data_buffer((yyvsp[(3) - (3)].stringptr))) { - std::cout << "Reading parameter file " << *(yyvsp[(3) - (3)].stringptr) << std::endl; + if(open_data_buffer((yyvsp[0].stringptr))) { + std::cout << "Reading parameter file " << *(yyvsp[0].stringptr) << std::endl; } else { - std::cerr << "Unable to open file " << *(yyvsp[(3) - (3)].stringptr) << std::endl << std::flush; + std::cerr << "Unable to open file " << *(yyvsp[0].stringptr) << std::endl << std::flush; } - delete (yyvsp[(3) - (3)].stringptr); + delete (yyvsp[0].stringptr); } +#line 1834 "parser.cc" /* yacc.c:1646 */ break; - case 45: -/* Line 1787 of yacc.c */ -#line 327 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 46: +#line 330 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { /* Legacy option to not break existing scripts */ - if(open_data_buffer((yyvsp[(3) - (3)].stringptr))) { - std::cout << "Reading initial values file " << *(yyvsp[(3) - (3)].stringptr) << std::endl; + if(open_data_buffer((yyvsp[0].stringptr))) { + std::cout << "Reading initial values file " << *(yyvsp[0].stringptr) << std::endl; } else { - std::cerr << "Unable to open file " << *(yyvsp[(3) - (3)].stringptr) << std::endl << std::flush; + std::cerr << "Unable to open file " << *(yyvsp[0].stringptr) << std::endl << std::flush; } - delete (yyvsp[(3) - (3)].stringptr); + delete (yyvsp[0].stringptr); } +#line 1849 "parser.cc" /* yacc.c:1646 */ break; - case 46: -/* Line 1787 of yacc.c */ -#line 339 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 47: +#line 342 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { Jtry(console->compile(_data_table, 1, true)); print_unused_variables(_data_table, true); } +#line 1858 "parser.cc" /* yacc.c:1646 */ break; - case 47: -/* Line 1787 of yacc.c */ -#line 343 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 48: +#line 346 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - Jtry(console->compile(_data_table, (yyvsp[(5) - (6)].intval), true)); + Jtry(console->compile(_data_table, (yyvsp[-1].intval), true)); print_unused_variables(_data_table, true); } +#line 1867 "parser.cc" /* yacc.c:1646 */ break; - case 48: -/* Line 1787 of yacc.c */ -#line 349 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 49: +#line 352 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { if (!console->initialize()) { errordump(); } } - break; - - case 49: -/* Line 1787 of yacc.c */ -#line 356 "../../../../../jags-3_patched/src/terminal/parser.yy" - { - long refresh = interactive ? (yyvsp[(2) - (2)].intval)/50 : 0; - adaptstar((yyvsp[(2) - (2)].intval), refresh, 50); -} +#line 1877 "parser.cc" /* yacc.c:1646 */ break; case 50: -/* Line 1787 of yacc.c */ -#line 360 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 359 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - adaptstar((yyvsp[(2) - (7)].intval),(yyvsp[(6) - (7)].intval), 50); + long refresh = interactive ? (yyvsp[0].intval)/50 : 0; + adaptstar((yyvsp[0].intval), refresh, 50); } +#line 1886 "parser.cc" /* yacc.c:1646 */ break; case 51: -/* Line 1787 of yacc.c */ -#line 365 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 363 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - long refresh = interactive ? (yyvsp[(2) - (2)].intval)/50 : 0; - updatestar((yyvsp[(2) - (2)].intval), refresh, 50); + adaptstar((yyvsp[-5].intval),(yyvsp[-1].intval), 50); } +#line 1894 "parser.cc" /* yacc.c:1646 */ break; case 52: -/* Line 1787 of yacc.c */ -#line 369 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 368 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - updatestar((yyvsp[(2) - (7)].intval),(yyvsp[(6) - (7)].intval), 50); + long refresh = interactive ? (yyvsp[0].intval)/50 : 0; + updatestar((yyvsp[0].intval), refresh, 50); } +#line 1903 "parser.cc" /* yacc.c:1646 */ break; case 53: -/* Line 1787 of yacc.c */ -#line 374 "../../../../../jags-3_patched/src/terminal/parser.yy" - { return 0; } +#line 372 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + { + updatestar((yyvsp[-5].intval),(yyvsp[-1].intval), 50); +} +#line 1911 "parser.cc" /* yacc.c:1646 */ break; case 54: -/* Line 1787 of yacc.c */ -#line 377 "../../../../../jags-3_patched/src/terminal/parser.yy" - { - (yyval.ptree) = new ParseTree(P_VAR); setName((yyval.ptree), (yyvsp[(1) - (1)].stringptr)); -} +#line 377 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + { return 0; } +#line 1917 "parser.cc" /* yacc.c:1646 */ break; case 55: -/* Line 1787 of yacc.c */ -#line 380 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 380 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_VAR); setName((yyval.ptree), (yyvsp[(1) - (4)].stringptr)); - setParameters((yyval.ptree), (yyvsp[(3) - (4)].pvec)); + (yyval.ptree) = new jags::ParseTree(jags::P_VAR); setName((yyval.ptree), (yyvsp[0].stringptr)); } +#line 1925 "parser.cc" /* yacc.c:1646 */ break; case 56: -/* Line 1787 of yacc.c */ -#line 386 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 383 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - (yyval.pvec) = new std::vector(1, (yyvsp[(1) - (1)].ptree)); + (yyval.ptree) = new jags::ParseTree(jags::P_VAR); setName((yyval.ptree), (yyvsp[-3].stringptr)); + setParameters((yyval.ptree), (yyvsp[-1].pvec)); } +#line 1934 "parser.cc" /* yacc.c:1646 */ break; case 57: -/* Line 1787 of yacc.c */ -#line 389 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 389 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - (yyval.pvec)=(yyvsp[(1) - (3)].pvec); (yyval.pvec)->push_back((yyvsp[(3) - (3)].ptree)); + (yyval.pvec) = new std::vector(1, (yyvsp[0].ptree)); } +#line 1942 "parser.cc" /* yacc.c:1646 */ break; case 58: -/* Line 1787 of yacc.c */ -#line 394 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 392 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_RANGE); setParameters((yyval.ptree), (yyvsp[(1) - (1)].ptree)); + (yyval.pvec)=(yyvsp[-2].pvec); (yyval.pvec)->push_back((yyvsp[0].ptree)); } +#line 1950 "parser.cc" /* yacc.c:1646 */ break; case 59: -/* Line 1787 of yacc.c */ -#line 397 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 397 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_RANGE); setParameters((yyval.ptree), (yyvsp[(1) - (3)].ptree), (yyvsp[(3) - (3)].ptree)); + (yyval.ptree) = new jags::ParseTree(jags::P_RANGE); setParameters((yyval.ptree), (yyvsp[0].ptree)); } +#line 1958 "parser.cc" /* yacc.c:1646 */ break; case 60: -/* Line 1787 of yacc.c */ -#line 403 "../../../../../jags-3_patched/src/terminal/parser.yy" - {(yyval.ptree) = new ParseTree(P_VALUE); (yyval.ptree)->setValue((yyvsp[(1) - (1)].intval));} +#line 400 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + { + (yyval.ptree) = new jags::ParseTree(jags::P_RANGE); setParameters((yyval.ptree), (yyvsp[-2].ptree), (yyvsp[0].ptree)); +} +#line 1966 "parser.cc" /* yacc.c:1646 */ break; - case 63: -/* Line 1787 of yacc.c */ -#line 410 "../../../../../jags-3_patched/src/terminal/parser.yy" - { - setMonitor((yyvsp[(3) - (3)].ptree), 1, "trace"); delete (yyvsp[(3) - (3)].ptree); -} + case 61: +#line 406 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + {(yyval.ptree) = new jags::ParseTree(jags::P_VALUE); (yyval.ptree)->setValue((yyvsp[0].intval));} +#line 1972 "parser.cc" /* yacc.c:1646 */ break; case 64: -/* Line 1787 of yacc.c */ -#line 413 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 413 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - setMonitor((yyvsp[(3) - (8)].ptree), (yyvsp[(7) - (8)].intval), "trace"); delete (yyvsp[(3) - (8)].ptree); + setMonitor((yyvsp[0].ptree), 1, "trace"); delete (yyvsp[0].ptree); } +#line 1980 "parser.cc" /* yacc.c:1646 */ break; case 65: -/* Line 1787 of yacc.c */ -#line 416 "../../../../../jags-3_patched/src/terminal/parser.yy" - { - setMonitor((yyvsp[(2) - (2)].ptree), 1, "trace"); delete (yyvsp[(2) - (2)].ptree); +#line 416 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + { + setMonitor((yyvsp[-5].ptree), (yyvsp[-1].intval), "trace"); delete (yyvsp[-5].ptree); } +#line 1988 "parser.cc" /* yacc.c:1646 */ break; case 66: -/* Line 1787 of yacc.c */ -#line 419 "../../../../../jags-3_patched/src/terminal/parser.yy" - { - setMonitor((yyvsp[(2) - (7)].ptree), (yyvsp[(6) - (7)].intval), "trace"); delete (yyvsp[(2) - (7)].ptree); +#line 419 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + { + setMonitor((yyvsp[0].ptree), 1, "trace"); delete (yyvsp[0].ptree); } +#line 1996 "parser.cc" /* yacc.c:1646 */ break; case 67: -/* Line 1787 of yacc.c */ -#line 422 "../../../../../jags-3_patched/src/terminal/parser.yy" - { - setMonitor((yyvsp[(2) - (7)].ptree), 1, *(yyvsp[(6) - (7)].stringptr)); - delete (yyvsp[(6) - (7)].stringptr); +#line 422 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + { + setMonitor((yyvsp[-5].ptree), (yyvsp[-1].intval), "trace"); delete (yyvsp[-5].ptree); } +#line 2004 "parser.cc" /* yacc.c:1646 */ break; case 68: -/* Line 1787 of yacc.c */ -#line 426 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 425 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - setMonitor((yyvsp[(2) - (11)].ptree), (yyvsp[(10) - (11)].intval), *(yyvsp[(6) - (11)].stringptr)); - delete (yyvsp[(6) - (11)].stringptr); + setMonitor((yyvsp[-5].ptree), 1, *(yyvsp[-1].stringptr)); + delete (yyvsp[-1].stringptr); } +#line 2013 "parser.cc" /* yacc.c:1646 */ break; case 69: -/* Line 1787 of yacc.c */ -#line 430 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 429 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - setMonitor((yyvsp[(2) - (11)].ptree), (yyvsp[(6) - (11)].intval), *(yyvsp[(10) - (11)].stringptr)); - delete (yyvsp[(10) - (11)].stringptr); + setMonitor((yyvsp[-9].ptree), (yyvsp[-1].intval), *(yyvsp[-5].stringptr)); + delete (yyvsp[-5].stringptr); } +#line 2022 "parser.cc" /* yacc.c:1646 */ break; case 70: -/* Line 1787 of yacc.c */ -#line 436 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 433 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - clearMonitor((yyvsp[(3) - (3)].ptree), "trace"); delete (yyvsp[(3) - (3)].ptree); + setMonitor((yyvsp[-9].ptree), (yyvsp[-5].intval), *(yyvsp[-1].stringptr)); + delete (yyvsp[-1].stringptr); } +#line 2031 "parser.cc" /* yacc.c:1646 */ break; case 71: -/* Line 1787 of yacc.c */ -#line 439 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 439 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - clearMonitor((yyvsp[(3) - (8)].ptree), *(yyvsp[(7) - (8)].stringptr)); - delete (yyvsp[(7) - (8)].stringptr); + clearMonitor((yyvsp[0].ptree), "trace"); delete (yyvsp[0].ptree); } +#line 2039 "parser.cc" /* yacc.c:1646 */ break; case 72: -/* Line 1787 of yacc.c */ -#line 446 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 442 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - dumpMonitors(*(yyvsp[(3) - (3)].stringptr), "trace"); - delete (yyvsp[(3) - (3)].stringptr); + clearMonitor((yyvsp[-5].ptree), *(yyvsp[-1].stringptr)); + delete (yyvsp[-1].stringptr); } +#line 2048 "parser.cc" /* yacc.c:1646 */ break; case 73: -/* Line 1787 of yacc.c */ -#line 451 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 449 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - dumpMonitors(*(yyvsp[(3) - (8)].stringptr), *(yyvsp[(7) - (8)].stringptr)); - delete (yyvsp[(3) - (8)].stringptr); - delete (yyvsp[(7) - (8)].stringptr); + dumpMonitors(*(yyvsp[0].stringptr), "trace"); + delete (yyvsp[0].stringptr); } +#line 2057 "parser.cc" /* yacc.c:1646 */ break; case 74: -/* Line 1787 of yacc.c */ -#line 463 "../../../../../jags-3_patched/src/terminal/parser.yy" - { (yyval.stringptr) = (yyvsp[(1) - (1)].stringptr);} +#line 454 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + { + dumpMonitors(*(yyvsp[-5].stringptr), *(yyvsp[-1].stringptr)); + delete (yyvsp[-5].stringptr); + delete (yyvsp[-1].stringptr); +} +#line 2067 "parser.cc" /* yacc.c:1646 */ break; case 75: -/* Line 1787 of yacc.c */ -#line 464 "../../../../../jags-3_patched/src/terminal/parser.yy" - { (yyval.stringptr) = (yyvsp[(1) - (1)].stringptr); } +#line 466 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + { (yyval.stringptr) = (yyvsp[0].stringptr);} +#line 2073 "parser.cc" /* yacc.c:1646 */ break; case 76: -/* Line 1787 of yacc.c */ -#line 467 "../../../../../jags-3_patched/src/terminal/parser.yy" - { - doCoda ((yyvsp[(2) - (2)].ptree), "CODA"); delete (yyvsp[(2) - (2)].ptree); -} +#line 467 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + { (yyval.stringptr) = (yyvsp[0].stringptr); } +#line 2079 "parser.cc" /* yacc.c:1646 */ break; case 77: -/* Line 1787 of yacc.c */ -#line 470 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 470 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - doCoda ((yyvsp[(2) - (7)].ptree), *(yyvsp[(6) - (7)].stringptr)); delete (yyvsp[(2) - (7)].ptree); delete (yyvsp[(6) - (7)].stringptr); + doCoda ((yyvsp[0].ptree), "CODA"); delete (yyvsp[0].ptree); } +#line 2087 "parser.cc" /* yacc.c:1646 */ break; case 78: -/* Line 1787 of yacc.c */ -#line 473 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 473 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - doAllCoda ("CODA"); + doCoda ((yyvsp[-5].ptree), *(yyvsp[-1].stringptr)); delete (yyvsp[-5].ptree); delete (yyvsp[-1].stringptr); } +#line 2095 "parser.cc" /* yacc.c:1646 */ break; case 79: -/* Line 1787 of yacc.c */ -#line 476 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 476 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - doAllCoda (*(yyvsp[(6) - (7)].stringptr)); delete (yyvsp[(6) - (7)].stringptr); + doAllCoda ("CODA"); } +#line 2103 "parser.cc" /* yacc.c:1646 */ break; case 80: -/* Line 1787 of yacc.c */ -#line 481 "../../../../../jags-3_patched/src/terminal/parser.yy" - { loadModule(*(yyvsp[(2) - (2)].stringptr)); } +#line 479 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + { + doAllCoda (*(yyvsp[-1].stringptr)); delete (yyvsp[-1].stringptr); +} +#line 2111 "parser.cc" /* yacc.c:1646 */ break; case 81: -/* Line 1787 of yacc.c */ -#line 484 "../../../../../jags-3_patched/src/terminal/parser.yy" - { unloadModule(*(yyvsp[(2) - (2)].stringptr)); } +#line 484 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + { loadModule(*(yyvsp[0].stringptr)); } +#line 2117 "parser.cc" /* yacc.c:1646 */ break; case 82: -/* Line 1787 of yacc.c */ -#line 488 "../../../../../jags-3_patched/src/terminal/parser.yy" - { - dumpSamplers(*(yyvsp[(3) - (3)].stringptr)); - delete (yyvsp[(3) - (3)].stringptr); -} +#line 487 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + { unloadModule(*(yyvsp[0].stringptr)); } +#line 2123 "parser.cc" /* yacc.c:1646 */ break; case 83: -/* Line 1787 of yacc.c */ -#line 495 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 491 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - listFactories(SAMPLER_FACTORY); + dumpSamplers(*(yyvsp[0].stringptr)); + delete (yyvsp[0].stringptr); } +#line 2132 "parser.cc" /* yacc.c:1646 */ break; case 84: -/* Line 1787 of yacc.c */ -#line 500 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 498 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - listFactories(RNG_FACTORY); + listFactories(jags::SAMPLER_FACTORY); } +#line 2140 "parser.cc" /* yacc.c:1646 */ break; case 85: -/* Line 1787 of yacc.c */ -#line 505 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 503 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - listFactories(MONITOR_FACTORY); + listFactories(jags::RNG_FACTORY); } +#line 2148 "parser.cc" /* yacc.c:1646 */ break; case 86: -/* Line 1787 of yacc.c */ -#line 511 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 508 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - setFactory(*(yyvsp[(3) - (9)].stringptr), SAMPLER_FACTORY, *(yyvsp[(4) - (9)].stringptr)); - delete (yyvsp[(3) - (9)].stringptr); - delete (yyvsp[(4) - (9)].stringptr); + listFactories(jags::MONITOR_FACTORY); } +#line 2156 "parser.cc" /* yacc.c:1646 */ break; case 87: -/* Line 1787 of yacc.c */ -#line 518 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 514 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - setFactory(*(yyvsp[(3) - (9)].stringptr), RNG_FACTORY, *(yyvsp[(4) - (9)].stringptr)); - delete (yyvsp[(3) - (9)].stringptr); - delete (yyvsp[(4) - (9)].stringptr); + setFactory(*(yyvsp[-6].stringptr), jags::SAMPLER_FACTORY, *(yyvsp[-5].stringptr)); + delete (yyvsp[-6].stringptr); + delete (yyvsp[-5].stringptr); } +#line 2166 "parser.cc" /* yacc.c:1646 */ break; case 88: -/* Line 1787 of yacc.c */ -#line 525 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 521 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - setFactory(*(yyvsp[(3) - (9)].stringptr), MONITOR_FACTORY, *(yyvsp[(4) - (9)].stringptr)); - delete (yyvsp[(3) - (9)].stringptr); - delete (yyvsp[(4) - (9)].stringptr); + setFactory(*(yyvsp[-6].stringptr), jags::RNG_FACTORY, *(yyvsp[-5].stringptr)); + delete (yyvsp[-6].stringptr); + delete (yyvsp[-5].stringptr); } +#line 2176 "parser.cc" /* yacc.c:1646 */ break; case 89: -/* Line 1787 of yacc.c */ -#line 534 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 528 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - (yyval.pvec) = new std::vector(1, (yyvsp[(1) - (1)].ptree)); + setFactory(*(yyvsp[-6].stringptr), jags::MONITOR_FACTORY, *(yyvsp[-5].stringptr)); + delete (yyvsp[-6].stringptr); + delete (yyvsp[-5].stringptr); } +#line 2186 "parser.cc" /* yacc.c:1646 */ break; case 90: -/* Line 1787 of yacc.c */ -#line 537 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 536 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - (yyval.pvec) = (yyvsp[(1) - (2)].pvec); (yyval.pvec)->push_back((yyvsp[(2) - (2)].ptree)); + setSeed((yyvsp[0].intval)); } +#line 2194 "parser.cc" /* yacc.c:1646 */ break; case 91: -/* Line 1787 of yacc.c */ -#line 540 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 543 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - (yyval.pvec) = (yyvsp[(1) - (3)].pvec); (yyval.pvec)->push_back((yyvsp[(3) - (3)].ptree)); + (yyval.pvec) = new std::vector(1, (yyvsp[0].ptree)); } +#line 2202 "parser.cc" /* yacc.c:1646 */ break; case 92: -/* Line 1787 of yacc.c */ -#line 545 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 546 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = (yyvsp[(3) - (3)].ptree); setName((yyval.ptree), (yyvsp[(1) - (3)].stringptr)); + (yyval.pvec) = (yyvsp[-1].pvec); (yyval.pvec)->push_back((yyvsp[0].ptree)); } +#line 2210 "parser.cc" /* yacc.c:1646 */ break; case 93: -/* Line 1787 of yacc.c */ -#line 548 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 549 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_ARRAY); - setName((yyval.ptree), (yyvsp[(1) - (3)].stringptr)); - setParameters((yyval.ptree), (yyvsp[(3) - (3)].ptree)); + (yyval.pvec) = (yyvsp[-2].pvec); (yyval.pvec)->push_back((yyvsp[0].ptree)); } +#line 2218 "parser.cc" /* yacc.c:1646 */ break; case 94: -/* Line 1787 of yacc.c */ -#line 553 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 554 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + { + (yyval.ptree) = (yyvsp[0].ptree); setName((yyval.ptree), (yyvsp[-2].stringptr)); +} +#line 2226 "parser.cc" /* yacc.c:1646 */ + break; + + case 95: +#line 557 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + { + (yyval.ptree) = new jags::ParseTree(jags::P_ARRAY); + setName((yyval.ptree), (yyvsp[-2].stringptr)); + setParameters((yyval.ptree), (yyvsp[0].ptree)); +} +#line 2236 "parser.cc" /* yacc.c:1646 */ + break; + + case 96: +#line 562 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { /* Allow this for setting the NAME of the random number generator */ - (yyval.ptree) = new ParseTree(P_VAR); setName((yyval.ptree), (yyvsp[(1) - (3)].stringptr)); - ParseTree *p = new ParseTree(P_VAR); setName(p, (yyvsp[(3) - (3)].stringptr)); + (yyval.ptree) = new jags::ParseTree(jags::P_VAR); setName((yyval.ptree), (yyvsp[-2].stringptr)); + jags::ParseTree *p = new jags::ParseTree(jags::P_VAR); setName(p, (yyvsp[0].stringptr)); setParameters((yyval.ptree), p); } +#line 2247 "parser.cc" /* yacc.c:1646 */ break; - case 97: -/* Line 1787 of yacc.c */ -#line 563 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 99: +#line 572 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { /* R >= 2.4.0 uses backticks for quoted names */ - (yyval.stringptr) = (yyvsp[(2) - (3)].stringptr); + (yyval.stringptr) = (yyvsp[-1].stringptr); } +#line 2256 "parser.cc" /* yacc.c:1646 */ break; - case 98: -/* Line 1787 of yacc.c */ -#line 568 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 100: +#line 577 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_ARRAY); - if ((yyvsp[(5) - (6)].ptree)) - setParameters((yyval.ptree), (yyvsp[(3) - (6)].ptree), (yyvsp[(5) - (6)].ptree)); + (yyval.ptree) = new jags::ParseTree(jags::P_ARRAY); + if ((yyvsp[-1].ptree)) + setParameters((yyval.ptree), (yyvsp[-3].ptree), (yyvsp[-1].ptree)); else - setParameters((yyval.ptree), (yyvsp[(3) - (6)].ptree)); + setParameters((yyval.ptree), (yyvsp[-3].ptree)); } +#line 2268 "parser.cc" /* yacc.c:1646 */ break; - case 99: -/* Line 1787 of yacc.c */ -#line 575 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 101: +#line 584 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_ARRAY); - setParameters((yyval.ptree), (yyvsp[(3) - (4)].ptree)); + (yyval.ptree) = new jags::ParseTree(jags::P_ARRAY); + setParameters((yyval.ptree), (yyvsp[-1].ptree)); } +#line 2277 "parser.cc" /* yacc.c:1646 */ break; - case 101: -/* Line 1787 of yacc.c */ -#line 584 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 103: +#line 593 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {(yyval.ptree)=0;} +#line 2283 "parser.cc" /* yacc.c:1646 */ break; - case 103: -/* Line 1787 of yacc.c */ -#line 586 "../../../../../jags-3_patched/src/terminal/parser.yy" - {(yyval.ptree)=(yyvsp[(3) - (3)].ptree);} + case 105: +#line 595 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + {(yyval.ptree)=(yyvsp[0].ptree);} +#line 2289 "parser.cc" /* yacc.c:1646 */ break; - case 104: -/* Line 1787 of yacc.c */ -#line 589 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 106: +#line 598 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = (yyvsp[(3) - (3)].ptree); + (yyval.ptree) = (yyvsp[0].ptree); } +#line 2297 "parser.cc" /* yacc.c:1646 */ break; - case 105: -/* Line 1787 of yacc.c */ -#line 592 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 107: +#line 601 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = (yyvsp[(3) - (3)].ptree); + (yyval.ptree) = (yyvsp[0].ptree); } +#line 2305 "parser.cc" /* yacc.c:1646 */ break; - case 108: -/* Line 1787 of yacc.c */ -#line 601 "../../../../../jags-3_patched/src/terminal/parser.yy" - {(yyval.ptree) = (yyvsp[(3) - (4)].ptree);} + case 110: +#line 610 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + {(yyval.ptree) = (yyvsp[-1].ptree);} +#line 2311 "parser.cc" /* yacc.c:1646 */ break; - case 109: -/* Line 1787 of yacc.c */ -#line 604 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 111: +#line 613 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_VECTOR); - setParameters((yyval.ptree), (yyvsp[(1) - (1)].ptree)); + (yyval.ptree) = new jags::ParseTree(jags::P_VECTOR); + setParameters((yyval.ptree), (yyvsp[0].ptree)); } +#line 2320 "parser.cc" /* yacc.c:1646 */ break; - case 110: -/* Line 1787 of yacc.c */ -#line 608 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 112: +#line 617 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - (yyval.ptree) = new ParseTree(P_VECTOR); - setParameters((yyval.ptree), (yyvsp[(3) - (4)].pvec)); + (yyval.ptree) = new jags::ParseTree(jags::P_VECTOR); + setParameters((yyval.ptree), (yyvsp[-1].pvec)); } - break; - - case 111: -/* Line 1787 of yacc.c */ -#line 614 "../../../../../jags-3_patched/src/terminal/parser.yy" - {(yyval.pvec) = new std::vector(1, (yyvsp[(1) - (1)].ptree)); } - break; - - case 112: -/* Line 1787 of yacc.c */ -#line 615 "../../../../../jags-3_patched/src/terminal/parser.yy" - {(yyval.pvec) = (yyvsp[(1) - (3)].pvec); (yyval.pvec)->push_back((yyvsp[(3) - (3)].ptree));} +#line 2329 "parser.cc" /* yacc.c:1646 */ break; case 113: -/* Line 1787 of yacc.c */ -#line 618 "../../../../../jags-3_patched/src/terminal/parser.yy" - {(yyval.ptree) = new ParseTree(P_VALUE); (yyval.ptree)->setValue((yyvsp[(1) - (1)].val));} +#line 623 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + {(yyval.pvec) = new std::vector(1, (yyvsp[0].ptree)); } +#line 2335 "parser.cc" /* yacc.c:1646 */ break; case 114: -/* Line 1787 of yacc.c */ -#line 619 "../../../../../jags-3_patched/src/terminal/parser.yy" - {(yyval.ptree) = new ParseTree(P_VALUE); (yyval.ptree)->setValue(JAGS_NA);} +#line 624 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + {(yyval.pvec) = (yyvsp[-2].pvec); (yyval.pvec)->push_back((yyvsp[0].ptree));} +#line 2341 "parser.cc" /* yacc.c:1646 */ break; case 115: -/* Line 1787 of yacc.c */ -#line 625 "../../../../../jags-3_patched/src/terminal/parser.yy" - {;} +#line 627 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + {(yyval.ptree) = new jags::ParseTree(jags::P_VALUE); (yyval.ptree)->setValue((yyvsp[0].val));} +#line 2347 "parser.cc" /* yacc.c:1646 */ break; case 116: -/* Line 1787 of yacc.c */ -#line 628 "../../../../../jags-3_patched/src/terminal/parser.yy" - {;} +#line 628 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + {(yyval.ptree) = new jags::ParseTree(jags::P_VALUE); (yyval.ptree)->setValue(JAGS_NA);} +#line 2353 "parser.cc" /* yacc.c:1646 */ break; case 117: -/* Line 1787 of yacc.c */ -#line 629 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 634 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {;} +#line 2359 "parser.cc" /* yacc.c:1646 */ break; case 118: -/* Line 1787 of yacc.c */ -#line 632 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 637 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {;} +#line 2365 "parser.cc" /* yacc.c:1646 */ break; case 119: -/* Line 1787 of yacc.c */ -#line 633 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 638 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {;} +#line 2371 "parser.cc" /* yacc.c:1646 */ break; case 120: -/* Line 1787 of yacc.c */ -#line 636 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 641 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {;} +#line 2377 "parser.cc" /* yacc.c:1646 */ break; case 121: -/* Line 1787 of yacc.c */ -#line 637 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 642 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {;} +#line 2383 "parser.cc" /* yacc.c:1646 */ break; case 122: -/* Line 1787 of yacc.c */ -#line 638 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 645 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {;} +#line 2389 "parser.cc" /* yacc.c:1646 */ break; case 123: -/* Line 1787 of yacc.c */ -#line 639 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 646 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {;} +#line 2395 "parser.cc" /* yacc.c:1646 */ break; case 124: -/* Line 1787 of yacc.c */ -#line 640 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 647 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {;} +#line 2401 "parser.cc" /* yacc.c:1646 */ break; case 125: -/* Line 1787 of yacc.c */ -#line 641 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 648 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {;} +#line 2407 "parser.cc" /* yacc.c:1646 */ break; case 126: -/* Line 1787 of yacc.c */ -#line 644 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 649 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {;} +#line 2413 "parser.cc" /* yacc.c:1646 */ break; - case 128: -/* Line 1787 of yacc.c */ -#line 648 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 127: +#line 650 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {;} +#line 2419 "parser.cc" /* yacc.c:1646 */ break; - case 129: -/* Line 1787 of yacc.c */ -#line 649 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 128: +#line 653 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {;} +#line 2425 "parser.cc" /* yacc.c:1646 */ break; case 130: -/* Line 1787 of yacc.c */ -#line 652 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 657 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {;} +#line 2431 "parser.cc" /* yacc.c:1646 */ break; case 131: -/* Line 1787 of yacc.c */ -#line 653 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 658 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {;} +#line 2437 "parser.cc" /* yacc.c:1646 */ break; case 132: -/* Line 1787 of yacc.c */ -#line 656 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 661 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {;} +#line 2443 "parser.cc" /* yacc.c:1646 */ break; case 133: -/* Line 1787 of yacc.c */ -#line 657 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 662 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ {;} +#line 2449 "parser.cc" /* yacc.c:1646 */ break; case 134: -/* Line 1787 of yacc.c */ -#line 663 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 665 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + {;} +#line 2455 "parser.cc" /* yacc.c:1646 */ + break; + + case 135: +#line 666 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ + {;} +#line 2461 "parser.cc" /* yacc.c:1646 */ + break; + + case 136: +#line 672 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { std::string name; if (getWorkingDirectory(name)) { @@ -2671,22 +2471,22 @@ std::cout << "ERROR: " << name << std::endl; } } +#line 2475 "parser.cc" /* yacc.c:1646 */ break; - case 135: -/* Line 1787 of yacc.c */ -#line 674 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 137: +#line 683 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - if (chdir(((yyvsp[(2) - (2)].stringptr))->c_str()) == -1) { + if (chdir(((yyvsp[0].stringptr))->c_str()) == -1) { std::cout << "ERROR: Cannot change working directory" << std::endl; } - delete (yyvsp[(2) - (2)].stringptr); + delete (yyvsp[0].stringptr); } +#line 2486 "parser.cc" /* yacc.c:1646 */ break; - case 136: -/* Line 1787 of yacc.c */ -#line 682 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 138: +#line 691 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { std::string name; if (!getWorkingDirectory(name)) { @@ -2709,25 +2509,25 @@ std::cerr << "Unable to open working directory" << std::endl; } } +#line 2513 "parser.cc" /* yacc.c:1646 */ break; - case 137: -/* Line 1787 of yacc.c */ -#line 705 "../../../../../jags-3_patched/src/terminal/parser.yy" + case 139: +#line 714 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1646 */ { - if(open_command_buffer((yyvsp[(2) - (2)].stringptr))) { - std::cout << "Running script file " << *(yyvsp[(2) - (2)].stringptr) << std::endl; + if(open_command_buffer((yyvsp[0].stringptr))) { + std::cout << "Running script file " << *(yyvsp[0].stringptr) << std::endl; } else { - std::cerr << "Unable to open script file " << *(yyvsp[(2) - (2)].stringptr) << std::endl; + std::cerr << "Unable to open script file " << *(yyvsp[0].stringptr) << std::endl; } - delete (yyvsp[(2) - (2)].stringptr); + delete (yyvsp[0].stringptr); } +#line 2527 "parser.cc" /* yacc.c:1646 */ break; -/* Line 1787 of yacc.c */ -#line 2731 "parser.cc" +#line 2531 "parser.cc" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -2749,7 +2549,7 @@ *++yyvsp = yyval; - /* Now `shift' the result of the reduction. Determine what state + /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -2764,9 +2564,9 @@ goto yynewstate; -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ @@ -2817,20 +2617,20 @@ if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an - error, discard it. */ + error, discard it. */ if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } else - { - yydestruct ("Error: discarding", - yytoken, &yylval); - yychar = YYEMPTY; - } + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } } /* Else will try to reuse lookahead token after shifting the error @@ -2849,7 +2649,7 @@ if (/*CONSTCOND*/ 0) goto yyerrorlab; - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; @@ -2862,35 +2662,37 @@ | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ + yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) - YYABORT; + YYABORT; yydestruct ("Error: popping", - yystos[yystate], yyvsp); + yystos[yystate], yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END /* Shift the error token. */ @@ -2933,14 +2735,14 @@ yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); } - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); + yystos[*yyssp], yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow @@ -2951,13 +2753,9 @@ if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif - /* Make sure YYID is used. */ - return YYID (yyresult); + return yyresult; } - - -/* Line 2048 of yacc.c */ -#line 716 "../../../../../jags-3_patched/src/terminal/parser.yy" +#line 725 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1906 */ int zzerror (const char *s) @@ -2967,7 +2765,7 @@ return 0; } -static Range getRange(ParseTree const *var) +static jags::Range getRange(jags::ParseTree const *var) { /* Blank arguments, e.g. foo[] or bar[,1] are not allowed. @@ -2976,7 +2774,7 @@ std::vector ind_lower(size), ind_upper(size); for (unsigned int i = 0; i < size; ++i) { - ParseTree const *range_element = var->parameters()[i]; + jags::ParseTree const *range_element = var->parameters()[i]; switch(range_element->parameters().size()) { case 1: ind_lower[i] = (int) (range_element->parameters()[0]->value() + 1.0E-6); @@ -2991,15 +2789,15 @@ break; } } - return Range(ind_lower, ind_upper); + return jags::SimpleRange(ind_lower, ind_upper); } -void setMonitor(ParseTree const *var, int thin, std::string const &type) +void setMonitor(jags::ParseTree const *var, int thin, std::string const &type) { std::string const &name = var->name(); if (var->parameters().empty()) { /* Requesting the whole node */ - console->setMonitor(name, Range(), thin, type); + console->setMonitor(name, jags::Range(), thin, type); } else { /* Requesting subset of a multivariate node */ @@ -3007,12 +2805,12 @@ } } -void clearMonitor(ParseTree const *var, std::string const &type) +void clearMonitor(jags::ParseTree const *var, std::string const &type) { std::string const &name = var->name(); if (var->parameters().empty()) { /* Requesting the whole node */ - console->clearMonitor(name, Range(), type); + console->clearMonitor(name, jags::Range(), type); } else { /* Requesting subset of a multivariate node */ @@ -3025,18 +2823,18 @@ console->coda(stem); } -void doCoda (ParseTree const *var, std::string const &stem) +void doCoda (jags::ParseTree const *var, std::string const &stem) { //FIXME: Allow list of several nodes - std::vector > dmp; + std::vector > dmp; if (var->parameters().empty()) { /* Requesting the whole node */ - dmp.push_back(std::pair(var->name(), Range())); + dmp.push_back(std::pair(var->name(), jags::Range())); } else { /* Requesting subset of a multivariate node */ - dmp.push_back(std::pair(var->name(), getRange(var))); + dmp.push_back(std::pair(var->name(), getRange(var))); } console->coda(dmp, stem); } @@ -3067,9 +2865,9 @@ } } -void doDump(std::string const &file, DumpType type, unsigned int chain) +void doDump(std::string const &file, jags::DumpType type, unsigned int chain) { - std::map data_table; + std::map data_table; std::string rng_name; if (!console->dumpState(data_table, rng_name, type, chain)) { return; @@ -3086,10 +2884,10 @@ out << "`.RNG.name` <- \"" << rng_name << "\"\n"; } - for (std::map::const_iterator p = data_table.begin(); + for (std::map::const_iterator p = data_table.begin(); p != data_table.end(); ++p) { std::string const &name = p->first; - SArray const &sarray = p->second; + jags::SArray const &sarray = p->second; std::vector const &value = sarray.value(); long length = sarray.length(); out << "`" << name << "` <- " << std::endl; @@ -3139,7 +2937,7 @@ void dumpMonitors(std::string const &file, std::string const &type) { - std::map data_table; + std::map data_table; if (!console->dumpMonitors(data_table, type, false)) { return; @@ -3154,10 +2952,10 @@ out << "`" << type << "` <-\nstructure(list("; - std::map::const_iterator p; + std::map::const_iterator p; for (p = data_table.begin(); p != data_table.end(); ++p) { std::string const &name = p->first; - SArray const &sarray = p->second; + jags::SArray const &sarray = p->second; std::vector const &value = sarray.value(); long length = sarray.length(); @@ -3235,7 +3033,7 @@ out.close(); } -void setParameters(ParseTree *p, std::vector *parameters) +void setParameters(jags::ParseTree *p, std::vector *parameters) { /* The parser dynamically allocates vectors of (pointers to) @@ -3246,29 +3044,29 @@ delete parameters; } -void setParameters(ParseTree *p, ParseTree *param1) +void setParameters(jags::ParseTree *p, jags::ParseTree *param1) { /* Wrapper function that creates a vector containing param1 - to be passed to ParseTree::setParameters. + to be passed to jags::ParseTree::setParameters. */ - std::vector parameters(1, param1); + std::vector parameters(1, param1); p->setParameters(parameters); } -void setParameters(ParseTree *p, ParseTree *param1, ParseTree *param2) +void setParameters(jags::ParseTree *p, jags::ParseTree *param1, jags::ParseTree *param2) { /* Wrapper function that creates a vector containing param1 - and param2, to be passed to ParseTree::setParameters + and param2, to be passed to jags::ParseTree::setParameters */ - std::vector parameters; + std::vector parameters; parameters.push_back(param1); parameters.push_back(param2); p->setParameters(parameters); } -void setName(ParseTree *p, std::string *name) +void setName(jags::ParseTree *p, std::string *name) { p->setName(*name); delete name; @@ -3283,7 +3081,7 @@ std::cout << "Dumping chain " << i << " at iteration " << console->iter() << " to file " << fname.str() << std::endl; - doDump(fname.str(), DUMP_ALL, i); + doDump(fname.str(), jags::DUMP_ALL, i); fname.str(""); } } @@ -3380,11 +3178,11 @@ static void adaptstar(long niter, long refresh, int width) { - std::cout << "Adapting " << niter << std::endl; if (!console->isAdapting()) { - std::cerr << "ERROR: Model is not in adaptive mode\n"; + std::cerr << "Adaptation skipped: model is not in adaptive mode.\n"; return; } + std::cout << "Adapting " << niter << std::endl; bool status = true; if (refresh == 0) { @@ -3395,6 +3193,7 @@ } if (!status) { std::cerr << "Adaptation incomplete\n"; + return; } else { std::cerr << "Adaptation successful\n"; @@ -3453,14 +3252,14 @@ else { std::cout << ": ok" << std::endl; _dyn_lib.push_front(mod); - Console::loadModule(name); + jags::Console::loadModule(name); } } static void unloadModule(std::string const &name) { std::cout << "Unloading module: " << name << std::endl; - Console::unloadModule(name); + jags::Console::unloadModule(name); } int main (int argc, char **argv) @@ -3486,7 +3285,7 @@ interactive = true; } -#ifndef WIN32 +#ifndef _WIN32 /* - Allows emulation of dynamic loading on platforms that do not support it by preloading modules. @@ -3520,7 +3319,7 @@ loadModule("basemod"); loadModule("bugs"); - console = new Console(std::cout, std::cerr); + console = new jags::Console(std::cout, std::cerr); zzparse(); zzlex_destroy(); @@ -3530,9 +3329,9 @@ } //Unload modules - std::vector mods = Console::listModules(); + std::vector mods = jags::Console::listModules(); for (unsigned int i = 0; i < mods.size(); ++i) { - Console::unloadModule(mods[i]); + jags::Console::unloadModule(mods[i]); } delete console; //Release dynamic libraries. @@ -3600,7 +3399,7 @@ out.close(); } -static void delete_pvec(std::vector *pv) +static void delete_pvec(std::vector *pv) { for (unsigned int i = 0; i < pv->size(); ++i) { delete (*pv)[i]; @@ -3608,11 +3407,11 @@ delete pv; } -static void print_unused_variables(std::map const &table, +static void print_unused_variables(std::map const &table, bool data) { std::vector supplied_vars; - for (std::map::const_iterator p = table.begin(); + for (std::map::const_iterator p = table.begin(); p != table.end(); ++p) { supplied_vars.push_back(p->first); @@ -3672,10 +3471,10 @@ std::system(command->c_str()); } -void listFactories(FactoryType type) +void listFactories(jags::FactoryType type) { std::vector > faclist = - Console::listFactories(type); + jags::Console::listFactories(type); std::vector >::const_iterator p; unsigned int max_strlen = 0; @@ -3709,19 +3508,29 @@ } } -void setFactory(std::string const &name, FactoryType type, +void setFactory(std::string const &name, jags::FactoryType type, std::string const &status) { if (status == "on") { - Console::setFactoryActive(name, type, true); + jags::Console::setFactoryActive(name, type, true); } else if (status == "off") { - Console::setFactoryActive(name, type, false); + jags::Console::setFactoryActive(name, type, false); } else { std::cout << "status should be \"on\" or \"off\""; } } + +void setSeed(unsigned int seed) +{ + if (seed == 0) { + std::cout << "seed must be non-zero"; + } + else { + jags::Console::setRNGSeed(seed); + } +} bool Jtry(bool ok) { @@ -3730,4 +3539,3 @@ else return ok; } - diff -Nru jags-3.4.0/src/terminal/parser.h jags-4.0.0/src/terminal/parser.h --- jags-3.4.0/src/terminal/parser.h 2013-08-30 11:52:57.000000000 +0000 +++ jags-4.0.0/src/terminal/parser.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,194 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.6.1. */ - -/* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -#ifndef ZZ_PARSER_H -# define ZZ_PARSER_H -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int zzdebug; -#endif - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - INT = 258, - DOUBLE = 259, - NAME = 260, - STRING = 261, - SYSCMD = 262, - ENDCMD = 263, - MODEL = 264, - DATA = 265, - IN = 266, - TO = 267, - INITS = 268, - PARAMETERS = 269, - COMPILE = 270, - INITIALIZE = 271, - ADAPT = 272, - UPDATE = 273, - BY = 274, - MONITORS = 275, - MONITOR = 276, - TYPE = 277, - SET = 278, - CLEAR = 279, - THIN = 280, - CODA = 281, - STEM = 282, - EXIT = 283, - NCHAINS = 284, - CHAIN = 285, - LOAD = 286, - UNLOAD = 287, - SAMPLER = 288, - SAMPLERS = 289, - RNGTOK = 290, - FACTORY = 291, - FACTORIES = 292, - LIST = 293, - STRUCTURE = 294, - DIM = 295, - NA = 296, - R_NULL = 297, - DIMNAMES = 298, - ITER = 299, - ARROW = 300, - ENDDATA = 301, - ASINTEGER = 302, - DIRECTORY = 303, - CD = 304, - PWD = 305, - RUN = 306, - ENDSCRIPT = 307 - }; -#endif -/* Tokens. */ -#define INT 258 -#define DOUBLE 259 -#define NAME 260 -#define STRING 261 -#define SYSCMD 262 -#define ENDCMD 263 -#define MODEL 264 -#define DATA 265 -#define IN 266 -#define TO 267 -#define INITS 268 -#define PARAMETERS 269 -#define COMPILE 270 -#define INITIALIZE 271 -#define ADAPT 272 -#define UPDATE 273 -#define BY 274 -#define MONITORS 275 -#define MONITOR 276 -#define TYPE 277 -#define SET 278 -#define CLEAR 279 -#define THIN 280 -#define CODA 281 -#define STEM 282 -#define EXIT 283 -#define NCHAINS 284 -#define CHAIN 285 -#define LOAD 286 -#define UNLOAD 287 -#define SAMPLER 288 -#define SAMPLERS 289 -#define RNGTOK 290 -#define FACTORY 291 -#define FACTORIES 292 -#define LIST 293 -#define STRUCTURE 294 -#define DIM 295 -#define NA 296 -#define R_NULL 297 -#define DIMNAMES 298 -#define ITER 299 -#define ARROW 300 -#define ENDDATA 301 -#define ASINTEGER 302 -#define DIRECTORY 303 -#define CD 304 -#define PWD 305 -#define RUN 306 -#define ENDSCRIPT 307 - - - -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -{ -/* Line 2049 of yacc.c */ -#line 91 "../../../../../jags-3_patched/src/terminal/parser.yy" - - int intval; - double val; - std::string *stringptr; - ParseTree *ptree; - std::vector *pvec; - std::vector *vec; - std::vector *ivec; - - -/* Line 2049 of yacc.c */ -#line 172 "parser.h" -} YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -#endif - -extern YYSTYPE zzlval; - -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int zzparse (void *YYPARSE_PARAM); -#else -int zzparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int zzparse (void); -#else -int zzparse (); -#endif -#endif /* ! YYPARSE_PARAM */ - -#endif /* !ZZ_PARSER_H */ diff -Nru jags-3.4.0/src/terminal/parser.hh jags-4.0.0/src/terminal/parser.hh --- jags-3.4.0/src/terminal/parser.hh 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/src/terminal/parser.hh 2015-09-27 11:57:03.000000000 +0000 @@ -0,0 +1,180 @@ +/* A Bison parser, made by GNU Bison 3.0.2. */ + +/* Bison interface for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +#ifndef YY_ZZ_PARSER_HH_INCLUDED +# define YY_ZZ_PARSER_HH_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int zzdebug; +#endif + +/* Token type. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + INT = 258, + DOUBLE = 259, + NAME = 260, + STRING = 261, + SYSCMD = 262, + ENDCMD = 263, + MODEL = 264, + DATA = 265, + IN = 266, + TO = 267, + INITS = 268, + PARAMETERS = 269, + COMPILE = 270, + INITIALIZE = 271, + ADAPT = 272, + UPDATE = 273, + BY = 274, + MONITORS = 275, + MONITOR = 276, + TYPE = 277, + SET = 278, + CLEAR = 279, + THIN = 280, + CODA = 281, + STEM = 282, + EXIT = 283, + NCHAINS = 284, + CHAIN = 285, + LOAD = 286, + UNLOAD = 287, + SAMPLER = 288, + SAMPLERS = 289, + RNGTOK = 290, + FACTORY = 291, + FACTORIES = 292, + SEED = 293, + LIST = 294, + STRUCTURE = 295, + DIM = 296, + NA = 297, + R_NULL = 298, + DIMNAMES = 299, + ITER = 300, + ARROW = 301, + ENDDATA = 302, + ASINTEGER = 303, + DIRECTORY = 304, + CD = 305, + PWD = 306, + RUN = 307, + ENDSCRIPT = 308 + }; +#endif +/* Tokens. */ +#define INT 258 +#define DOUBLE 259 +#define NAME 260 +#define STRING 261 +#define SYSCMD 262 +#define ENDCMD 263 +#define MODEL 264 +#define DATA 265 +#define IN 266 +#define TO 267 +#define INITS 268 +#define PARAMETERS 269 +#define COMPILE 270 +#define INITIALIZE 271 +#define ADAPT 272 +#define UPDATE 273 +#define BY 274 +#define MONITORS 275 +#define MONITOR 276 +#define TYPE 277 +#define SET 278 +#define CLEAR 279 +#define THIN 280 +#define CODA 281 +#define STEM 282 +#define EXIT 283 +#define NCHAINS 284 +#define CHAIN 285 +#define LOAD 286 +#define UNLOAD 287 +#define SAMPLER 288 +#define SAMPLERS 289 +#define RNGTOK 290 +#define FACTORY 291 +#define FACTORIES 292 +#define SEED 293 +#define LIST 294 +#define STRUCTURE 295 +#define DIM 296 +#define NA 297 +#define R_NULL 298 +#define DIMNAMES 299 +#define ITER 300 +#define ARROW 301 +#define ENDDATA 302 +#define ASINTEGER 303 +#define DIRECTORY 304 +#define CD 305 +#define PWD 306 +#define RUN 307 +#define ENDSCRIPT 308 + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE YYSTYPE; +union YYSTYPE +{ +#line 92 "../../../../mcmc-jags/src/terminal/parser.yy" /* yacc.c:1909 */ + + int intval; + double val; + std::string *stringptr; + jags::ParseTree *ptree; + std::vector *pvec; + std::vector *vec; + std::vector *ivec; + +#line 170 "parser.hh" /* yacc.c:1909 */ +}; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + +extern YYSTYPE zzlval; + +int zzparse (void); + +#endif /* !YY_ZZ_PARSER_HH_INCLUDED */ diff -Nru jags-3.4.0/src/terminal/parser.yy jags-4.0.0/src/terminal/parser.yy --- jags-3.4.0/src/terminal/parser.yy 2012-11-30 08:52:08.000000000 +0000 +++ jags-4.0.0/src/terminal/parser.yy 2015-10-01 05:37:06.000000000 +0000 @@ -30,7 +30,7 @@ #include #include -#include +#include #include #include #include @@ -49,20 +49,20 @@ int zzlex(); int zzlex_destroy(); #define YYERROR_VERBOSE 0 - static Console *console; + static jags::Console *console; bool interactive; extern int command_buffer_count; - void setName(ParseTree *p, std::string *name); - std::map _data_table; + void setName(jags::ParseTree *p, std::string *name); + std::map _data_table; std::deque _dyn_lib; bool open_data_buffer(std::string const *name); bool open_command_buffer(std::string const *name); void return_to_main_buffer(); - void setMonitor(ParseTree const *var, int thin, std::string const &type); - void clearMonitor(ParseTree const *var, std::string const &type); - void doCoda (ParseTree const *var, std::string const &stem); + void setMonitor(jags::ParseTree const *var, int thin, std::string const &type); + void clearMonitor(jags::ParseTree const *var, std::string const &type); + void doCoda (jags::ParseTree const *var, std::string const &stem); void doAllCoda (std::string const &stem); - void doDump (std::string const &file, DumpType type, unsigned int chain); + void doDump (std::string const &file, jags::DumpType type, unsigned int chain); void dumpMonitors(std::string const &file, std::string const &type); void doSystem(std::string const *command); std::string ExpandFileName(char const *s); @@ -71,29 +71,30 @@ static void errordump(); static void updatestar(long niter, long refresh, int width); static void adaptstar(long niter, long refresh, int width); - static void setParameters(ParseTree *p, ParseTree *param1); - static void setParameters(ParseTree *p, std::vector *parameters); - static void setParameters(ParseTree *p, ParseTree *param1, ParseTree *param2); + static void setParameters(jags::ParseTree *p, jags::ParseTree *param1); + static void setParameters(jags::ParseTree *p, std::vector *parameters); + static void setParameters(jags::ParseTree *p, jags::ParseTree *param1, jags::ParseTree *param2); static void loadModule(std::string const &name); static void unloadModule(std::string const &name); static void dumpSamplers(std::string const &file); - static void delete_pvec(std::vector *); - static void print_unused_variables(std::map const &table, bool data); - static void listFactories(FactoryType type); - static void setFactory(std::string const &name, FactoryType type, + static void delete_pvec(std::vector *); + static void print_unused_variables(std::map const &table, bool data); + static void listFactories(jags::FactoryType type); + static void setFactory(std::string const &name, jags::FactoryType type, std::string const &status); + static void setSeed(unsigned int seed); static bool Jtry(bool ok); %} %defines -%name-prefix="zz" +%name-prefix "zz" %union { int intval; double val; std::string *stringptr; - ParseTree *ptree; - std::vector *pvec; + jags::ParseTree *ptree; + std::vector *pvec; std::vector *vec; std::vector *ivec; } @@ -135,6 +136,7 @@ %token RNGTOK %token FACTORY; %token FACTORIES; +%token SEED; %token LIST %token STRUCTURE @@ -205,6 +207,7 @@ | samplers_to | list_factories | set_factory +| set_seed ; model: MODEL IN file_name { @@ -239,7 +242,7 @@ ; data_to: DATA TO file_name { - doDump(*$3, DUMP_DATA, 1); + doDump(*$3, jags::DUMP_DATA, 1); delete $3; } ; @@ -264,7 +267,7 @@ parameters_in: parameters r_assignment_list ENDDATA { - std::map parameter_table; + std::map parameter_table; std::string rngname; readRData($2, parameter_table, rngname); delete_pvec($2); @@ -290,7 +293,7 @@ } | parameters r_assignment_list ENDDATA ',' CHAIN '(' INT ')' { - std::map parameter_table; + std::map parameter_table; std::string rngname; readRData($2, parameter_table, rngname); delete $2; @@ -306,11 +309,11 @@ ; parameters_to: PARAMETERS TO file_name { - doDump(*$3, DUMP_PARAMETERS, 1); + doDump(*$3, jags::DUMP_PARAMETERS, 1); delete $3; } | PARAMETERS TO file_name ',' CHAIN '(' INT ')' { - doDump(*$3, DUMP_PARAMETERS, $7); + doDump(*$3, jags::DUMP_PARAMETERS, $7); delete $3; } ; @@ -375,16 +378,16 @@ ; var: NAME { - $$ = new ParseTree(P_VAR); setName($$, $1); + $$ = new jags::ParseTree(jags::P_VAR); setName($$, $1); } | NAME '[' range_list ']' { - $$ = new ParseTree(P_VAR); setName($$, $1); + $$ = new jags::ParseTree(jags::P_VAR); setName($$, $1); setParameters($$, $3); } ; range_list: range_element { - $$ = new std::vector(1, $1); + $$ = new std::vector(1, $1); } | range_list ',' range_element { $$=$1; $$->push_back($3); @@ -392,15 +395,15 @@ ; range_element: index { - $$ = new ParseTree(P_RANGE); setParameters($$, $1); + $$ = new jags::ParseTree(jags::P_RANGE); setParameters($$, $1); } | index ':' index { - $$ = new ParseTree(P_RANGE); setParameters($$, $1, $3); + $$ = new jags::ParseTree(jags::P_RANGE); setParameters($$, $1, $3); } ; /* FIXME: Use integer value here */ -index: INT {$$ = new ParseTree(P_VALUE); $$->setValue($1);} +index: INT {$$ = new jags::ParseTree(jags::P_VALUE); $$->setValue($1);} ; monitor: monitor_set @@ -493,46 +496,52 @@ list_factories: LIST FACTORIES ',' TYPE '(' SAMPLER ')' { - listFactories(SAMPLER_FACTORY); + listFactories(jags::SAMPLER_FACTORY); } | LIST FACTORIES ',' TYPE '(' RNGTOK ')' { - listFactories(RNG_FACTORY); + listFactories(jags::RNG_FACTORY); } | LIST FACTORIES ',' TYPE '(' MONITOR ')' { - listFactories(MONITOR_FACTORY); + listFactories(jags::MONITOR_FACTORY); } ; set_factory: SET FACTORY STRING NAME ',' TYPE '(' SAMPLER ')' { - setFactory(*$3, SAMPLER_FACTORY, *$4); + setFactory(*$3, jags::SAMPLER_FACTORY, *$4); delete $3; delete $4; } | SET FACTORY NAME NAME ',' TYPE '(' RNGTOK ')' { - setFactory(*$3, RNG_FACTORY, *$4); + setFactory(*$3, jags::RNG_FACTORY, *$4); delete $3; delete $4; } | SET FACTORY NAME NAME ',' TYPE '(' MONITOR ')' { - setFactory(*$3, MONITOR_FACTORY, *$4); + setFactory(*$3, jags::MONITOR_FACTORY, *$4); delete $3; delete $4; } ; +set_seed: SET SEED INT +{ + setSeed($3); +} +; + /* Rules for scanning dumped R datasets */ r_assignment_list: r_assignment { - $$ = new std::vector(1, $1); + $$ = new std::vector(1, $1); } | r_assignment_list r_assignment { $$ = $1; $$->push_back($2); @@ -546,14 +555,14 @@ $$ = $3; setName($$, $1); } | r_name ARROW r_collection { - $$ = new ParseTree(P_ARRAY); + $$ = new jags::ParseTree(jags::P_ARRAY); setName($$, $1); setParameters($$, $3); } | r_name ARROW STRING { /* Allow this for setting the NAME of the random number generator */ - $$ = new ParseTree(P_VAR); setName($$, $1); - ParseTree *p = new ParseTree(P_VAR); setName(p, $3); + $$ = new jags::ParseTree(jags::P_VAR); setName($$, $1); + jags::ParseTree *p = new jags::ParseTree(jags::P_VAR); setName(p, $3); setParameters($$, p); } ; @@ -566,14 +575,14 @@ } r_structure: STRUCTURE '(' r_collection ',' r_attribute_list ')' { - $$ = new ParseTree(P_ARRAY); + $$ = new jags::ParseTree(jags::P_ARRAY); if ($5) setParameters($$, $3, $5); else setParameters($$, $3); } | STRUCTURE '(' r_collection ')' { - $$ = new ParseTree(P_ARRAY); + $$ = new jags::ParseTree(jags::P_ARRAY); setParameters($$, $3); } ; @@ -602,21 +611,21 @@ ; r_value_collection: r_value { - $$ = new ParseTree(P_VECTOR); + $$ = new jags::ParseTree(jags::P_VECTOR); setParameters($$, $1); } | 'c' '(' r_value_list ')' { - $$ = new ParseTree(P_VECTOR); + $$ = new jags::ParseTree(jags::P_VECTOR); setParameters($$, $3); } ; -r_value_list: r_value {$$ = new std::vector(1, $1); } +r_value_list: r_value {$$ = new std::vector(1, $1); } | r_value_list ',' r_value {$$ = $1; $$->push_back($3);} ; -r_value: DOUBLE {$$ = new ParseTree(P_VALUE); $$->setValue($1);} -| NA {$$ = new ParseTree(P_VALUE); $$->setValue(JAGS_NA);} +r_value: DOUBLE {$$ = new jags::ParseTree(jags::P_VALUE); $$->setValue($1);} +| NA {$$ = new jags::ParseTree(jags::P_VALUE); $$->setValue(JAGS_NA);} ; /* Rules for parsing generic attributes. We don't want to do anything @@ -722,7 +731,7 @@ return 0; } -static Range getRange(ParseTree const *var) +static jags::Range getRange(jags::ParseTree const *var) { /* Blank arguments, e.g. foo[] or bar[,1] are not allowed. @@ -731,7 +740,7 @@ std::vector ind_lower(size), ind_upper(size); for (unsigned int i = 0; i < size; ++i) { - ParseTree const *range_element = var->parameters()[i]; + jags::ParseTree const *range_element = var->parameters()[i]; switch(range_element->parameters().size()) { case 1: ind_lower[i] = (int) (range_element->parameters()[0]->value() + 1.0E-6); @@ -746,15 +755,15 @@ break; } } - return Range(ind_lower, ind_upper); + return jags::SimpleRange(ind_lower, ind_upper); } -void setMonitor(ParseTree const *var, int thin, std::string const &type) +void setMonitor(jags::ParseTree const *var, int thin, std::string const &type) { std::string const &name = var->name(); if (var->parameters().empty()) { /* Requesting the whole node */ - console->setMonitor(name, Range(), thin, type); + console->setMonitor(name, jags::Range(), thin, type); } else { /* Requesting subset of a multivariate node */ @@ -762,12 +771,12 @@ } } -void clearMonitor(ParseTree const *var, std::string const &type) +void clearMonitor(jags::ParseTree const *var, std::string const &type) { std::string const &name = var->name(); if (var->parameters().empty()) { /* Requesting the whole node */ - console->clearMonitor(name, Range(), type); + console->clearMonitor(name, jags::Range(), type); } else { /* Requesting subset of a multivariate node */ @@ -780,18 +789,18 @@ console->coda(stem); } -void doCoda (ParseTree const *var, std::string const &stem) +void doCoda (jags::ParseTree const *var, std::string const &stem) { //FIXME: Allow list of several nodes - std::vector > dmp; + std::vector > dmp; if (var->parameters().empty()) { /* Requesting the whole node */ - dmp.push_back(std::pair(var->name(), Range())); + dmp.push_back(std::pair(var->name(), jags::Range())); } else { /* Requesting subset of a multivariate node */ - dmp.push_back(std::pair(var->name(), getRange(var))); + dmp.push_back(std::pair(var->name(), getRange(var))); } console->coda(dmp, stem); } @@ -822,9 +831,9 @@ } } -void doDump(std::string const &file, DumpType type, unsigned int chain) +void doDump(std::string const &file, jags::DumpType type, unsigned int chain) { - std::map data_table; + std::map data_table; std::string rng_name; if (!console->dumpState(data_table, rng_name, type, chain)) { return; @@ -841,10 +850,10 @@ out << "`.RNG.name` <- \"" << rng_name << "\"\n"; } - for (std::map::const_iterator p = data_table.begin(); + for (std::map::const_iterator p = data_table.begin(); p != data_table.end(); ++p) { std::string const &name = p->first; - SArray const &sarray = p->second; + jags::SArray const &sarray = p->second; std::vector const &value = sarray.value(); long length = sarray.length(); out << "`" << name << "` <- " << std::endl; @@ -894,7 +903,7 @@ void dumpMonitors(std::string const &file, std::string const &type) { - std::map data_table; + std::map data_table; if (!console->dumpMonitors(data_table, type, false)) { return; @@ -909,10 +918,10 @@ out << "`" << type << "` <-\nstructure(list("; - std::map::const_iterator p; + std::map::const_iterator p; for (p = data_table.begin(); p != data_table.end(); ++p) { std::string const &name = p->first; - SArray const &sarray = p->second; + jags::SArray const &sarray = p->second; std::vector const &value = sarray.value(); long length = sarray.length(); @@ -990,7 +999,7 @@ out.close(); } -void setParameters(ParseTree *p, std::vector *parameters) +void setParameters(jags::ParseTree *p, std::vector *parameters) { /* The parser dynamically allocates vectors of (pointers to) @@ -1001,29 +1010,29 @@ delete parameters; } -void setParameters(ParseTree *p, ParseTree *param1) +void setParameters(jags::ParseTree *p, jags::ParseTree *param1) { /* Wrapper function that creates a vector containing param1 - to be passed to ParseTree::setParameters. + to be passed to jags::ParseTree::setParameters. */ - std::vector parameters(1, param1); + std::vector parameters(1, param1); p->setParameters(parameters); } -void setParameters(ParseTree *p, ParseTree *param1, ParseTree *param2) +void setParameters(jags::ParseTree *p, jags::ParseTree *param1, jags::ParseTree *param2) { /* Wrapper function that creates a vector containing param1 - and param2, to be passed to ParseTree::setParameters + and param2, to be passed to jags::ParseTree::setParameters */ - std::vector parameters; + std::vector parameters; parameters.push_back(param1); parameters.push_back(param2); p->setParameters(parameters); } -void setName(ParseTree *p, std::string *name) +void setName(jags::ParseTree *p, std::string *name) { p->setName(*name); delete name; @@ -1038,7 +1047,7 @@ std::cout << "Dumping chain " << i << " at iteration " << console->iter() << " to file " << fname.str() << std::endl; - doDump(fname.str(), DUMP_ALL, i); + doDump(fname.str(), jags::DUMP_ALL, i); fname.str(""); } } @@ -1135,11 +1144,11 @@ static void adaptstar(long niter, long refresh, int width) { - std::cout << "Adapting " << niter << std::endl; if (!console->isAdapting()) { - std::cerr << "ERROR: Model is not in adaptive mode\n"; + std::cerr << "Adaptation skipped: model is not in adaptive mode.\n"; return; } + std::cout << "Adapting " << niter << std::endl; bool status = true; if (refresh == 0) { @@ -1150,6 +1159,7 @@ } if (!status) { std::cerr << "Adaptation incomplete\n"; + return; } else { std::cerr << "Adaptation successful\n"; @@ -1208,14 +1218,14 @@ else { std::cout << ": ok" << std::endl; _dyn_lib.push_front(mod); - Console::loadModule(name); + jags::Console::loadModule(name); } } static void unloadModule(std::string const &name) { std::cout << "Unloading module: " << name << std::endl; - Console::unloadModule(name); + jags::Console::unloadModule(name); } int main (int argc, char **argv) @@ -1241,7 +1251,7 @@ interactive = true; } -#ifndef WIN32 +#ifndef _WIN32 /* - Allows emulation of dynamic loading on platforms that do not support it by preloading modules. @@ -1275,7 +1285,7 @@ loadModule("basemod"); loadModule("bugs"); - console = new Console(std::cout, std::cerr); + console = new jags::Console(std::cout, std::cerr); zzparse(); zzlex_destroy(); @@ -1285,9 +1295,9 @@ } //Unload modules - std::vector mods = Console::listModules(); + std::vector mods = jags::Console::listModules(); for (unsigned int i = 0; i < mods.size(); ++i) { - Console::unloadModule(mods[i]); + jags::Console::unloadModule(mods[i]); } delete console; //Release dynamic libraries. @@ -1355,7 +1365,7 @@ out.close(); } -static void delete_pvec(std::vector *pv) +static void delete_pvec(std::vector *pv) { for (unsigned int i = 0; i < pv->size(); ++i) { delete (*pv)[i]; @@ -1363,11 +1373,11 @@ delete pv; } -static void print_unused_variables(std::map const &table, +static void print_unused_variables(std::map const &table, bool data) { std::vector supplied_vars; - for (std::map::const_iterator p = table.begin(); + for (std::map::const_iterator p = table.begin(); p != table.end(); ++p) { supplied_vars.push_back(p->first); @@ -1427,10 +1437,10 @@ std::system(command->c_str()); } -void listFactories(FactoryType type) +void listFactories(jags::FactoryType type) { std::vector > faclist = - Console::listFactories(type); + jags::Console::listFactories(type); std::vector >::const_iterator p; unsigned int max_strlen = 0; @@ -1464,19 +1474,29 @@ } } -void setFactory(std::string const &name, FactoryType type, +void setFactory(std::string const &name, jags::FactoryType type, std::string const &status) { if (status == "on") { - Console::setFactoryActive(name, type, true); + jags::Console::setFactoryActive(name, type, true); } else if (status == "off") { - Console::setFactoryActive(name, type, false); + jags::Console::setFactoryActive(name, type, false); } else { std::cout << "status should be \"on\" or \"off\""; } } + +void setSeed(unsigned int seed) +{ + if (seed == 0) { + std::cout << "seed must be non-zero"; + } + else { + jags::Console::setRNGSeed(seed); + } +} bool Jtry(bool ok) { diff -Nru jags-3.4.0/src/terminal/ReadData.cc jags-4.0.0/src/terminal/ReadData.cc --- jags-3.4.0/src/terminal/ReadData.cc 2012-06-21 07:32:16.000000000 +0000 +++ jags-4.0.0/src/terminal/ReadData.cc 2015-02-22 08:33:06.000000000 +0000 @@ -13,9 +13,16 @@ using std::string; using std::vector; -bool readRData(std::vector const *array_list, - std::map &table, - std::string &rngname) +using jags::SArray; +using jags::ParseTree; +using jags::P_VAR; +using jags::P_VECTOR; +using jags::P_ARRAY; +using jags::P_RANGE; + +bool readRData(vector const *array_list, + map &table, + string &rngname) { /* Check validity of expressions */ for (vector::const_iterator p = array_list->begin(); diff -Nru jags-3.4.0/src/terminal/ReadData.h jags-4.0.0/src/terminal/ReadData.h --- jags-3.4.0/src/terminal/ReadData.h 2011-07-18 13:33:22.000000000 +0000 +++ jags-4.0.0/src/terminal/ReadData.h 2015-02-22 08:33:06.000000000 +0000 @@ -6,8 +6,8 @@ #include #include -bool readRData(std::vector const *r_assignment_list, - std::map &table, +bool readRData(std::vector const *r_assignment_list, + std::map &table, std::string &rngname); #endif /* READ_DATA_H_ */ diff -Nru jags-3.4.0/src/terminal/scanner.cc jags-4.0.0/src/terminal/scanner.cc --- jags-3.4.0/src/terminal/scanner.cc 2013-08-30 11:52:57.000000000 +0000 +++ jags-4.0.0/src/terminal/scanner.cc 2015-09-27 11:57:03.000000000 +0000 @@ -27,7 +27,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 36 +#define YY_FLEX_SUBMINOR_VERSION 37 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -379,8 +379,8 @@ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 76 -#define YY_END_OF_BUFFER 77 +#define YY_NUM_RULES 77 +#define YY_END_OF_BUFFER 78 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -388,42 +388,43 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[261] = +static yyconst flex_int16_t yy_accept[263] = { 0, - 0, 0, 0, 0, 47, 47, 0, 0, 77, 76, - 50, 53, 76, 76, 76, 38, 39, 42, 35, 73, - 72, 73, 64, 43, 44, 76, 40, 72, 36, 73, - 37, 45, 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 52, 73, 72, - 62, 72, 72, 72, 72, 72, 47, 48, 55, 56, - 50, 0, 74, 0, 51, 0, 75, 73, 73, 64, - 72, 72, 61, 46, 59, 73, 41, 72, 13, 31, - 72, 72, 72, 72, 72, 72, 72, 3, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, - - 72, 4, 72, 72, 72, 52, 62, 72, 63, 66, - 72, 72, 0, 70, 72, 72, 47, 48, 48, 49, - 55, 61, 72, 59, 73, 0, 73, 72, 72, 72, - 72, 72, 72, 30, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 32, 22, 33, 72, 17, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, 72, 73, - 0, 72, 0, 73, 57, 57, 72, 72, 72, 25, - 72, 2, 29, 72, 72, 34, 27, 72, 72, 72, - 72, 72, 26, 72, 19, 16, 72, 72, 65, 67, - 72, 72, 72, 73, 60, 60, 58, 58, 12, 10, - - 18, 72, 72, 72, 5, 1, 72, 72, 72, 72, - 72, 72, 72, 72, 0, 69, 72, 60, 72, 72, - 72, 72, 72, 72, 72, 54, 28, 11, 72, 72, - 7, 72, 23, 72, 14, 8, 72, 20, 72, 72, - 72, 72, 15, 72, 21, 72, 72, 24, 72, 72, - 72, 72, 9, 6, 72, 0, 68, 0, 71, 0 + 0, 0, 0, 0, 48, 48, 0, 0, 78, 77, + 51, 54, 77, 77, 77, 39, 40, 43, 36, 74, + 73, 74, 65, 44, 45, 77, 41, 73, 37, 74, + 38, 46, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 53, 74, 73, + 63, 73, 73, 73, 73, 73, 48, 49, 56, 57, + 51, 0, 75, 0, 52, 0, 76, 74, 74, 65, + 73, 73, 62, 47, 60, 74, 42, 73, 13, 32, + 73, 73, 73, 73, 73, 73, 73, 3, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + + 73, 4, 73, 73, 73, 53, 63, 73, 64, 67, + 73, 73, 0, 71, 73, 73, 48, 49, 49, 50, + 56, 62, 73, 60, 74, 0, 74, 73, 73, 73, + 73, 73, 73, 31, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 33, 22, 34, 73, 73, 17, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 74, 0, 73, 0, 74, 58, 58, 73, 73, 73, + 26, 73, 2, 30, 73, 73, 35, 28, 73, 73, + 73, 73, 73, 25, 27, 73, 19, 16, 73, 73, + 66, 68, 73, 73, 73, 74, 61, 61, 59, 59, + + 12, 10, 18, 73, 73, 73, 5, 1, 73, 73, + 73, 73, 73, 73, 73, 73, 0, 70, 73, 61, + 73, 73, 73, 73, 73, 73, 73, 55, 29, 11, + 73, 73, 7, 73, 23, 73, 14, 8, 73, 20, + 73, 73, 73, 73, 15, 73, 21, 73, 73, 24, + 73, 73, 73, 73, 9, 6, 73, 0, 69, 0, + 72, 0 } ; static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, + 1, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 5, 6, 1, 1, 1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 16, @@ -458,247 +459,247 @@ 1, 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 1, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 } ; -static yyconst flex_int16_t yy_base[272] = +static yyconst flex_int16_t yy_base[274] = { 0, - 0, 0, 51, 96, 281, 272, 276, 275, 276, 1125, - 53, 1125, 270, 251, 242, 1125, 1125, 1125, 1125, 42, - 46, 231, 52, 1125, 1125, 227, 1125, 57, 1125, 0, - 1125, 1125, 65, 74, 131, 89, 98, 104, 119, 115, - 130, 142, 150, 149, 169, 168, 183, 227, 55, 216, - 219, 221, 212, 89, 222, 90, 0, 64, 0, 1125, - 80, 218, 1125, 213, 1125, 207, 1125, 0, 190, 137, - 0, 163, 222, 1125, 236, 82, 1125, 232, 233, 235, + 0, 0, 51, 96, 298, 294, 298, 288, 282, 1126, + 53, 1126, 274, 275, 269, 1126, 1126, 1126, 1126, 42, + 46, 265, 52, 1126, 1126, 241, 1126, 57, 1126, 0, + 1126, 1126, 65, 74, 131, 89, 98, 104, 119, 115, + 130, 142, 150, 149, 169, 168, 183, 246, 55, 216, + 219, 221, 212, 89, 222, 90, 0, 64, 0, 1126, + 80, 236, 1126, 237, 1126, 223, 1126, 0, 207, 137, + 0, 163, 222, 1126, 236, 82, 1126, 232, 233, 235, 238, 241, 253, 264, 267, 266, 273, 288, 290, 291, 306, 313, 320, 321, 332, 339, 346, 343, 357, 360, - 362, 365, 379, 381, 391, 194, 420, 398, 0, 408, - 416, 426, 99, 1125, 427, 427, 0, 130, 142, 1125, - 0, 448, 95, 453, 112, 171, 164, 446, 456, 449, + 362, 365, 379, 381, 391, 213, 420, 398, 0, 408, + 416, 426, 99, 1126, 427, 427, 0, 130, 142, 1126, + 0, 448, 95, 453, 112, 198, 190, 446, 456, 449, 451, 470, 473, 475, 478, 480, 481, 488, 500, 502, - 511, 510, 513, 516, 521, 524, 534, 535, 542, 545, - 553, 556, 568, 563, 574, 566, 581, 587, 588, 128, - 163, 162, 152, 151, 147, 115, 595, 598, 596, 613, - 619, 620, 621, 619, 635, 642, 649, 650, 660, 663, - 665, 665, 675, 686, 688, 689, 691, 694, 696, 697, - 715, 748, 721, 108, 100, 99, 80, 47, 729, 730, - - 738, 744, 758, 739, 762, 769, 768, 781, 779, 787, - 794, 793, 797, 808, 156, 1125, 811, 44, 816, 818, - 830, 837, 838, 848, 855, 854, 856, 857, 862, 863, - 881, 884, 886, 887, 894, 892, 911, 913, 916, 921, - 930, 938, 940, 947, 948, 949, 962, 970, 971, 973, - 980, 1009, 995, 998, 1027, 194, 1125, 217, 1125, 1125, - 1079, 1084, 1089, 1094, 1099, 1101, 1103, 1108, 1113, 1117, - 1119 + 511, 510, 513, 516, 521, 524, 534, 536, 546, 553, + 557, 564, 566, 569, 567, 585, 598, 588, 590, 599, + 128, 181, 171, 164, 163, 162, 152, 593, 617, 620, + 607, 622, 625, 631, 641, 649, 656, 663, 664, 674, + 677, 679, 679, 689, 697, 703, 708, 710, 711, 713, + 716, 718, 735, 767, 740, 151, 147, 115, 108, 100, + + 741, 748, 749, 763, 770, 758, 776, 781, 786, 796, + 786, 800, 809, 814, 811, 814, 156, 1126, 824, 99, + 832, 833, 847, 848, 858, 864, 871, 872, 874, 877, + 879, 896, 882, 901, 903, 906, 920, 911, 925, 928, + 933, 938, 946, 947, 955, 956, 965, 973, 974, 979, + 980, 982, 987, 1034, 1005, 1008, 1041, 194, 1126, 217, + 1126, 1126, 1093, 1097, 1101, 1105, 1109, 92, 59, 1113, + 1117, 1121, 56 } ; -static yyconst flex_int16_t yy_def[272] = +static yyconst flex_int16_t yy_def[274] = { 0, - 260, 1, 1, 1, 261, 261, 262, 262, 260, 260, - 260, 260, 263, 264, 265, 260, 260, 260, 260, 266, - 267, 266, 266, 260, 260, 260, 260, 267, 260, 266, - 260, 260, 267, 267, 267, 267, 267, 267, 267, 35, - 35, 35, 35, 35, 35, 35, 35, 260, 266, 267, - 266, 267, 35, 35, 35, 45, 268, 269, 270, 260, - 260, 263, 260, 264, 260, 265, 260, 266, 266, 266, - 271, 45, 271, 260, 266, 266, 260, 45, 45, 45, + 262, 1, 1, 1, 263, 263, 264, 264, 262, 262, + 262, 262, 265, 266, 267, 262, 262, 262, 262, 268, + 269, 268, 268, 262, 262, 262, 262, 269, 262, 268, + 262, 262, 269, 269, 269, 269, 269, 269, 269, 35, + 35, 35, 35, 35, 35, 35, 35, 262, 268, 269, + 268, 269, 35, 35, 35, 45, 270, 271, 272, 262, + 262, 265, 262, 266, 262, 267, 262, 268, 268, 268, + 273, 45, 273, 262, 268, 268, 262, 45, 45, 45, 45, 45, 35, 45, 45, 45, 45, 45, 45, 45, 35, 35, 35, 35, 35, 35, 35, 45, 45, 45, - 45, 45, 45, 35, 35, 260, 266, 35, 266, 35, - 35, 35, 260, 260, 35, 45, 268, 269, 269, 260, - 270, 266, 271, 266, 266, 260, 266, 45, 45, 45, + 45, 45, 45, 35, 35, 262, 268, 35, 268, 35, + 35, 35, 262, 262, 35, 45, 270, 271, 271, 262, + 272, 268, 273, 268, 268, 262, 268, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 35, 45, + 45, 45, 45, 45, 45, 45, 45, 35, 35, 35, + 45, 45, 45, 35, 45, 45, 45, 45, 45, 45, + 268, 262, 273, 262, 268, 262, 268, 45, 45, 45, + 45, 45, 45, 45, 35, 35, 35, 35, 35, 45, + 45, 45, 35, 35, 35, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 268, 262, 273, 262, 268, + + 45, 45, 45, 35, 35, 45, 45, 45, 35, 35, + 45, 45, 45, 35, 45, 45, 262, 262, 45, 268, + 45, 45, 35, 35, 35, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 35, 45, 45, 45, 45, 45, 45, 266, - 260, 271, 260, 266, 260, 266, 45, 45, 45, 45, - 45, 45, 45, 35, 35, 35, 35, 35, 45, 45, - 45, 35, 35, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 266, 260, 271, 260, 266, 45, 45, - - 45, 35, 35, 45, 45, 45, 35, 35, 45, 45, - 45, 35, 45, 45, 260, 260, 45, 266, 45, 45, - 35, 35, 35, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 260, 260, 260, 260, 0, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260 + 45, 45, 45, 45, 45, 45, 45, 262, 262, 262, + 262, 0, 262, 262, 262, 262, 262, 262, 262, 262, + 262, 262, 262 } ; -static yyconst flex_int16_t yy_nxt[1179] = +static yyconst flex_int16_t yy_nxt[1180] = { 0, 10, 11, 12, 11, 13, 14, 15, 16, 17, 18, 10, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 28, 28, 28, 28, 28, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 28, 28, 39, 40, 41, 42, 28, 43, 44, 45, 46, 47, 28, - 28, 28, 28, 48, 61, 69, 61, 70, 71, 218, - 71, 73, 198, 49, 50, 75, 51, 70, 69, 71, + 28, 28, 28, 48, 61, 69, 61, 70, 71, 71, + 71, 73, 72, 49, 50, 75, 51, 70, 69, 71, 107, 71, 71, 119, 71, 76, 52, 71, 120, 71, 71, 61, 53, 61, 54, 71, 71, 76, 71, 71, - 113, 55, 126, 71, 127, 197, 114, 56, 48, 78, + 113, 55, 126, 71, 127, 68, 114, 56, 48, 78, - 113, 71, 71, 71, 71, 161, 114, 162, 49, 50, - 71, 51, 71, 71, 196, 195, 71, 71, 71, 71, - 84, 52, 163, 218, 164, 79, 71, 53, 85, 54, - 166, 71, 71, 71, 71, 87, 55, 116, 161, 260, - 194, 72, 56, 71, 260, 71, 71, 71, 86, 72, - 75, 119, 70, 72, 89, 72, 120, 215, 90, 71, - 76, 88, 165, 216, 72, 80, 198, 197, 72, 81, - 72, 82, 76, 91, 83, 92, 72, 196, 195, 166, - 72, 93, 72, 72, 72, 72, 165, 72, 72, 72, - 72, 95, 72, 72, 72, 256, 106, 96, 72, 94, - - 97, 257, 72, 72, 98, 122, 101, 72, 72, 72, - 72, 102, 72, 67, 72, 65, 99, 72, 258, 103, - 100, 72, 63, 72, 259, 104, 72, 105, 71, 106, - 71, 73, 75, 71, 107, 71, 71, 73, 108, 77, - 74, 110, 76, 109, 71, 123, 78, 111, 67, 71, - 72, 124, 72, 65, 76, 72, 72, 123, 112, 125, + 113, 71, 71, 71, 71, 162, 114, 163, 49, 50, + 71, 51, 71, 71, 220, 200, 71, 71, 71, 71, + 84, 52, 164, 199, 165, 79, 71, 53, 85, 54, + 198, 71, 71, 71, 71, 87, 55, 116, 162, 262, + 196, 72, 56, 71, 262, 71, 71, 71, 86, 72, + 75, 119, 70, 72, 89, 72, 120, 217, 90, 71, + 76, 88, 197, 218, 72, 80, 220, 167, 72, 81, + 72, 82, 76, 91, 83, 92, 72, 166, 200, 199, + 72, 93, 72, 72, 72, 72, 198, 72, 72, 72, + 72, 95, 72, 72, 72, 258, 197, 96, 72, 94, + + 97, 259, 72, 72, 98, 167, 101, 72, 72, 72, + 72, 102, 72, 166, 72, 106, 99, 72, 260, 103, + 100, 72, 122, 72, 261, 104, 72, 105, 71, 67, + 71, 73, 75, 71, 107, 71, 71, 73, 108, 65, + 63, 110, 76, 109, 71, 123, 78, 111, 106, 71, + 72, 124, 72, 77, 76, 72, 72, 123, 112, 125, 72, 115, 72, 128, 72, 90, 72, 72, 72, 129, - 72, 125, 72, 72, 63, 260, 130, 60, 60, 72, - 72, 58, 72, 72, 72, 72, 72, 131, 72, 72, - 58, 72, 72, 72, 132, 72, 72, 72, 72, 72, - - 260, 72, 72, 260, 72, 135, 136, 260, 72, 260, - 260, 133, 134, 72, 72, 72, 260, 72, 72, 72, - 72, 72, 139, 72, 72, 72, 72, 137, 260, 260, - 260, 260, 260, 260, 260, 72, 138, 72, 72, 72, - 140, 72, 72, 260, 72, 260, 72, 72, 141, 72, - 260, 142, 260, 72, 72, 144, 72, 260, 72, 72, - 72, 72, 260, 72, 72, 143, 72, 260, 260, 145, - 72, 260, 72, 72, 72, 72, 260, 72, 72, 72, - 72, 146, 72, 260, 72, 260, 72, 147, 72, 72, - 148, 72, 149, 72, 72, 72, 72, 72, 260, 260, - - 72, 151, 260, 260, 72, 260, 150, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 260, 260, 72, - 260, 153, 260, 152, 72, 154, 72, 260, 260, 72, - 72, 72, 72, 75, 72, 107, 72, 155, 72, 157, - 156, 72, 72, 76, 109, 260, 72, 260, 72, 260, - 72, 72, 260, 260, 72, 76, 72, 260, 72, 72, - 72, 72, 149, 122, 72, 72, 72, 72, 124, 72, - 72, 160, 159, 158, 72, 260, 125, 72, 72, 260, - 169, 72, 170, 160, 72, 260, 72, 72, 125, 260, - 167, 72, 260, 72, 260, 168, 72, 72, 72, 260, - - 72, 72, 72, 72, 172, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 171, 72, 72, 72, 260, 72, - 72, 72, 72, 72, 72, 173, 72, 174, 175, 72, - 260, 72, 72, 72, 177, 176, 260, 178, 72, 72, - 72, 180, 72, 72, 181, 72, 72, 72, 72, 72, - 179, 72, 72, 72, 260, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 260, 72, 72, 72, 182, 260, - 72, 72, 72, 183, 72, 72, 72, 72, 72, 72, - 190, 186, 184, 72, 188, 185, 72, 72, 72, 260, - - 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, - 72, 187, 72, 72, 72, 189, 72, 72, 72, 72, - 191, 72, 72, 72, 260, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 192, 72, 193, 260, 72, 72, - 200, 201, 199, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, 202, 72, - 72, 260, 203, 260, 72, 260, 72, 72, 72, 72, - 72, 72, 72, 72, 204, 72, 72, 260, 72, 260, - 72, 205, 72, 72, 72, 72, 260, 72, 72, 72, - 206, 72, 72, 72, 72, 72, 72, 260, 72, 72, - - 72, 260, 208, 72, 260, 210, 209, 207, 72, 72, + 72, 125, 72, 72, 74, 67, 130, 65, 63, 72, + 72, 262, 72, 72, 72, 72, 72, 131, 72, 72, + 60, 72, 72, 72, 132, 72, 72, 72, 72, 72, + + 60, 72, 72, 58, 72, 135, 136, 58, 72, 262, + 262, 133, 134, 72, 72, 72, 262, 72, 72, 72, + 72, 72, 139, 72, 72, 72, 72, 137, 262, 262, + 262, 262, 262, 262, 262, 72, 138, 72, 72, 72, + 140, 72, 72, 262, 72, 262, 72, 72, 141, 72, + 262, 142, 262, 72, 72, 144, 72, 262, 72, 72, + 72, 72, 262, 72, 72, 143, 72, 262, 262, 145, + 72, 262, 72, 72, 72, 72, 262, 72, 148, 72, + 72, 146, 72, 262, 72, 262, 72, 147, 72, 72, + 149, 72, 150, 72, 72, 72, 72, 72, 262, 262, + + 72, 152, 262, 262, 72, 262, 151, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 262, 262, 72, + 262, 154, 262, 153, 72, 155, 72, 262, 262, 72, + 72, 72, 72, 75, 72, 107, 72, 156, 72, 158, + 157, 72, 72, 76, 109, 262, 72, 262, 72, 262, + 72, 72, 262, 262, 72, 76, 72, 262, 72, 72, + 72, 72, 150, 122, 72, 72, 72, 72, 124, 72, + 72, 161, 160, 159, 72, 262, 125, 72, 72, 262, + 170, 72, 171, 161, 72, 262, 72, 72, 125, 262, + 168, 72, 262, 72, 262, 169, 72, 72, 72, 262, + + 72, 72, 72, 72, 173, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 172, 72, 72, 72, 262, 72, + 72, 72, 72, 72, 72, 174, 72, 175, 176, 72, + 262, 72, 72, 72, 178, 177, 262, 179, 72, 72, + 72, 181, 72, 72, 182, 72, 72, 72, 72, 72, + 180, 72, 72, 72, 262, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 262, 72, 72, 72, + 184, 72, 72, 262, 72, 72, 72, 262, 183, 72, + 72, 72, 262, 262, 72, 72, 72, 72, 72, 72, + 262, 72, 72, 72, 185, 72, 72, 72, 190, 72, + + 262, 188, 72, 72, 186, 262, 187, 72, 72, 72, + 262, 72, 189, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 192, 72, 72, 72, 191, 193, 72, 72, + 72, 262, 72, 72, 72, 72, 72, 194, 72, 72, + 201, 72, 72, 262, 72, 72, 72, 195, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 202, + 72, 204, 72, 262, 72, 203, 72, 72, 72, 72, + 262, 72, 72, 72, 262, 72, 72, 262, 72, 72, + 262, 72, 72, 72, 205, 262, 262, 72, 206, 72, + 72, 262, 72, 262, 72, 207, 72, 72, 72, 72, + + 262, 72, 72, 72, 208, 72, 72, 72, 72, 72, + 72, 262, 72, 72, 72, 262, 210, 72, 262, 212, + 211, 209, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 262, 72, 72, 262, 72, 213, 72, + 72, 72, 214, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 262, 72, 72, 72, 262, 72, 72, 72, + 215, 72, 72, 72, 72, 72, 72, 72, 217, 72, + 72, 72, 72, 219, 218, 72, 72, 216, 262, 72, + 72, 262, 72, 72, 72, 262, 72, 72, 72, 223, + 262, 72, 72, 72, 262, 72, 72, 72, 72, 72, + + 72, 72, 72, 221, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 222, 72, 72, 72, 262, + 72, 226, 262, 72, 72, 262, 72, 72, 72, 224, + 72, 72, 72, 72, 72, 227, 72, 72, 225, 72, + 72, 262, 72, 262, 72, 72, 230, 72, 229, 72, + 228, 72, 72, 262, 72, 72, 72, 72, 72, 72, + 72, 231, 72, 72, 72, 72, 262, 233, 72, 262, + 262, 232, 234, 262, 262, 72, 262, 262, 262, 72, + 72, 72, 72, 72, 235, 72, 72, 236, 72, 262, + 72, 72, 72, 237, 262, 72, 72, 262, 72, 72, + + 262, 72, 72, 72, 238, 72, 72, 72, 72, 72, + 72, 239, 72, 72, 241, 72, 240, 72, 72, 72, + 262, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 262, 243, 72, 72, 262, + 262, 72, 72, 72, 242, 244, 72, 72, 72, 262, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, - 72, 211, 212, 72, 72, 72, 72, 72, 72, 72, - 260, 72, 72, 72, 260, 72, 72, 72, 72, 72, - 72, 213, 72, 72, 72, 72, 72, 72, 72, 215, - 72, 260, 72, 260, 217, 216, 72, 214, 260, 260, - 72, 72, 72, 260, 72, 72, 72, 260, 72, 72, - 221, 260, 72, 72, 72, 260, 72, 72, 72, 72, - 72, 72, 72, 72, 219, 72, 72, 72, 260, 72, - 72, 260, 72, 72, 260, 72, 72, 72, 72, 72, - - 72, 72, 72, 220, 72, 260, 72, 260, 72, 72, - 72, 222, 260, 72, 224, 72, 72, 260, 72, 72, - 72, 72, 225, 223, 72, 72, 72, 227, 72, 72, - 72, 72, 228, 72, 72, 226, 72, 260, 72, 72, - 260, 72, 72, 72, 72, 72, 72, 72, 72, 72, - 260, 231, 260, 72, 260, 229, 260, 232, 230, 72, - 260, 260, 72, 72, 72, 72, 260, 72, 72, 233, - 234, 72, 72, 72, 260, 72, 72, 72, 72, 72, - 72, 72, 235, 72, 236, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 237, 260, 239, 72, 72, - - 238, 72, 72, 72, 72, 72, 72, 72, 72, 72, - 72, 240, 72, 72, 72, 72, 72, 72, 72, 241, - 260, 72, 72, 72, 260, 72, 242, 72, 72, 72, - 260, 72, 72, 72, 72, 72, 260, 72, 72, 72, - 243, 72, 72, 72, 72, 72, 244, 72, 72, 260, - 260, 72, 72, 246, 260, 260, 72, 260, 72, 245, - 72, 72, 72, 72, 72, 72, 247, 72, 72, 72, - 260, 72, 72, 72, 260, 72, 248, 72, 72, 72, - 72, 72, 72, 72, 251, 72, 260, 72, 260, 72, - 249, 72, 250, 72, 72, 72, 72, 252, 72, 72, - - 72, 72, 72, 260, 72, 72, 253, 260, 72, 72, - 256, 72, 260, 72, 260, 72, 257, 72, 72, 254, - 72, 72, 72, 260, 72, 255, 72, 72, 258, 72, - 72, 72, 260, 72, 259, 260, 260, 260, 260, 260, - 72, 260, 72, 260, 72, 72, 72, 260, 260, 72, - 260, 260, 260, 260, 260, 260, 72, 260, 72, 260, - 72, 260, 72, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 72, 260, 260, 260, 72, 57, - 57, 57, 57, 57, 59, 59, 59, 59, 59, 62, - 62, 62, 62, 62, 64, 64, 64, 64, 64, 66, - - 66, 66, 66, 66, 68, 68, 72, 72, 117, 117, - 260, 117, 117, 118, 118, 118, 118, 121, 260, 121, - 121, 121, 71, 71, 9, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260 + 246, 262, 72, 72, 72, 262, 245, 72, 72, 72, + 248, 72, 72, 72, 247, 72, 72, 72, 72, 72, + 72, 72, 72, 249, 72, 72, 72, 72, 262, 72, + 72, 72, 250, 72, 72, 262, 72, 72, 72, 251, + + 72, 252, 72, 72, 72, 72, 72, 72, 253, 254, + 72, 72, 72, 72, 72, 255, 72, 72, 72, 262, + 72, 72, 72, 262, 72, 72, 72, 72, 256, 72, + 72, 72, 257, 72, 72, 258, 72, 262, 72, 72, + 72, 259, 260, 72, 262, 262, 262, 262, 261, 262, + 262, 262, 72, 262, 262, 72, 72, 262, 262, 72, + 262, 262, 262, 262, 262, 72, 262, 262, 262, 72, + 262, 262, 72, 262, 262, 262, 72, 262, 262, 262, + 262, 72, 262, 262, 262, 72, 262, 262, 72, 262, + 262, 262, 72, 57, 57, 57, 57, 59, 59, 59, + + 59, 62, 62, 62, 62, 64, 64, 64, 64, 66, + 66, 66, 66, 117, 117, 262, 117, 118, 118, 118, + 118, 121, 262, 121, 121, 9, 262, 262, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 262, 262 } ; -static yyconst flex_int16_t yy_chk[1179] = +static yyconst flex_int16_t yy_chk[1180] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 11, 20, 11, 20, 21, 218, - 21, 21, 198, 3, 3, 23, 3, 23, 49, 28, + 1, 1, 1, 3, 11, 20, 11, 20, 21, 273, + 21, 21, 269, 3, 3, 23, 3, 23, 49, 28, 49, 28, 28, 58, 21, 23, 3, 33, 58, 33, 33, 61, 3, 61, 3, 28, 34, 23, 34, 34, - 54, 3, 76, 33, 76, 197, 54, 3, 4, 33, + 54, 3, 76, 33, 76, 268, 54, 3, 4, 33, 113, 36, 34, 36, 36, 123, 113, 123, 4, 4, - 37, 4, 37, 37, 196, 195, 38, 36, 38, 38, - 36, 4, 125, 194, 125, 34, 37, 4, 36, 4, - 166, 39, 38, 39, 39, 38, 4, 56, 160, 118, - 160, 56, 4, 35, 118, 35, 35, 39, 37, 40, - 70, 119, 70, 40, 40, 40, 119, 215, 40, 35, - 70, 39, 165, 215, 41, 35, 164, 163, 41, 35, - 41, 35, 70, 41, 35, 42, 42, 162, 161, 127, - 42, 43, 42, 44, 43, 42, 126, 44, 43, 44, - 43, 44, 44, 43, 72, 256, 106, 44, 72, 43, - - 45, 256, 46, 45, 45, 69, 46, 45, 46, 45, - 72, 46, 45, 66, 72, 64, 45, 47, 258, 46, - 45, 47, 62, 47, 258, 47, 47, 47, 50, 48, - 50, 50, 51, 52, 51, 52, 52, 73, 50, 26, - 22, 52, 51, 51, 50, 73, 53, 52, 15, 52, - 53, 75, 53, 14, 51, 53, 55, 73, 53, 75, + 37, 4, 37, 37, 220, 200, 38, 36, 38, 38, + 36, 4, 125, 199, 125, 34, 37, 4, 36, 4, + 198, 39, 38, 39, 39, 38, 4, 56, 161, 118, + 161, 56, 4, 35, 118, 35, 35, 39, 37, 40, + 70, 119, 70, 40, 40, 40, 119, 217, 40, 35, + 70, 39, 197, 217, 41, 35, 196, 167, 41, 35, + 41, 35, 70, 41, 35, 42, 42, 166, 165, 164, + 42, 43, 42, 44, 43, 42, 163, 44, 43, 44, + 43, 44, 44, 43, 72, 258, 162, 44, 72, 43, + + 45, 258, 46, 45, 45, 127, 46, 45, 46, 45, + 72, 46, 45, 126, 72, 106, 45, 47, 260, 46, + 45, 47, 69, 47, 260, 47, 47, 47, 50, 66, + 50, 50, 51, 52, 51, 52, 52, 73, 50, 64, + 62, 52, 51, 51, 50, 73, 53, 52, 48, 52, + 53, 75, 53, 26, 51, 53, 55, 73, 53, 75, 55, 55, 55, 78, 79, 55, 80, 78, 79, 81, - 80, 75, 82, 81, 13, 9, 82, 8, 7, 78, - 79, 6, 80, 78, 79, 81, 80, 83, 82, 81, - 5, 83, 82, 83, 83, 84, 83, 86, 85, 84, + 80, 75, 82, 81, 22, 15, 82, 14, 13, 78, + 79, 9, 80, 78, 79, 81, 80, 83, 82, 81, + 8, 83, 82, 83, 83, 84, 83, 86, 85, 84, - 0, 86, 85, 0, 87, 86, 87, 0, 87, 0, + 7, 86, 85, 6, 87, 86, 87, 5, 87, 0, 0, 84, 85, 86, 85, 84, 0, 86, 85, 88, 87, 89, 90, 88, 87, 89, 90, 88, 0, 0, 0, 0, 0, 0, 0, 88, 89, 89, 90, 88, @@ -726,74 +727,74 @@ 0, 136, 137, 140, 139, 138, 0, 140, 139, 138, 139, 142, 141, 139, 143, 142, 141, 144, 143, 140, 141, 144, 145, 140, 0, 146, 145, 142, 141, 146, - 143, 142, 141, 144, 143, 147, 148, 144, 145, 147, - 148, 146, 145, 149, 0, 146, 150, 149, 147, 0, - 150, 147, 148, 149, 151, 147, 148, 152, 151, 149, - 156, 152, 150, 149, 154, 151, 150, 156, 154, 0, - - 151, 156, 153, 152, 151, 155, 153, 152, 153, 155, - 154, 153, 157, 156, 154, 155, 157, 156, 158, 159, - 157, 155, 158, 159, 0, 155, 167, 169, 157, 168, - 167, 169, 157, 168, 158, 159, 159, 0, 158, 159, - 168, 169, 167, 169, 170, 168, 167, 169, 170, 168, - 171, 172, 173, 174, 171, 172, 173, 174, 171, 174, - 170, 0, 174, 0, 170, 0, 171, 172, 173, 175, - 171, 172, 173, 175, 175, 175, 176, 0, 175, 0, - 176, 175, 176, 177, 178, 176, 0, 177, 178, 177, - 178, 179, 177, 178, 180, 179, 181, 0, 180, 182, - - 181, 0, 180, 182, 0, 182, 181, 179, 182, 183, - 180, 179, 181, 183, 180, 183, 181, 184, 183, 185, - 186, 184, 187, 185, 186, 188, 187, 189, 190, 188, - 0, 189, 190, 184, 0, 185, 186, 184, 187, 185, - 186, 188, 187, 189, 190, 188, 191, 189, 190, 192, - 191, 0, 193, 0, 193, 192, 193, 191, 0, 0, - 199, 200, 191, 0, 199, 200, 191, 0, 193, 201, - 204, 0, 193, 201, 204, 0, 199, 200, 202, 192, - 199, 200, 202, 192, 202, 201, 204, 202, 0, 201, - 204, 0, 203, 205, 0, 192, 203, 205, 203, 192, - - 206, 203, 207, 203, 206, 0, 207, 0, 207, 205, - 209, 207, 0, 205, 209, 208, 206, 0, 210, 208, - 206, 208, 210, 208, 208, 211, 209, 212, 213, 211, - 209, 212, 213, 212, 210, 211, 212, 0, 210, 214, - 0, 211, 217, 214, 213, 211, 217, 219, 213, 220, - 0, 219, 0, 220, 0, 214, 0, 220, 217, 214, - 0, 0, 217, 219, 221, 220, 0, 219, 221, 220, - 221, 222, 223, 221, 0, 222, 223, 222, 223, 224, - 222, 223, 222, 224, 223, 226, 225, 227, 228, 226, - 225, 227, 228, 229, 230, 224, 0, 229, 230, 224, - - 225, 226, 225, 227, 228, 226, 225, 227, 228, 229, - 230, 230, 231, 229, 230, 232, 231, 233, 234, 232, - 0, 233, 234, 236, 0, 235, 234, 236, 231, 235, - 0, 232, 231, 233, 234, 232, 0, 233, 234, 236, - 235, 235, 237, 236, 238, 235, 237, 239, 238, 0, - 0, 239, 240, 239, 0, 0, 240, 0, 237, 238, - 238, 241, 237, 239, 238, 241, 240, 239, 240, 242, - 0, 243, 240, 242, 0, 243, 241, 241, 244, 245, - 246, 241, 244, 245, 246, 242, 0, 243, 0, 242, - 242, 243, 244, 247, 244, 245, 246, 247, 244, 245, - - 246, 248, 249, 0, 250, 248, 249, 0, 250, 247, - 252, 251, 0, 247, 0, 251, 252, 248, 249, 250, - 250, 248, 249, 0, 250, 251, 253, 251, 255, 254, - 253, 251, 0, 254, 255, 0, 0, 0, 0, 0, - 252, 0, 253, 0, 252, 254, 253, 0, 0, 254, - 0, 0, 0, 0, 0, 0, 252, 0, 255, 0, - 252, 0, 255, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 255, 0, 0, 0, 255, 261, - 261, 261, 261, 261, 262, 262, 262, 262, 262, 263, - 263, 263, 263, 263, 264, 264, 264, 264, 264, 265, - - 265, 265, 265, 265, 266, 266, 267, 267, 268, 268, - 0, 268, 268, 269, 269, 269, 269, 270, 0, 270, - 270, 270, 271, 271, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260 + 143, 142, 141, 144, 143, 147, 0, 144, 145, 147, + 148, 146, 145, 0, 148, 146, 148, 0, 147, 148, + 149, 147, 0, 0, 149, 147, 149, 150, 151, 149, + 0, 150, 151, 150, 150, 152, 150, 153, 155, 152, + + 0, 153, 155, 154, 151, 0, 152, 154, 151, 154, + 0, 152, 154, 153, 155, 152, 156, 153, 155, 158, + 156, 159, 157, 158, 168, 159, 156, 158, 168, 157, + 160, 0, 156, 157, 160, 158, 156, 159, 171, 158, + 168, 159, 171, 0, 168, 157, 160, 160, 169, 157, + 160, 170, 169, 172, 171, 170, 173, 172, 171, 169, + 173, 172, 174, 0, 169, 170, 174, 170, 169, 172, + 0, 170, 173, 172, 0, 175, 173, 0, 174, 175, + 0, 175, 174, 176, 175, 0, 0, 176, 176, 176, + 177, 0, 176, 0, 177, 176, 177, 178, 179, 177, + + 0, 178, 179, 178, 179, 180, 178, 179, 181, 180, + 182, 0, 181, 183, 182, 0, 181, 183, 0, 183, + 182, 180, 183, 184, 181, 180, 182, 184, 181, 184, + 182, 185, 184, 0, 186, 185, 0, 185, 186, 187, + 185, 188, 189, 187, 190, 188, 189, 191, 190, 192, + 186, 191, 0, 192, 186, 187, 0, 188, 189, 187, + 190, 188, 189, 191, 190, 192, 193, 191, 194, 192, + 193, 195, 201, 195, 194, 195, 201, 193, 0, 202, + 203, 0, 193, 202, 203, 0, 193, 195, 201, 206, + 0, 195, 201, 206, 0, 202, 203, 204, 194, 202, + + 203, 204, 194, 204, 205, 206, 204, 207, 205, 206, + 205, 207, 208, 205, 194, 205, 208, 211, 194, 0, + 209, 211, 0, 207, 209, 0, 209, 207, 208, 209, + 210, 212, 208, 211, 210, 212, 210, 211, 210, 210, + 213, 0, 215, 0, 213, 216, 215, 212, 214, 216, + 213, 212, 214, 0, 214, 219, 213, 214, 215, 219, + 213, 216, 215, 221, 222, 216, 0, 221, 222, 0, + 0, 219, 222, 0, 0, 219, 0, 0, 0, 221, + 222, 223, 224, 221, 222, 223, 224, 223, 224, 0, + 223, 224, 225, 224, 0, 226, 225, 0, 225, 226, + + 0, 225, 227, 228, 225, 229, 227, 228, 230, 229, + 231, 226, 230, 233, 231, 226, 227, 233, 227, 228, + 0, 229, 227, 228, 230, 229, 231, 232, 230, 233, + 231, 232, 234, 233, 235, 0, 234, 236, 235, 0, + 0, 236, 238, 232, 232, 236, 238, 232, 234, 0, + 235, 237, 234, 236, 235, 237, 239, 236, 238, 240, + 239, 0, 238, 240, 241, 0, 237, 237, 241, 242, + 241, 237, 239, 242, 240, 240, 239, 243, 244, 240, + 241, 243, 244, 242, 241, 242, 245, 246, 0, 242, + 245, 246, 243, 243, 244, 0, 247, 243, 244, 244, + + 247, 246, 245, 246, 248, 249, 245, 246, 248, 249, + 250, 251, 247, 252, 250, 251, 247, 252, 253, 0, + 248, 249, 253, 0, 248, 249, 250, 251, 252, 252, + 250, 251, 253, 252, 253, 254, 255, 0, 253, 256, + 255, 254, 257, 256, 0, 0, 0, 0, 257, 0, + 0, 0, 255, 0, 0, 256, 255, 0, 0, 256, + 0, 0, 0, 0, 0, 254, 0, 0, 0, 254, + 0, 0, 257, 0, 0, 0, 257, 0, 0, 0, + 0, 254, 0, 0, 0, 254, 0, 0, 257, 0, + 0, 0, 257, 263, 263, 263, 263, 264, 264, 264, + + 264, 265, 265, 265, 265, 266, 266, 266, 266, 267, + 267, 267, 267, 270, 270, 0, 270, 271, 271, 271, + 271, 272, 0, 272, 272, 262, 262, 262, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 262, 262 } ; static yy_state_type yy_last_accepting_state; @@ -810,14 +811,14 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *zztext; -#line 1 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 1 "../../../../mcmc-jags/src/terminal/scanner.ll" /* -*-C++-*- */ -#line 3 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 3 "../../../../mcmc-jags/src/terminal/scanner.ll" #include #include #include #include -#include "parser.h" +#include "parser.hh" std::vector file_stack; int command_buffer_count = 0; @@ -828,7 +829,7 @@ -#line 832 "scanner.cc" +#line 833 "scanner.cc" #define INITIAL 0 #define RDATA 1 @@ -1013,10 +1014,10 @@ register char *yy_cp, *yy_bp; register int yy_act; -#line 26 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 26 "../../../../mcmc-jags/src/terminal/scanner.ll" -#line 1020 "scanner.cc" +#line 1021 "scanner.cc" if ( !(yy_init) ) { @@ -1069,13 +1070,13 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 261 ) + if ( yy_current_state >= 263 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 1125 ); + while ( yy_base[yy_current_state] != 1126 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1101,419 +1102,424 @@ case 1: YY_RULE_SETUP -#line 28 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 28 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=MODEL; return MODEL; YY_BREAK case 2: YY_RULE_SETUP -#line 29 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 29 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=DATA; return DATA; YY_BREAK case 3: YY_RULE_SETUP -#line 30 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 30 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=IN; return IN; YY_BREAK case 4: YY_RULE_SETUP -#line 31 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 31 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=TO; return TO; YY_BREAK case 5: YY_RULE_SETUP -#line 32 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 32 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=INITS; return INITS; YY_BREAK case 6: YY_RULE_SETUP -#line 33 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 33 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=PARAMETERS; return PARAMETERS; YY_BREAK case 7: YY_RULE_SETUP -#line 35 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 35 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=COMPILE; return COMPILE; YY_BREAK case 8: YY_RULE_SETUP -#line 36 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 36 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=NCHAINS; return NCHAINS; YY_BREAK case 9: YY_RULE_SETUP -#line 37 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 37 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=INITIALIZE; return INITIALIZE; YY_BREAK case 10: YY_RULE_SETUP -#line 38 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 38 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=CHAIN; return CHAIN; YY_BREAK case 11: YY_RULE_SETUP -#line 40 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 40 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=UPDATE; return UPDATE; YY_BREAK case 12: YY_RULE_SETUP -#line 41 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 41 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=ADAPT; return ADAPT; YY_BREAK case 13: YY_RULE_SETUP -#line 42 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 42 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=BY; return BY; YY_BREAK case 14: YY_RULE_SETUP -#line 44 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 44 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=MONITOR; return MONITOR; YY_BREAK case 15: YY_RULE_SETUP -#line 45 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 45 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=MONITORS; return MONITORS; YY_BREAK case 16: YY_RULE_SETUP -#line 46 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 46 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=TYPE; return TYPE; YY_BREAK case 17: YY_RULE_SETUP -#line 47 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 47 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=SET; return SET; YY_BREAK case 18: YY_RULE_SETUP -#line 48 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 48 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=CLEAR; return CLEAR; YY_BREAK case 19: YY_RULE_SETUP -#line 49 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 49 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=THIN; return THIN; YY_BREAK case 20: YY_RULE_SETUP -#line 50 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 50 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=SAMPLER; return SAMPLER; YY_BREAK case 21: YY_RULE_SETUP -#line 51 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 51 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=SAMPLERS; return SAMPLERS; YY_BREAK case 22: YY_RULE_SETUP -#line 52 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 52 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=RNGTOK; return RNGTOK; YY_BREAK case 23: YY_RULE_SETUP -#line 53 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 53 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=FACTORY; return FACTORY; YY_BREAK case 24: YY_RULE_SETUP -#line 54 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 54 "../../../../mcmc-jags/src/terminal/scanner.ll" zzlval.intval=FACTORIES; return FACTORIES; YY_BREAK case 25: YY_RULE_SETUP -#line 56 "../../../../../jags-3_patched/src/terminal/scanner.ll" -zzlval.intval=CODA; return CODA; +#line 55 "../../../../mcmc-jags/src/terminal/scanner.ll" +zzlval.intval=SEED; return SEED; YY_BREAK case 26: YY_RULE_SETUP -#line 57 "../../../../../jags-3_patched/src/terminal/scanner.ll" -zzlval.intval=STEM; return STEM; +#line 57 "../../../../mcmc-jags/src/terminal/scanner.ll" +zzlval.intval=CODA; return CODA; YY_BREAK case 27: YY_RULE_SETUP -#line 59 "../../../../../jags-3_patched/src/terminal/scanner.ll" -zzlval.intval=LOAD; return LOAD; +#line 58 "../../../../mcmc-jags/src/terminal/scanner.ll" +zzlval.intval=STEM; return STEM; YY_BREAK case 28: YY_RULE_SETUP -#line 60 "../../../../../jags-3_patched/src/terminal/scanner.ll" -zzlval.intval=UNLOAD; return UNLOAD; +#line 60 "../../../../mcmc-jags/src/terminal/scanner.ll" +zzlval.intval=LOAD; return LOAD; YY_BREAK case 29: YY_RULE_SETUP -#line 61 "../../../../../jags-3_patched/src/terminal/scanner.ll" -zzlval.intval=EXIT; return EXIT; +#line 61 "../../../../mcmc-jags/src/terminal/scanner.ll" +zzlval.intval=UNLOAD; return UNLOAD; YY_BREAK case 30: YY_RULE_SETUP -#line 63 "../../../../../jags-3_patched/src/terminal/scanner.ll" -zzlval.intval=DIRECTORY; return DIRECTORY; +#line 62 "../../../../mcmc-jags/src/terminal/scanner.ll" +zzlval.intval=EXIT; return EXIT; YY_BREAK case 31: YY_RULE_SETUP -#line 64 "../../../../../jags-3_patched/src/terminal/scanner.ll" -zzlval.intval=CD; return CD; +#line 64 "../../../../mcmc-jags/src/terminal/scanner.ll" +zzlval.intval=DIRECTORY; return DIRECTORY; YY_BREAK case 32: YY_RULE_SETUP -#line 65 "../../../../../jags-3_patched/src/terminal/scanner.ll" -zzlval.intval=PWD; return PWD; +#line 65 "../../../../mcmc-jags/src/terminal/scanner.ll" +zzlval.intval=CD; return CD; YY_BREAK case 33: YY_RULE_SETUP -#line 66 "../../../../../jags-3_patched/src/terminal/scanner.ll" -zzlval.intval=RUN; return RUN; +#line 66 "../../../../mcmc-jags/src/terminal/scanner.ll" +zzlval.intval=PWD; return PWD; YY_BREAK case 34: YY_RULE_SETUP -#line 68 "../../../../../jags-3_patched/src/terminal/scanner.ll" -zzlval.intval=LIST; return LIST; +#line 67 "../../../../mcmc-jags/src/terminal/scanner.ll" +zzlval.intval=RUN; return RUN; YY_BREAK case 35: YY_RULE_SETUP -#line 70 "../../../../../jags-3_patched/src/terminal/scanner.ll" -return ','; +#line 69 "../../../../mcmc-jags/src/terminal/scanner.ll" +zzlval.intval=LIST; return LIST; YY_BREAK case 36: YY_RULE_SETUP -#line 71 "../../../../../jags-3_patched/src/terminal/scanner.ll" -return '['; +#line 71 "../../../../mcmc-jags/src/terminal/scanner.ll" +return ','; YY_BREAK case 37: YY_RULE_SETUP -#line 72 "../../../../../jags-3_patched/src/terminal/scanner.ll" -return ']'; +#line 72 "../../../../mcmc-jags/src/terminal/scanner.ll" +return '['; YY_BREAK case 38: YY_RULE_SETUP -#line 73 "../../../../../jags-3_patched/src/terminal/scanner.ll" -return '('; +#line 73 "../../../../mcmc-jags/src/terminal/scanner.ll" +return ']'; YY_BREAK case 39: YY_RULE_SETUP -#line 74 "../../../../../jags-3_patched/src/terminal/scanner.ll" -return ')'; +#line 74 "../../../../mcmc-jags/src/terminal/scanner.ll" +return '('; YY_BREAK case 40: YY_RULE_SETUP -#line 75 "../../../../../jags-3_patched/src/terminal/scanner.ll" -return '='; +#line 75 "../../../../mcmc-jags/src/terminal/scanner.ll" +return ')'; YY_BREAK case 41: YY_RULE_SETUP -#line 76 "../../../../../jags-3_patched/src/terminal/scanner.ll" -return ARROW; +#line 76 "../../../../mcmc-jags/src/terminal/scanner.ll" +return '='; YY_BREAK case 42: YY_RULE_SETUP -#line 77 "../../../../../jags-3_patched/src/terminal/scanner.ll" -return '*'; +#line 77 "../../../../mcmc-jags/src/terminal/scanner.ll" +return ARROW; YY_BREAK case 43: YY_RULE_SETUP -#line 78 "../../../../../jags-3_patched/src/terminal/scanner.ll" -return ':'; +#line 78 "../../../../mcmc-jags/src/terminal/scanner.ll" +return '*'; YY_BREAK case 44: YY_RULE_SETUP -#line 79 "../../../../../jags-3_patched/src/terminal/scanner.ll" -return ';'; +#line 79 "../../../../mcmc-jags/src/terminal/scanner.ll" +return ':'; YY_BREAK case 45: YY_RULE_SETUP -#line 80 "../../../../../jags-3_patched/src/terminal/scanner.ll" -return '`'; +#line 80 "../../../../mcmc-jags/src/terminal/scanner.ll" +return ';'; YY_BREAK case 46: YY_RULE_SETUP -#line 82 "../../../../../jags-3_patched/src/terminal/scanner.ll" -BEGIN(COMMENT); +#line 81 "../../../../mcmc-jags/src/terminal/scanner.ll" +return '`'; YY_BREAK case 47: -/* rule 47 can match eol */ YY_RULE_SETUP -#line 83 "../../../../../jags-3_patched/src/terminal/scanner.ll" -/* Eat up anything that's not a '*' */ +#line 83 "../../../../mcmc-jags/src/terminal/scanner.ll" +BEGIN(COMMENT); YY_BREAK case 48: /* rule 48 can match eol */ YY_RULE_SETUP -#line 84 "../../../../../jags-3_patched/src/terminal/scanner.ll" -/* Eat up '*'s not followed by a '/' */ +#line 84 "../../../../mcmc-jags/src/terminal/scanner.ll" +/* Eat up anything that's not a '*' */ YY_BREAK case 49: +/* rule 49 can match eol */ YY_RULE_SETUP -#line 85 "../../../../../jags-3_patched/src/terminal/scanner.ll" -BEGIN(INITIAL); +#line 85 "../../../../mcmc-jags/src/terminal/scanner.ll" +/* Eat up '*'s not followed by a '/' */ YY_BREAK case 50: YY_RULE_SETUP -#line 87 "../../../../../jags-3_patched/src/terminal/scanner.ll" -/* Eat whitespace */ +#line 86 "../../../../mcmc-jags/src/terminal/scanner.ll" +BEGIN(INITIAL); YY_BREAK case 51: -/* rule 51 can match eol */ YY_RULE_SETUP -#line 88 "../../../../../jags-3_patched/src/terminal/scanner.ll" -/* Eat comments */ +#line 88 "../../../../mcmc-jags/src/terminal/scanner.ll" +/* Eat whitespace */ YY_BREAK case 52: /* rule 52 can match eol */ YY_RULE_SETUP -#line 89 "../../../../../jags-3_patched/src/terminal/scanner.ll" -/* Eat newlines */ +#line 89 "../../../../mcmc-jags/src/terminal/scanner.ll" +/* Eat single-line comments */ YY_BREAK case 53: /* rule 53 can match eol */ YY_RULE_SETUP -#line 90 "../../../../../jags-3_patched/src/terminal/scanner.ll" -return ENDCMD; +#line 90 "../../../../mcmc-jags/src/terminal/scanner.ll" +/* Eat newlines */ YY_BREAK case 54: +/* rule 54 can match eol */ YY_RULE_SETUP -#line 92 "../../../../../jags-3_patched/src/terminal/scanner.ll" -BEGIN(SYSTEM); +#line 91 "../../../../mcmc-jags/src/terminal/scanner.ll" +return ENDCMD; YY_BREAK case 55: YY_RULE_SETUP -#line 93 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 93 "../../../../mcmc-jags/src/terminal/scanner.ll" +BEGIN(SYSTEM); + YY_BREAK +case 56: +YY_RULE_SETUP +#line 94 "../../../../mcmc-jags/src/terminal/scanner.ll" { zzlval.stringptr = new std::string(zztext); return SYSCMD; } YY_BREAK -case 56: -/* rule 56 can match eol */ +case 57: +/* rule 57 can match eol */ YY_RULE_SETUP -#line 97 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 98 "../../../../mcmc-jags/src/terminal/scanner.ll" { BEGIN(INITIAL); return ENDCMD; } YY_BREAK -case 57: -YY_RULE_SETUP -#line 101 "../../../../../jags-3_patched/src/terminal/scanner.ll" -{ - zzlval.val = atof(zztext); return DOUBLE; -} - YY_BREAK case 58: YY_RULE_SETUP -#line 104 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 102 "../../../../mcmc-jags/src/terminal/scanner.ll" { zzlval.val = atof(zztext); return DOUBLE; } YY_BREAK case 59: YY_RULE_SETUP -#line 107 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 105 "../../../../mcmc-jags/src/terminal/scanner.ll" { zzlval.val = atof(zztext); return DOUBLE; } YY_BREAK case 60: YY_RULE_SETUP -#line 110 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 108 "../../../../mcmc-jags/src/terminal/scanner.ll" { zzlval.val = atof(zztext); return DOUBLE; } YY_BREAK case 61: YY_RULE_SETUP -#line 113 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 111 "../../../../mcmc-jags/src/terminal/scanner.ll" { zzlval.val = atof(zztext); return DOUBLE; } YY_BREAK case 62: YY_RULE_SETUP -#line 116 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 114 "../../../../mcmc-jags/src/terminal/scanner.ll" { zzlval.val = atof(zztext); return DOUBLE; } YY_BREAK case 63: YY_RULE_SETUP -#line 119 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 117 "../../../../mcmc-jags/src/terminal/scanner.ll" { zzlval.val = atof(zztext); return DOUBLE; } YY_BREAK case 64: YY_RULE_SETUP -#line 122 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 120 "../../../../mcmc-jags/src/terminal/scanner.ll" { - zzlval.intval = atoi(zztext); return INT; + zzlval.val = atof(zztext); return DOUBLE; } YY_BREAK case 65: YY_RULE_SETUP -#line 126 "../../../../../jags-3_patched/src/terminal/scanner.ll" -return DIM; +#line 123 "../../../../mcmc-jags/src/terminal/scanner.ll" +{ + zzlval.intval = atoi(zztext); return INT; +} YY_BREAK case 66: YY_RULE_SETUP -#line 127 "../../../../../jags-3_patched/src/terminal/scanner.ll" -return NA; +#line 127 "../../../../mcmc-jags/src/terminal/scanner.ll" +return DIM; YY_BREAK case 67: YY_RULE_SETUP -#line 128 "../../../../../jags-3_patched/src/terminal/scanner.ll" -return R_NULL; +#line 128 "../../../../mcmc-jags/src/terminal/scanner.ll" +return NA; YY_BREAK case 68: +YY_RULE_SETUP +#line 129 "../../../../mcmc-jags/src/terminal/scanner.ll" +return R_NULL; + YY_BREAK +case 69: *yy_cp = (yy_hold_char); /* undo effects of setting up zztext */ (yy_c_buf_p) = yy_cp = yy_bp + 9; YY_DO_BEFORE_ACTION; /* set up zztext again */ YY_RULE_SETUP -#line 129 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 130 "../../../../mcmc-jags/src/terminal/scanner.ll" return STRUCTURE; YY_BREAK -case 69: +case 70: *yy_cp = (yy_hold_char); /* undo effects of setting up zztext */ (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up zztext again */ YY_RULE_SETUP -#line 130 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 131 "../../../../mcmc-jags/src/terminal/scanner.ll" return LIST; YY_BREAK -case 70: +case 71: *yy_cp = (yy_hold_char); /* undo effects of setting up zztext */ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up zztext again */ YY_RULE_SETUP -#line 131 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 132 "../../../../mcmc-jags/src/terminal/scanner.ll" return 'c'; YY_BREAK -case 71: +case 72: *yy_cp = (yy_hold_char); /* undo effects of setting up zztext */ (yy_c_buf_p) = yy_cp = yy_bp + 10; YY_DO_BEFORE_ACTION; /* set up zztext again */ YY_RULE_SETUP -#line 132 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 133 "../../../../mcmc-jags/src/terminal/scanner.ll" return ASINTEGER; YY_BREAK -case 72: +case 73: YY_RULE_SETUP -#line 134 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 135 "../../../../mcmc-jags/src/terminal/scanner.ll" { zzlval.stringptr = new std::string(zztext); return NAME; } YY_BREAK -case 73: +case 74: YY_RULE_SETUP -#line 139 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 140 "../../../../mcmc-jags/src/terminal/scanner.ll" { // More general than NAME which is limited to syntactically valid BUGS names zzlval.stringptr = new std::string(zztext); return STRING; } YY_BREAK -case 74: -/* rule 74 can match eol */ +case 75: +/* rule 75 can match eol */ YY_RULE_SETUP -#line 145 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 146 "../../../../mcmc-jags/src/terminal/scanner.ll" { zzlval.stringptr = new std::string(zztext); // Remove enclosing quotes @@ -1522,10 +1528,10 @@ return STRING; } YY_BREAK -case 75: -/* rule 75 can match eol */ +case 76: +/* rule 76 can match eol */ YY_RULE_SETUP -#line 153 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 154 "../../../../mcmc-jags/src/terminal/scanner.ll" { zzlval.stringptr = new std::string(zztext); zzlval.stringptr->erase(zzlval.stringptr->size() - 1, 1); @@ -1534,7 +1540,7 @@ } YY_BREAK case YY_STATE_EOF(INITIAL): -#line 160 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 161 "../../../../mcmc-jags/src/terminal/scanner.ll" { if (command_buffer_count) { close_buffer(); @@ -1547,19 +1553,19 @@ } YY_BREAK case YY_STATE_EOF(RDATA): -#line 170 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 171 "../../../../mcmc-jags/src/terminal/scanner.ll" { close_buffer(); BEGIN(INITIAL); return ENDDATA; } YY_BREAK -case 76: +case 77: YY_RULE_SETUP -#line 175 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 176 "../../../../mcmc-jags/src/terminal/scanner.ll" ECHO; YY_BREAK -#line 1563 "scanner.cc" +#line 1569 "scanner.cc" case YY_STATE_EOF(COMMENT): case YY_STATE_EOF(SYSTEM): yyterminate(); @@ -1852,7 +1858,7 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 261 ) + if ( yy_current_state >= 263 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1880,11 +1886,11 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 261 ) + if ( yy_current_state >= 263 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 260); + yy_is_jam = (yy_current_state == 262); return yy_is_jam ? 0 : yy_current_state; } @@ -2324,7 +2330,7 @@ YY_BUFFER_STATE b; char *buf; yy_size_t n; - int i; + yy_size_t i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; @@ -2554,7 +2560,7 @@ #define YYTABLES_NAME "yytables" -#line 175 "../../../../../jags-3_patched/src/terminal/scanner.ll" +#line 176 "../../../../mcmc-jags/src/terminal/scanner.ll" diff -Nru jags-3.4.0/src/terminal/scanner.ll jags-4.0.0/src/terminal/scanner.ll --- jags-3.4.0/src/terminal/scanner.ll 2012-06-04 08:20:19.000000000 +0000 +++ jags-4.0.0/src/terminal/scanner.ll 2015-02-22 08:33:06.000000000 +0000 @@ -4,7 +4,7 @@ #include #include #include -#include "parser.h" +#include "parser.hh" std::vector file_stack; int command_buffer_count = 0; @@ -52,6 +52,7 @@ rng zzlval.intval=RNGTOK; return RNGTOK; factory zzlval.intval=FACTORY; return FACTORY; factories zzlval.intval=FACTORIES; return FACTORIES; +seed zzlval.intval=SEED; return SEED; coda zzlval.intval=CODA; return CODA; stem zzlval.intval=STEM; return STEM; @@ -80,12 +81,12 @@ "`" return '`'; "/*" BEGIN(COMMENT); -[^*]* /* Eat up anything that's not a '*' */ -"*"+[^*/n]* /* Eat up '*'s not followed by a '/' */ +[^*]* /* Eat up anything that's not a '*' */ +"*"+[^*/]* /* Eat up '*'s not followed by a '/' */ "*"+"/" BEGIN(INITIAL); -[ \t\r]+ /* Eat whitespace */ -"#".*\n /* Eat comments */ +[ \t\r\f]+ /* Eat whitespace */ +"#".*\n /* Eat single-line comments */ [\n]+ /* Eat newlines */ [\n] return ENDCMD; diff -Nru jags-3.4.0/test/base.cc jags-4.0.0/test/base.cc --- jags-3.4.0/test/base.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/test/base.cc 2015-09-27 12:01:09.000000000 +0000 @@ -0,0 +1,31 @@ +/** + * Test code in base module + */ + +#include +#include +#include + +#include + +int main(int argc, char* argv[]) +{ + init_base_test(); + + // Get the top level suite from the registry + CppUnit::Test *suite = + CppUnit::TestFactoryRegistry::getRegistry().makeTest(); + + // Adds the test to the list of tests to run + CppUnit::TextUi::TestRunner runner; + runner.addTest( suite ); + + // Change the default outputter to a compiler error format outputter + runner.setOutputter( new CppUnit::CompilerOutputter( &runner.result(), + std::cerr ) ); + // Run the tests. + bool wasSucessful = runner.run(); + + // Return error code 1 if the one of test failed. + return wasSucessful ? 0 : 1; +} diff -Nru jags-3.4.0/test/bugs.cc jags-4.0.0/test/bugs.cc --- jags-3.4.0/test/bugs.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/test/bugs.cc 2015-09-27 12:01:37.000000000 +0000 @@ -0,0 +1,31 @@ +/** + * Test code in base module + */ + +#include +#include +#include + +#include + +int main(int argc, char* argv[]) +{ + init_bugs_test(); + + // Get the top level suite from the registry + CppUnit::Test *suite = + CppUnit::TestFactoryRegistry::getRegistry().makeTest(); + + // Adds the test to the list of tests to run + CppUnit::TextUi::TestRunner runner; + runner.addTest( suite ); + + // Change the default outputter to a compiler error format outputter + runner.setOutputter( new CppUnit::CompilerOutputter( &runner.result(), + std::cerr ) ); + // Run the tests. + bool wasSucessful = runner.run(); + + // Return error code 1 if the one of test failed. + return wasSucessful ? 0 : 1; +} diff -Nru jags-3.4.0/test/glm.cc jags-4.0.0/test/glm.cc --- jags-3.4.0/test/glm.cc 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/test/glm.cc 2015-09-27 12:02:06.000000000 +0000 @@ -0,0 +1,31 @@ +/** + * Test code in base module + */ + +#include +#include +#include + +#include + +int main(int argc, char* argv[]) +{ + init_glm_test(); + + // Get the top level suite from the registry + CppUnit::Test *suite = + CppUnit::TestFactoryRegistry::getRegistry().makeTest(); + + // Adds the test to the list of tests to run + CppUnit::TextUi::TestRunner runner; + runner.addTest( suite ); + + // Change the default outputter to a compiler error format outputter + runner.setOutputter( new CppUnit::CompilerOutputter( &runner.result(), + std::cerr ) ); + // Run the tests. + bool wasSucessful = runner.run(); + + // Return error code 1 if the one of test failed. + return wasSucessful ? 0 : 1; +} diff -Nru jags-3.4.0/test/Makefile.am jags-4.0.0/test/Makefile.am --- jags-3.4.0/test/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/test/Makefile.am 2015-09-27 12:00:11.000000000 +0000 @@ -0,0 +1,37 @@ +# Rules for the test code (use `make check` to execute) +TESTS = base bugs glm +check_PROGRAMS = $(TESTS) + +## Base module + +base_SOURCES = base.cc +base_CXXFLAGS = $(CPPUNIT_CFLAGS) +base_LDFLAGS = $(CPPUNIT_LIBS) + +base_LDADD = $(top_builddir)/src/modules/base/libbasetest.la + +base_CPPFLAGS = -I$(top_srcdir)/src/include \ + -I$(top_srcdir)/src/modules + +## Bugs module + +bugs_SOURCES = bugs.cc +bugs_CXXFLAGS = $(CPPUNIT_CFLAGS) +bugs_LDFLAGS = $(CPPUNIT_LIBS) + +bugs_LDADD = $(top_builddir)/src/modules/bugs/libbugstest.la + +bugs_CPPFLAGS = -I$(top_srcdir)/src/include \ + -I$(top_srcdir)/src/modules + +## Glm module + +glm_SOURCES = glm.cc +glm_CXXFLAGS = $(CPPUNIT_CFLAGS) +glm_LDFLAGS = $(CPPUNIT_LIBS) + +glm_LDADD = $(top_builddir)/src/modules/glm/libglmtest.la + +glm_CPPFLAGS = -I$(top_srcdir)/src/include \ + -I$(top_srcdir)/src/modules + diff -Nru jags-3.4.0/test/Makefile.in jags-4.0.0/test/Makefile.in --- jags-3.4.0/test/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/test/Makefile.in 2015-09-27 12:02:19.000000000 +0000 @@ -0,0 +1,1098 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +TESTS = base$(EXEEXT) bugs$(EXEEXT) glm$(EXEEXT) +check_PROGRAMS = $(am__EXEEXT_1) +subdir = test +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ + $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltdl.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__EXEEXT_1 = base$(EXEEXT) bugs$(EXEEXT) glm$(EXEEXT) +am_base_OBJECTS = base-base.$(OBJEXT) +base_OBJECTS = $(am_base_OBJECTS) +base_DEPENDENCIES = $(top_builddir)/src/modules/base/libbasetest.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +base_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(base_CXXFLAGS) \ + $(CXXFLAGS) $(base_LDFLAGS) $(LDFLAGS) -o $@ +am_bugs_OBJECTS = bugs-bugs.$(OBJEXT) +bugs_OBJECTS = $(am_bugs_OBJECTS) +bugs_DEPENDENCIES = $(top_builddir)/src/modules/bugs/libbugstest.la +bugs_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(bugs_CXXFLAGS) \ + $(CXXFLAGS) $(bugs_LDFLAGS) $(LDFLAGS) -o $@ +am_glm_OBJECTS = glm-glm.$(OBJEXT) +glm_OBJECTS = $(am_glm_OBJECTS) +glm_DEPENDENCIES = $(top_builddir)/src/modules/glm/libglmtest.la +glm_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(glm_CXXFLAGS) \ + $(CXXFLAGS) $(glm_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +SOURCES = $(base_SOURCES) $(bugs_SOURCES) $(glm_SOURCES) +DIST_SOURCES = $(base_SOURCES) $(bugs_SOURCES) $(glm_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \ + $(top_srcdir)/test-driver +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +ARGZ_H = @ARGZ_H@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_LIBS = @BLAS_LIBS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLIBS = @FLIBS@ +GREP = @GREP@ +INCLTDL = @INCLTDL@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JAGS_MAJOR = @JAGS_MAJOR@ +JAGS_MINOR = @JAGS_MINOR@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBADD_DL = @LIBADD_DL@ +LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ +LIBADD_DLOPEN = @LIBADD_DLOPEN@ +LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ +LIBLTDL = @LIBLTDL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTDLDEPS = @LTDLDEPS@ +LTDLINCL = @LTDLINCL@ +LTDLOPEN = @LTDLOPEN@ +LTLIBOBJS = @LTLIBOBJS@ +LT_CONFIG_H = @LT_CONFIG_H@ +LT_DLLOADERS = @LT_DLLOADERS@ +LT_DLPREOPEN = @LT_DLPREOPEN@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +YACC = @YACC@ +YFLAGS = @YFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_F77 = @ac_ct_F77@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +jagsmoddir = @jagsmoddir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +ltdl_LIBOBJS = @ltdl_LIBOBJS@ +ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sys_symbol_underscore = @sys_symbol_underscore@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +base_SOURCES = base.cc +base_CXXFLAGS = $(CPPUNIT_CFLAGS) +base_LDFLAGS = $(CPPUNIT_LIBS) +base_LDADD = $(top_builddir)/src/modules/base/libbasetest.la +base_CPPFLAGS = -I$(top_srcdir)/src/include \ + -I$(top_srcdir)/src/modules + +bugs_SOURCES = bugs.cc +bugs_CXXFLAGS = $(CPPUNIT_CFLAGS) +bugs_LDFLAGS = $(CPPUNIT_LIBS) +bugs_LDADD = $(top_builddir)/src/modules/bugs/libbugstest.la +bugs_CPPFLAGS = -I$(top_srcdir)/src/include \ + -I$(top_srcdir)/src/modules + +glm_SOURCES = glm.cc +glm_CXXFLAGS = $(CPPUNIT_CFLAGS) +glm_LDFLAGS = $(CPPUNIT_LIBS) +glm_LDADD = $(top_builddir)/src/modules/glm/libglmtest.la +glm_CPPFLAGS = -I$(top_srcdir)/src/include \ + -I$(top_srcdir)/src/modules + +all: all-am + +.SUFFIXES: +.SUFFIXES: .cc .lo .log .o .obj .test .test$(EXEEXT) .trs +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu test/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-checkPROGRAMS: + @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +base$(EXEEXT): $(base_OBJECTS) $(base_DEPENDENCIES) $(EXTRA_base_DEPENDENCIES) + @rm -f base$(EXEEXT) + $(AM_V_CXXLD)$(base_LINK) $(base_OBJECTS) $(base_LDADD) $(LIBS) + +bugs$(EXEEXT): $(bugs_OBJECTS) $(bugs_DEPENDENCIES) $(EXTRA_bugs_DEPENDENCIES) + @rm -f bugs$(EXEEXT) + $(AM_V_CXXLD)$(bugs_LINK) $(bugs_OBJECTS) $(bugs_LDADD) $(LIBS) + +glm$(EXEEXT): $(glm_OBJECTS) $(glm_DEPENDENCIES) $(EXTRA_glm_DEPENDENCIES) + @rm -f glm$(EXEEXT) + $(AM_V_CXXLD)$(glm_LINK) $(glm_OBJECTS) $(glm_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base-base.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bugs-bugs.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glm-glm.Po@am__quote@ + +.cc.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.cc.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cc.lo: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< + +base-base.o: base.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(base_CPPFLAGS) $(CPPFLAGS) $(base_CXXFLAGS) $(CXXFLAGS) -MT base-base.o -MD -MP -MF $(DEPDIR)/base-base.Tpo -c -o base-base.o `test -f 'base.cc' || echo '$(srcdir)/'`base.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/base-base.Tpo $(DEPDIR)/base-base.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='base.cc' object='base-base.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(base_CPPFLAGS) $(CPPFLAGS) $(base_CXXFLAGS) $(CXXFLAGS) -c -o base-base.o `test -f 'base.cc' || echo '$(srcdir)/'`base.cc + +base-base.obj: base.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(base_CPPFLAGS) $(CPPFLAGS) $(base_CXXFLAGS) $(CXXFLAGS) -MT base-base.obj -MD -MP -MF $(DEPDIR)/base-base.Tpo -c -o base-base.obj `if test -f 'base.cc'; then $(CYGPATH_W) 'base.cc'; else $(CYGPATH_W) '$(srcdir)/base.cc'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/base-base.Tpo $(DEPDIR)/base-base.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='base.cc' object='base-base.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(base_CPPFLAGS) $(CPPFLAGS) $(base_CXXFLAGS) $(CXXFLAGS) -c -o base-base.obj `if test -f 'base.cc'; then $(CYGPATH_W) 'base.cc'; else $(CYGPATH_W) '$(srcdir)/base.cc'; fi` + +bugs-bugs.o: bugs.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugs_CPPFLAGS) $(CPPFLAGS) $(bugs_CXXFLAGS) $(CXXFLAGS) -MT bugs-bugs.o -MD -MP -MF $(DEPDIR)/bugs-bugs.Tpo -c -o bugs-bugs.o `test -f 'bugs.cc' || echo '$(srcdir)/'`bugs.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bugs-bugs.Tpo $(DEPDIR)/bugs-bugs.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='bugs.cc' object='bugs-bugs.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugs_CPPFLAGS) $(CPPFLAGS) $(bugs_CXXFLAGS) $(CXXFLAGS) -c -o bugs-bugs.o `test -f 'bugs.cc' || echo '$(srcdir)/'`bugs.cc + +bugs-bugs.obj: bugs.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugs_CPPFLAGS) $(CPPFLAGS) $(bugs_CXXFLAGS) $(CXXFLAGS) -MT bugs-bugs.obj -MD -MP -MF $(DEPDIR)/bugs-bugs.Tpo -c -o bugs-bugs.obj `if test -f 'bugs.cc'; then $(CYGPATH_W) 'bugs.cc'; else $(CYGPATH_W) '$(srcdir)/bugs.cc'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bugs-bugs.Tpo $(DEPDIR)/bugs-bugs.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='bugs.cc' object='bugs-bugs.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bugs_CPPFLAGS) $(CPPFLAGS) $(bugs_CXXFLAGS) $(CXXFLAGS) -c -o bugs-bugs.obj `if test -f 'bugs.cc'; then $(CYGPATH_W) 'bugs.cc'; else $(CYGPATH_W) '$(srcdir)/bugs.cc'; fi` + +glm-glm.o: glm.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glm_CPPFLAGS) $(CPPFLAGS) $(glm_CXXFLAGS) $(CXXFLAGS) -MT glm-glm.o -MD -MP -MF $(DEPDIR)/glm-glm.Tpo -c -o glm-glm.o `test -f 'glm.cc' || echo '$(srcdir)/'`glm.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/glm-glm.Tpo $(DEPDIR)/glm-glm.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='glm.cc' object='glm-glm.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glm_CPPFLAGS) $(CPPFLAGS) $(glm_CXXFLAGS) $(CXXFLAGS) -c -o glm-glm.o `test -f 'glm.cc' || echo '$(srcdir)/'`glm.cc + +glm-glm.obj: glm.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glm_CPPFLAGS) $(CPPFLAGS) $(glm_CXXFLAGS) $(CXXFLAGS) -MT glm-glm.obj -MD -MP -MF $(DEPDIR)/glm-glm.Tpo -c -o glm-glm.obj `if test -f 'glm.cc'; then $(CYGPATH_W) 'glm.cc'; else $(CYGPATH_W) '$(srcdir)/glm.cc'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/glm-glm.Tpo $(DEPDIR)/glm-glm.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='glm.cc' object='glm-glm.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(glm_CPPFLAGS) $(CPPFLAGS) $(glm_CXXFLAGS) $(CXXFLAGS) -c -o glm-glm.obj `if test -f 'glm.cc'; then $(CYGPATH_W) 'glm.cc'; else $(CYGPATH_W) '$(srcdir)/glm.cc'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ + fi; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + elif test -n "$$redo_logs"; then \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ + else \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ + fi; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ + else \ + color_start= color_end=; \ + fi; \ + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +base.log: base$(EXEEXT) + @p='base$(EXEEXT)'; \ + b='base'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +bugs.log: bugs$(EXEEXT) + @p='bugs$(EXEEXT)'; \ + b='bugs'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +glm.log: glm$(EXEEXT) + @p='glm$(EXEEXT)'; \ + b='glm'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + recheck tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru jags-3.4.0/test-driver jags-4.0.0/test-driver --- jags-3.4.0/test-driver 1970-01-01 00:00:00.000000000 +0000 +++ jags-4.0.0/test-driver 2015-01-07 12:05:37.000000000 +0000 @@ -0,0 +1,148 @@ +#! /bin/sh +# test-driver - basic testsuite driver script. + +scriptversion=2013-07-13.22; # UTC + +# Copyright (C) 2011-2014 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +# Make unconditional expansion of undefined variables an error. This +# helps a lot in preventing typo-related bugs. +set -u + +usage_error () +{ + echo "$0: $*" >&2 + print_usage >&2 + exit 2 +} + +print_usage () +{ + cat <$log_file 2>&1 +estatus=$? + +if test $enable_hard_errors = no && test $estatus -eq 99; then + tweaked_estatus=1 +else + tweaked_estatus=$estatus +fi + +case $tweaked_estatus:$expect_failure in + 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; + 0:*) col=$grn res=PASS recheck=no gcopy=no;; + 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; + 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; + *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; + *:*) col=$red res=FAIL recheck=yes gcopy=yes;; +esac + +# Report the test outcome and exit status in the logs, so that one can +# know whether the test passed or failed simply by looking at the '.log' +# file, without the need of also peaking into the corresponding '.trs' +# file (automake bug#11814). +echo "$res $test_name (exit status: $estatus)" >>$log_file + +# Report outcome to console. +echo "${col}${res}${std}: $test_name" + +# Register the test result, and other relevant metadata. +echo ":test-result: $res" > $trs_file +echo ":global-test-result: $res" >> $trs_file +echo ":recheck: $recheck" >> $trs_file +echo ":copy-in-global-log: $gcopy" >> $trs_file + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff -Nru jags-3.4.0/win/jags.nsi jags-4.0.0/win/jags.nsi --- jags-3.4.0/win/jags.nsi 2013-08-20 12:31:53.000000000 +0000 +++ jags-4.0.0/win/jags.nsi 2015-09-12 07:00:16.000000000 +0000 @@ -98,11 +98,11 @@ File inst32\libexec\jags-terminal.exe !insertmacro UNINSTALL.LOG_CLOSE_INSTALL -# SetOutPath "$INSTDIR\i386\lib" -# !insertmacro UNINSTALL.LOG_OPEN_INSTALL -# File inst32\lib\*.dll.a -# File inst32\lib\*.la -# !insertmacro UNINSTALL.LOG_CLOSE_INSTALL + SetOutPath "$INSTDIR\i386\lib" + !insertmacro UNINSTALL.LOG_OPEN_INSTALL + File inst32\lib\*.dll.a + File inst32\lib\*.la + !insertmacro UNINSTALL.LOG_CLOSE_INSTALL SetOutPath "$INSTDIR\i386\modules" !insertmacro UNINSTALL.LOG_OPEN_INSTALL @@ -145,11 +145,11 @@ File inst64\libexec\jags-terminal.exe !insertmacro UNINSTALL.LOG_CLOSE_INSTALL -# SetOutPath "$INSTDIR\x64\lib" -# !insertmacro UNINSTALL.LOG_OPEN_INSTALL -# File inst64\lib\*.dll.a -# File inst64\lib\*.la -# !insertmacro UNINSTALL.LOG_CLOSE_INSTALL + SetOutPath "$INSTDIR\x64\lib" + !insertmacro UNINSTALL.LOG_OPEN_INSTALL + File inst64\lib\*.dll.a + File inst64\lib\*.la + !insertmacro UNINSTALL.LOG_CLOSE_INSTALL SetOutPath "$INSTDIR\x64\modules" !insertmacro UNINSTALL.LOG_OPEN_INSTALL @@ -207,7 +207,6 @@ ; Enforce 32-bit selection Push $1 SectionGetFlags ${Sec32} $1 -# IntOp $1 $1 & ${SF_SELECTED} IntOp $1 $1 | ${SF_RO} SectionSetFlags ${Sec32} $1 Pop $1 diff -Nru jags-3.4.0/win/Makefile.in jags-4.0.0/win/Makefile.in --- jags-3.4.0/win/Makefile.in 2013-08-30 13:23:30.000000000 +0000 +++ jags-4.0.0/win/Makefile.in 2015-09-27 12:02:19.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,7 +88,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = win -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -61,19 +97,33 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -81,12 +131,33 @@ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ @@ -115,6 +186,7 @@ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -128,6 +200,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -197,10 +272,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -283,7 +354,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu win/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu win/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -309,22 +379,25 @@ -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -339,57 +412,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -405,12 +433,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -422,15 +445,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -439,6 +458,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -599,12 +633,11 @@ uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - clean-local ctags ctags-recursive distclean distclean-generic \ +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool clean-local \ + cscopelist-am ctags ctags-am distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -613,8 +646,10 @@ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am + +.PRECIOUS: Makefile clean-local: diff -Nru jags-3.4.0/win/runtime32/Makefile.in jags-4.0.0/win/runtime32/Makefile.in --- jags-3.4.0/win/runtime32/Makefile.in 2013-08-30 13:23:30.000000000 +0000 +++ jags-4.0.0/win/runtime32/Makefile.in 2015-09-27 12:02:19.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,7 +88,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = win/runtime32 -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -61,10 +97,23 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -72,9 +121,12 @@ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -88,6 +140,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -157,10 +212,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -242,7 +293,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu win/runtime32/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu win/runtime32/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -266,11 +316,11 @@ clean-libtool: -rm -rf .libs _libs -tags: TAGS -TAGS: +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -406,15 +456,18 @@ .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/win/runtime64/Makefile.in jags-4.0.0/win/runtime64/Makefile.in --- jags-3.4.0/win/runtime64/Makefile.in 2013-08-30 13:23:30.000000000 +0000 +++ jags-4.0.0/win/runtime64/Makefile.in 2015-09-27 12:02:19.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,61 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,7 +88,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = win/runtime64 -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/R.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/axx_blas.m4 \ @@ -61,10 +97,23 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -72,9 +121,12 @@ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARGZ_H = @ARGZ_H@ AS = @AS@ @@ -88,6 +140,9 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@ +CPPUNIT_CONFIG = @CPPUNIT_CONFIG@ +CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -157,10 +212,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -RMATH_HAVE_EXPM1 = @RMATH_HAVE_EXPM1@ -RMATH_HAVE_LOG1P = @RMATH_HAVE_LOG1P@ -RMATH_HAVE_WORKING_LOG = @RMATH_HAVE_WORKING_LOG@ -RMATH_HAVE_WORKING_LOG1P = @RMATH_HAVE_WORKING_LOG1P@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -242,7 +293,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu win/runtime64/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu win/runtime64/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -266,11 +316,11 @@ clean-libtool: -rm -rf .libs _libs -tags: TAGS -TAGS: +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -406,15 +456,18 @@ .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru jags-3.4.0/ylwrap jags-4.0.0/ylwrap --- jags-3.4.0/ylwrap 2013-08-29 13:54:37.000000000 +0000 +++ jags-4.0.0/ylwrap 2015-01-07 12:05:37.000000000 +0000 @@ -1,10 +1,9 @@ #! /bin/sh # ylwrap - wrapper for lex/yacc invocations. -scriptversion=2011-08-25.18; # UTC +scriptversion=2013-01-12.17; # UTC -# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005, -# 2007, 2009, 2010, 2011 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # # Written by Tom Tromey . # @@ -30,9 +29,41 @@ # bugs to or send patches to # . +get_dirname () +{ + case $1 in + */*|*\\*) printf '%s\n' "$1" | sed -e 's|\([\\/]\)[^\\/]*$|\1|';; + # Otherwise, we want the empty string (not "."). + esac +} + +# guard FILE +# ---------- +# The CPP macro used to guard inclusion of FILE. +guard () +{ + printf '%s\n' "$1" \ + | sed \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ + -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g' \ + -e 's/__*/_/g' +} + +# quote_for_sed [STRING] +# ---------------------- +# Return STRING (or stdin) quoted to be used as a sed pattern. +quote_for_sed () +{ + case $# in + 0) cat;; + 1) printf '%s\n' "$1";; + esac \ + | sed -e 's|[][\\.*]|\\&|g' +} + case "$1" in '') - echo "$0: No files given. Try \`$0 --help' for more information." 1>&2 + echo "$0: No files given. Try '$0 --help' for more information." 1>&2 exit 1 ;; --basedir) @@ -65,39 +96,71 @@ # The input. -input="$1" +input=$1 shift -case "$input" in +# We'll later need for a correct munging of "#line" directives. +input_sub_rx=`get_dirname "$input" | quote_for_sed` +case $input in [\\/]* | ?:[\\/]*) # Absolute path; do nothing. ;; *) # Relative path. Make it absolute. - input="`pwd`/$input" + input=`pwd`/$input ;; esac +input_rx=`get_dirname "$input" | quote_for_sed` + +# Since DOS filename conventions don't allow two dots, +# the DOS version of Bison writes out y_tab.c instead of y.tab.c +# and y_tab.h instead of y.tab.h. Test to see if this is the case. +y_tab_nodot=false +if test -f y_tab.c || test -f y_tab.h; then + y_tab_nodot=true +fi + +# The parser itself, the first file, is the destination of the .y.c +# rule in the Makefile. +parser=$1 + +# A sed program to s/FROM/TO/g for all the FROM/TO so that, for +# instance, we rename #include "y.tab.h" into #include "parse.h" +# during the conversion from y.tab.c to parse.c. +sed_fix_filenames= + +# Also rename header guards, as Bison 2.7 for instance uses its header +# guard in its implementation file. +sed_fix_header_guards= -pairlist= -while test "$#" -ne 0; do - if test "$1" = "--"; then +while test $# -ne 0; do + if test x"$1" = x"--"; then shift break fi - pairlist="$pairlist $1" + from=$1 + # Handle y_tab.c and y_tab.h output by DOS + if $y_tab_nodot; then + case $from in + "y.tab.c") from=y_tab.c;; + "y.tab.h") from=y_tab.h;; + esac + fi + shift + to=$1 shift + sed_fix_filenames="${sed_fix_filenames}s|"`quote_for_sed "$from"`"|$to|g;" + sed_fix_header_guards="${sed_fix_header_guards}s|"`guard "$from"`"|"`guard "$to"`"|g;" done # The program to run. -prog="$1" +prog=$1 shift # Make any relative path in $prog absolute. -case "$prog" in +case $prog in [\\/]* | ?:[\\/]*) ;; - *[\\/]*) prog="`pwd`/$prog" ;; + *[\\/]*) prog=`pwd`/$prog ;; esac -# FIXME: add hostname here for parallel makes that run commands on -# other machines. But that might take us over the 14-char limit. dirname=ylwrap$$ do_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (exit $ret); exit $ret' trap "ret=129; $do_exit" 1 @@ -115,98 +178,56 @@ ret=$? if test $ret -eq 0; then - set X $pairlist - shift - first=yes - # Since DOS filename conventions don't allow two dots, - # the DOS version of Bison writes out y_tab.c instead of y.tab.c - # and y_tab.h instead of y.tab.h. Test to see if this is the case. - y_tab_nodot="no" - if test -f y_tab.c || test -f y_tab.h; then - y_tab_nodot="yes" - fi - - # The directory holding the input. - input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'` - # Quote $INPUT_DIR so we can use it in a regexp. - # FIXME: really we should care about more than `.' and `\'. - input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'` - - while test "$#" -ne 0; do - from="$1" - # Handle y_tab.c and y_tab.h output by DOS - if test $y_tab_nodot = "yes"; then - if test $from = "y.tab.c"; then - from="y_tab.c" - else - if test $from = "y.tab.h"; then - from="y_tab.h" - fi - fi - fi + for from in * + do + to=`printf '%s\n' "$from" | sed "$sed_fix_filenames"` if test -f "$from"; then # If $2 is an absolute path name, then just use that, - # otherwise prepend `../'. - case "$2" in - [\\/]* | ?:[\\/]*) target="$2";; - *) target="../$2";; + # otherwise prepend '../'. + case $to in + [\\/]* | ?:[\\/]*) target=$to;; + *) target=../$to;; esac - # We do not want to overwrite a header file if it hasn't - # changed. This avoid useless recompilations. However the - # parser itself (the first file) should always be updated, - # because it is the destination of the .y.c rule in the - # Makefile. Divert the output of all other files to a temporary - # file so we can compare them to existing versions. - if test $first = no; then - realtarget="$target" - target="tmp-`echo $target | sed s/.*[\\/]//g`" + # Do not overwrite unchanged header files to avoid useless + # recompilations. Always update the parser itself: it is the + # destination of the .y.c rule in the Makefile. Divert the + # output of all other files to a temporary file so we can + # compare them to existing versions. + if test $from != $parser; then + realtarget=$target + target=tmp-`printf '%s\n' "$target" | sed 's|.*[\\/]||g'` fi - # Edit out `#line' or `#' directives. - # - # We don't want the resulting debug information to point at - # an absolute srcdir; it is better for it to just mention the - # .y file with no path. - # - # We want to use the real output file name, not yy.lex.c for - # instance. - # - # We want the include guards to be adjusted too. - FROM=`echo "$from" | sed \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ - -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` - TARGET=`echo "$2" | sed \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ - -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` - sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \ - -e "s,$FROM,$TARGET," "$from" >"$target" || ret=$? + # Munge "#line" or "#" directives. Don't let the resulting + # debug information point at an absolute srcdir. Use the real + # output file name, not yy.lex.c for instance. Adjust the + # include guards too. + sed -e "/^#/!b" \ + -e "s|$input_rx|$input_sub_rx|" \ + -e "$sed_fix_filenames" \ + -e "$sed_fix_header_guards" \ + "$from" >"$target" || ret=$? - # Check whether header files must be updated. - if test $first = no; then + # Check whether files must be updated. + if test "$from" != "$parser"; then if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then - echo "$2" is unchanged + echo "$to is unchanged" rm -f "$target" else - echo updating "$2" + echo "updating $to" mv -f "$target" "$realtarget" fi fi else - # A missing file is only an error for the first file. This - # is a blatant hack to let us support using "yacc -d". If -d - # is not specified, we don't want an error when the header - # file is "missing". - if test $first = yes; then + # A missing file is only an error for the parser. This is a + # blatant hack to let us support using "yacc -d". If -d is not + # specified, don't fail when the header file is "missing". + if test "$from" = "$parser"; then ret=1 fi fi - shift - shift - first=no done -else - ret=$? fi # Remove the directory.