RcppGSL/0000755000176200001440000000000014360120532011520 5ustar liggesusersRcppGSL/NAMESPACE0000644000176200001440000000062713070437421012751 0ustar liggesusersuseDynLib("RcppGSL", .registration=TRUE) importFrom("Rcpp", "evalCpp") importFrom("stats", "model.frame", "model.matrix", "model.response", "fitted", "coef", "printCoefmat", "pt") export(fastLmPure, fastLm, LdFlags, CFlags) S3method(fastLm, default) S3method(fastLm, formula) S3method(predict, fastLm) S3method(print, fastLm) S3method(summary, fastLm) S3method(print, summary.fastLm) RcppGSL/tools/0000755000176200001440000000000014064644616012677 5ustar liggesusersRcppGSL/tools/winlibs.R0000644000176200001440000000046514064644616014476 0ustar liggesusers# Download GSL 2.7 Rtools build if (!file.exists("../windows/gsl-2.7/include/gsl/gsl_blas.h")) { download.file("https://github.com/rwinlib/gsl/archive/v2.7.zip", "lib.zip", quiet = TRUE) dir.create("../windows", showWarnings = FALSE) unzip("lib.zip", exdir = "../windows") unlink("lib.zip") } RcppGSL/ChangeLog0000644000176200001440000005016214360114653013305 0ustar liggesusers2023-01-12 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.3.13 * configure.ac: Idem * configure: Idem * configure.ac: Remove 'AC_PROG_CC' to appease a CRAN email 2022-10-30 Dirk Eddelbuettel * DESCRIPTION (Version, Date): New release 0.3.12 * configure.ac: Idem * configure: Idem * src/init.c: Add 'void' for proper prototypes pleasing clang-15 * .github/workflows/ci.yaml (jobs): Update to actions/checkout@v3 2022-03-12 Dirk Eddelbuettel * DESCRIPTION (Version, Date): New release 0.3.11 * configure.ac: Idem * configure: Idem * src/Makevars.ucrt: Updated for RTools42 2021-12-18 Dirk Eddelbuettel * README.md: Remove unused continuous integration artifact and badge 2021-10-07 Dirk Eddelbuettel * DESCRIPTION (Version, Date): New release 0.3.10 * configure.ac: Idem * configure: Idem * configure.ac: Updated via 'autoupdate' and 'autoreconf --warnings=obsolete' to bring to autoconf 2.69 standards * configure: Idem 2021-06-24 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll minor version and date * inst/tinytest/test_client_package.R: Skip Windows if no LIB_GSL var 2021-06-23 Dirk Eddelbuettel * DESCRIPTION (Version, Date): New release 0.3.9 * configure: Rebuilt 2021-06-23 Jeroen Ooms * tools/winlibs.R: Update to GSL 2.7 and support UCRT build * src/Makevars.win: Update to GSL 2.7 * src/Makevars.ucrt: Support UCRT build 2021-05-20 Dirk Eddelbuettel * DESCRIPTION (URL, BugReports): Added 2021-01-10 Dirk Eddelbuettel * .github/workflows/ci.yaml: Add CI runner using r-ci * README.md: Add new badge 2020-11-29 Dirk Eddelbuettel * vignettes/rmd/RcppGSL-introduction.Rmd: And short subsection mentioning need for explicit getter in output. 2020-06-21 Dirk Eddelbuettel * DESCRIPTION (Version, Date): New release 0.3.8 * configure: Rebuilt * inst/include/RcppGSLForward.h: Add some missing 'inline' statements * inst/include/RcppGSL_matrix.h: Idem * inst/include/RcppGSL_matrix_view.h: Idem * inst/include/RcppGSL_vector.h: Idem * inst/include/RcppGSL_vector_view.h: Idem * inst/include/RcppGSLForward.h: Idem * inst/examples/RcppGSLExample/src/colNorm_old.cpp: Spun off alternate versions in seperate file to keep reference file simpler * inst/examples/RcppGSLExample/src/colNorm.cpp: Shortened * inst/examples/RcppGSLExample/man/colNorm.Rd: Update documentation to refer to matrix G just like the code does * .travis.yml: Update to 'bionic' and R 4.0 * DESCRIPTION (Suggests): Removed 'inline' which is no longer used * .travis.yml (install): Idem 2020-04-01 Dirk Eddelbuettel * README.md: Added a 'last commit' badge, small edits 2020-01-23 Dirk Eddelbuettel * README.md: Add a Debian badge 2019-10-20 Dirk Eddelbuettel * DESCRIPTION (Version, Date): New release 0.3.7 * configure.ac: Mark as 0.3.7 * configure: Rebuilt * inst/include/RcppGSL_types.h: Revert back from nullptr to NULL to not impose C++11 compilation on client packages * vignettes/rmd/RcppGSL-introduction.Rmd: Updated bibluigraphy handling * vignettes/rmd/Rcpp.bib: Copied in from Rcpp package * vignettes/rmd/Makefile: Added 2019-10-19 Dirk Eddelbuettel * DESCRIPTION (Date, Version): Roll minor version * DESCRIPTION(Suggests): Switch from RUnit to tinytest * tests/tinytest.R: Renamed and converted from doRUnit.R * inst/tinytest/: Renamed and converted from unitTests/ * .travis.yml (install): Install r-cran-tinytest not of r-cran-runit 2019-10-15 Dirk Eddelbuettel * vignettes/RcppGSL-intro.Rnw: Wrapper around pre-made vignette * vignettes/RcppGSL-intro.Rmd: Moved to rmd/RcppGSL-introduction.pdf and included pre-made in simpler Sweave vignette * vignettes/RcppGSL-unitTests.Rnw: Removed 2019-10-14 Dirk Eddelbuettel * inst/include/RcppGSL_types.h: Correct logic, actually call free() 2018-09-02 Dirk Eddelbuettel * .travis.yml: Switch Travis CI to R 3.5 repo 2018-06-10 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.3.6 * vignettes/header.tex: Split off vignette as pandoc 2.* no longer allows embedding this in the header [CRAN request] * vignettes/bib.tex: Idem, also updated entries * vignettes/RcppGSL-intro.Rmd: Use bib.tex and header.tex 2018-05-19 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.3.5 * man/RcppGSL-package.Rd: Update using Rd macros [CRAN request] 2018-05-06 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.3.4 2018-05-05 Dirk Eddelbuettel * inst/include/RcppGSL_matrix.h: Remove dynamic exception specifications which are deprecated in C++11 * inst/include/RcppGSL_types.h: Idem * vignettes/RcppGSL-intro.Rmd: Idem in one example * src/Makevars.in: Undo CXX98 setting which is no longer needed * inst/unitTests/cpp/gsl.cpp: Add explicit local sqrt() to be used with std::transform to make the Solaris compiler happier 2018-01-21 Dirk Eddelbuettel * src/Makevars.in (PKG_LIBS): Set 'CXX_STD = CXX98' to avoid g++ whining about dynamic exception specification which C++11 dislikes [ reverted later, see 2018-05-05 entry ] 2017-12-23 Dirk Eddelbuettel * DESCRIPTION (Version, Date): New minor version 2017-12-23 Jeroen Ooms * src/Makevars.win: Support native Windows builds * tools/winlibs.R: Fetch Windows files if needed * .Rbuildignore: Ignore top-level windows/ directory * .gitignore: Idem 2017-09-24 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.3.3 * vignettes/RcppGSL-intro.Rmd: Now typset in two-column mode * tests/doRUnit.R: Small edits and improvements 2017-09-23 Dirk Eddelbuettel * vignettes/RcppGSL-intro.Rmd: Converted to Rmd, uses pinp * DESCRIPTION: Updated Suggests: and VignetteBuilder: * .travis.yml (before_install): Install r-cran-pinp * cleanup: Extended 2017-08-26 Dirk Eddelbuettel * .travis.yml (before_install): Use https for curl fetch 2017-04-03 Dirk Eddelbuettel * R/inline.R (.onLoad): Check for gsl-config at run-time too 2017-03-04 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.3.2 * DESCRIPTION (Description): Reworded and shortened * src/init.c (R_init_RcppGSL): Call R_registerRoutines() and R_useDynamicSymbols() * NAMESPACE: Use .registration=TRUE on useDynLib * R/fastLm.R (fastLmPure): Use PACKAGE= with .Call() * README.md: One more canonical URL 2017-01-15 Dirk Eddelbuettel * inst/skeleton/configure (GSL_LIBS): No longer need RCPP_LIBS * inst/skeleton/configure.win (GSL_LIBS): Idem * inst/skeleton/Makevars.in (PKG_CPPFLAGS): Idem * inst/skeleton/Makevars.win (PKG_LIBS): Idem * R/inline.R: Updated / edited 2016-10-02 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.3.1 * tests/doRUnit.R: Rewritten in simpler form following lead of some other packages using the RUnit testing frameworks * R/unit.test.R: Remove unused and unexported function * inst/unitTests/runTests.R: Ditto * vignettes/RcppGSL-intro.Rnw: Restore 'boxed' display of code * .travis.yml: Switch to using run.sh for Travis CI 2016-05-19 Dirk Eddelbuettel * vignettes/RcppGSL-unitTests.Rnw: Do not write unit test results to /tmp per request from CRAN to not write outside test directories 2015-08-30 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.3.0 * vignettes/RcppGSL-intro.Rnw: Minor edits 2015-08-29 Dirk Eddelbuettel * vignettes/RcppGSL-intro.Rnw: Updated throughout 2015-08-20 Dirk Eddelbuettel * inst/examples/bSpline/bSpline.cpp: Updated example 2015-08-18 Daniel C. Dillon * inst/include/RcppGSLForward: Rework vector_view and matrix_view to better support const variants * inst/include/RcppGSL_types.h: Idem * inst/examples/RcppGSLExample/src/colNorm.cpp: Update usage example * inst/unitTests/cpp/gsl.cpp: Update unite tests 2015-08-18 Dirk Eddelbuettel * inst/examples/RcppGSLExample/src/colNorm.cpp: Use 'const &' 2015-08-16 Daniel C. Dillon * inst/include/RcppGSLForward: Add support for const references * inst/include/RcppGSL_types.h: Idem * src/fastLm: Use 'const &' in function interface 2015-07-27 Dirk Eddelbuettel * vignettes/RcppGSL-intro.Rnw (Rcpp): Added GSL usage table 2015-07-23 Dirk Eddelbuettel * vignettes/RcppGSL-intro.Rnw: Several small updates and edits 2015-07-20 Dirk Eddelbuettel * inst/include/RcppGSL_typedef.h: Also define MatrixView and VectorView 2015-07-19 Dirk Eddelbuettel * src/fastLm.cpp: Simplified thanks to reference counting and improved object management: GSL objects now in signature, and no longer require an explicit free() call (but still allow it). * inst/examples/RcppGSLExample: idem * inst/examples/bSpline: idem * vignettes/RcppGSL-intro.Rnw: idem * inst/include/*: Consistent indentation and whitespace * inst/include/RcppGSL_typedef.h: Define Matrix and Vector shorthands 2015-07-17 Dirk Eddelbuettel * inst/include/macros/RCPPGSL_SPEC.h: Add boolean to check whether 'data' remains allocated, and use it to free resources in destructor 2015-07-06 Dirk Eddelbuettel * DESCRIPTION: Release 0.2.5 * NAMESPACE: Added now-required importFrom() statements * DESCRIPTION: Added Imports: stats 2015-07-04 Dirk Eddelbuettel * vignettes/RcppGSL-intro.Rnw (Rcpp): Updated and edited throughout. 2015-06-27 Dirk Eddelbuettel * DESCRIPTION (Description, Date): More Title Case; rolled Date 2015-06-26 Dirk Eddelbuettel * inst/examples/RcppGSLExample/DESCRIPTION: Updated Date and Version * inst/examples/RcppGSLExample/src/colNorm.cpp: Added new version based on Attributes * inst/examples/RcppGSLExample/src/RcppExports.cpp: Added * inst/examples/RcppGSLExample/R/RcppExports.R: Added * inst/examples/RcppGSLExample/R/colNorm.R: Retired * inst/unitTests/runit.client.package.R (test.client.package): Updated to use version 0.0.3 of RcppGSLExample * vignettes/RcppGSL-intro.Rnw (Rcpp): Updated to reflect updated example client package RcppGSLExample * src/RcppExports.cpp: Updated via newer compileAttributes() * .travis.yml (install): Use Launchpad PPA for r-cran-* packages 2015-06-24 Dirk Eddelbuettel * inst/examples/bSpline/bSpline.cpp (fitData): Removed unneccessary instantiation of a data.frame object 2015-01-24 Dirk Eddelbuettel * DESCRIPTION: Version 0.2.4 2015-01-22 Dirk Eddelbuettel * vignettes/RcppGSL-intro.Rnw: Updated to note that package turns off GSL error when loaded via .onAttach(). 2015-01-14 Dirk Eddelbuettel * src/setErrorHandler.cpp: Add two simple functions to turn off the GSL error handler (which is recommended), and to reset to the default value if so desired. Note that under the default value GSL will abort on error which is not desirable when called from R. * R/init.R (.onAttach): Call the new gslSetErrorHandler() function 2015-01-13 Qiang Kou * vignettes/RcppGSL-intro.Rnw: Add section about setting default error in GSL per http://thread.gmane.org/gmane.comp.lang.r.rcpp/7905 2015-01-10 Dirk Eddelbuettel * DESCRIPTION: Version 0.2.3 2015-01-09 Dirk Eddelbuettel * vignettes/RcppGSL-intro.Rnw: Small update for look&feel, also updated regarding configure variables 2015-01-06 Dirk Eddelbuettel * src/Makevars.in: One char correction requested by CRAN Maintainers * configure.ac: Updated and shortened * configure: Ditto 2014-05-31 Dirk Eddelbuettel * DESCRIPTION: Version 0.2.2 * inst/NEWS.Rd: Ditto 2014-05-30 Kevin Ushey * inst/include/RcppGSLForward.h: Take address of private member, not variable passed in 2014-05-26 Dirk Eddelbuettel * DESCRIPTION: Version 0.2.1 * inst/unitTests/runit.client.package.R: Add 'require(Rcpp)' which is now needed as we only Import: rather than Depends: in the example 2014-05-22 Dirk Eddelbuettel * inst/examples/RcppGSLExample/DESCRIPTION: Updated * inst/examples/RcppGSLExample/NAMESPACE: Ditto * inst/examples/RcppGSLExample/configure.ac: Ditto * inst/examples/RcppGSLExample/configure: Ditto * inst/examples/RcppGSLExample/src/Makevars.in: Ditto * inst/examples/RcppGSLExample/src/Makevars.win: Ditto 2014-05-21 Dirk Eddelbuettel * DESCRIPTION: Updated for Rcpp (>= 0.11.0) * NAMESPACE: Ditto * configure.ac: Simplified as we longer need -L flags for Rcpp * src/Makevars.in: Ditto * src/Makevars.win (PKG_LIBS): Removed call to Rcpp:::LdFlags() * R/inline.R (inlineCxxPlugin): Now call Rcpp::Rcpp.plugin.maker() * .Rbuildignore: Added 2013-10-22 Dirk Eddelbuettel * DESCRIPTION: Added 'Suggests: Rcpp' to build vignette as we call into Rcpp to get its bibtex file 2013-10-09 Dirk Eddelbuettel * NAMESPACE: Export LdFlags and CFlags * man/LdFlags.Rd: Added documentation for exported functions 2013-09-10 Dirk Eddelbuettel * DESCRIPTION (Imports): Now 'Imports: Rcpp' rather than Depends: to satisfy R CMD check for the R version under development 2013-08-24 Dirk Eddelbuettel * DESCRIPTION (Suggests): Added 'highlight' so that the package is available during 'R CMD check' in order to build vignettes * vignettes/RcppGSL-intro.Rnw: Also cite the Eddelbuettel and Sanderson (2013, CSDA) paper on RcppArmadillo 2013-06-23 Dirk Eddelbuettel * inst/unitTests/runit.gsl.R: Corrections to new unitTest scheme * inst/unitTests/cpp/gsl.cpp: Idem 2013-06-22 Dirk Eddelbuettel * inst/unitTests/runit.gsl.R: Rewritten to use sourceCpp() * inst/unitTests/cpp/gsl.cpp: New C++ file with unit tests * vignettes/RcppGSL-unitTests.Rnw: Minor tweaking * vignettes/RcppGSL-intro.Rnw: Added section on attributes * vignettes/buildVignette.R: Default to all .Rnw files in directory, also set boxes option to TRUE 2013-06-21 Dirk Eddelbuettel * vignettes/buildVignette.R: Added simple helper script to build the vignette(s) on the command-line (which requires highlight) * cleanup: Take some tasks that the vignette/Makefile had * src/fastLm.cpp: Minor improvement in computing std.error of est. 2013-06-19 Dirk Eddelbuettel * vignettes/RcppGSL/RcppGSL-intro.Rnw: Some fixes 2013-06-19 Romain Francois * vignettes/RcppGSL/RcppGSL-intro.Rnw: Converted back to use with package highlight (>= 0.4.2) 2012-11-11 Dirk Eddelbuettel * inst/examples/bSpline/bSpline.cpp: New example for B-spline fit taken from GSL manual * inst/examples/bSpline/bSpline.cpp: R wrapper and illustration 2012-10-14 Dirk Eddelbuettel * vignettes/RcppGSL/RcppGSL-intro.Rnw: Switch to using Rcpp:::bib() and the bibtex file shipped with Rcpp 2012-07-22 Dirk Eddelbuettel * DESCRIPTION: Version 0.2.0 * inst/unitTests/runit.fastLm.R: expanded unit tests * R/inline.R: Use two variables in a new package-global environment to store RcppGSL compiler and linker flags * vignettes/RcppGSL/RcppGSL-intro.Rnw: Skip use of highlight for C++ and shell snippets to sidestep build issues on 32bit OSs * vignettes/RcppGSL.bib: updated references 2012-07-21 Dirk Eddelbuettel * R/fastLm.R: expanded summary() display as in RcppArmadillo * inst/NEWS.Rd: converted from ascii text to Rd format * vignettes/*: moved from inst/doc/* per newer R Policy * vignettes/: renamed main vignette to RcppGSL-intro to not clash with the filename of the package reference manual RcppGSL.pdf * DESCRIPTION: changed Maintainer: to single person per CRAN Policy 2011-12-23 Dirk Eddelbuettel * inst/unitTests/runTests.R: unit tests output 'fallback' directory changed to '..' and files are now in top-level of $pkg.Rcheck/ 2011-12-22 Dirk Eddelbuettel * inst/include/RcppGSLForward.h (RcppGSL): Commented-out long and ulong declarations which currently clash with int64 * inst/include/RcppGSL_matrix.h (RcppGSL): Commented-out long and ulong casts which currently clash with int64 * inst/unitTests/runit.gsl.R: Disable corresponding tests 2011-06-14 Douglas Bates * R/fastLm.R, man/fastLm.Rd, src/fastLm.cpp, inst/unitTests/runit.fastLm.R: Change order of arguments in fastLm.cpp, fastLm.R, unit test and documentation. 2011-06-13 Dirk Eddelbuettel * NAMESPACE: Properly export S3methods as such * man/fastLm.Rd: Similar updates to help page 2011-04-08 Dirk Eddelbuettel * R/fastLm.R: In print.summary.fastLm(), use 'P.values' not 'P.value' 2011-04-05 Dirk Eddelbuettel * DESCRIPTION: Version 0.1.1 2011-04-04 Dirk Eddelbuettel * inst/doc/Makefile: Do not call clean in all target 2011-02-28 Dirk Eddelbuettel * inst/doc/Makefile: Call R and Rscript relative to R_HOME/bin 2011-02-11 Dirk Eddelbuettel * inst/doc/RcppGSL/Makefile: Also create unitTest vignette * inst/doc/RcppGSL/RcppGSL-unitTests.Rnw: idem * inst/doc/RcppGSL/unitTests/RcppGSL-unitTests.R: idem 2010-12-06 Romain Francois * inst/doc/RcppGSL/RcppGSL.Rnw: cosmetics 2010-11-30 Dirk Eddelbuettel * DESCRIPTION: Version 0.1.0 and initial release 2010-11-29 Romain Francois * inst/include/RcppGSLForward.h: vector_view now exposes a conversion operator to implicitely convert it to the associated gsl_vector_foo * type. Similarly matrix_view expose a conversion operator to the associated gsl matrix pointer. 2010-11-28 Dirk Eddelbuettel * inst/examples/RcppGSLExample/: Started as a means to provide a simple yet complete example of using RcppGSL in a user package * NEWS: Added with initial notes towards a release 2010-11-27 Romain Francois * include/include/*h: Updated to satisfy some grumblings from g++ 2010-11-27 Dirk Eddelbuettel * R/fastLm.R: summary() now also computed R2 and adjR2 2010-05-25 Romain Francois * inst/include/RcppGSLForward.h : add indexing operator, stl iterator and begin() and end() methods to RcppGSL::vector using proxy classes * inst/include/RcppGSLForward.h : RcppGSL::matrix gets indexing operator(int,int) * configure.win: added empty configure.win so that R CMD check does not get jealous about the configure script * src/Makevars.win: use Brian Ripley's suggestions to anticipate R 2.12.0 * inst/include/*.h: RcppGSL::vector_view and RcppGSL::matrix_view 2010-05-13 Dirk Eddelbuettel * R/fastLm.R: fastLm is now generic and behaves similar to lm(): formula interface, returns object of class 'fastLm', and had methods for print, summary and predict * man/fasttLm.Rd: documented interface accordingly * src/fastLm.cpp: Added and degrees of freedom to list of result returned from C++ to R 2010-05-13 Romain Francois * inst/include/*.h: wrap specializations are now inline * inst/include/*.h: new classes RcppGSL::matrix and RcppGSL::matrix_view 2010-05-12 Dirk Eddelbuettel * src/fastLm.cpp : added fastLm from Rcpp examples 2010-05-12 Romain Francois * inst/include/*.h: added classes RcppGSL::vector that act as smart pointers to gsl_vector_* objects. This gives nicer syntax and helps Rcpp implicit converters wrap and as. RcppGSL/README.md0000644000176200001440000000700214157507665013022 0ustar liggesusers## RcppGSL: Rcpp Integration for GNU GSL Vectors and Matrices [![CI](https://github.com/eddelbuettel/rcppgsl/workflows/ci/badge.svg)](https://github.com/eddelbuettel/rcppgsl/actions?query=workflow%3Aci) [![License](http://img.shields.io/badge/license-GPL%20%28%3E=%202%29-brightgreen.svg?style=flat)](http://www.gnu.org/licenses/gpl-2.0.html) [![CRAN](http://www.r-pkg.org/badges/version/RcppGSL)](https://cran.r-project.org/package=RcppGSL) [![Debian package](https://img.shields.io/debian/v/r-cran-rcppgsl/sid?color=brightgreen)](https://packages.debian.org/sid/r-cran-rcppgsl) [![Downloads](http://cranlogs.r-pkg.org/badges/RcppGSL?color=brightgreen)](https://www.r-pkg.org:443/pkg/RcppGSL) [![Last Commit](https://img.shields.io/github/last-commit/eddelbuettel/rcppgsl)](https://github.com/eddelbuettel/rcppgsl) This package uses [Rcpp](https://github.com/RcppCore/Rcpp) to connect the [R](https://www.r-project.org) system to the [GNU GSL](http://www.gnu.org/software/gsl/), a collection of numerical routines for scientific computing, particularly its vector and matrix classes. ### Examples #### Faster `lm()` for OLS regression The `fastLm()` function [included as file `src/fastLm.cpp`](https://github.com/eddelbuettel/rcppgsl/blob/master/src/fastLm.cpp) in the package: ```cpp #include #include #include // [[Rcpp::export]] Rcpp::List fastLm(const RcppGSL::Matrix &X, const RcppGSL::Vector &y) { int n = X.nrow(), k = X.ncol(); double chisq; RcppGSL::Vector coef(k); // to hold the coefficient vector RcppGSL::Matrix cov(k,k); // and the covariance matrix // the actual fit requires working memory we allocate and free gsl_multifit_linear_workspace *work = gsl_multifit_linear_alloc (n, k); gsl_multifit_linear (X, y, coef, cov, &chisq, work); gsl_multifit_linear_free (work); // assign diagonal to a vector, then take square roots to get std.error Rcpp::NumericVector std_err; std_err = gsl_matrix_diagonal(cov); // need two step decl. and assignment std_err = Rcpp::sqrt(std_err); // sqrt() is an Rcpp sugar function return Rcpp::List::create(Rcpp::Named("coefficients") = coef, Rcpp::Named("stderr") = std_err, Rcpp::Named("df.residual") = n - k); } ``` #### A simple column norm This example comes from the [complete example package included in RcppGSL](https://github.com/eddelbuettel/rcppgsl/tree/master/inst/examples/RcppGSLExample) and is from [the file `inst/examples/RcppGSLExample/src/colNorm.cpp`](https://github.com/eddelbuettel/rcppgsl/blob/master/inst/examples/RcppGSLExample/src/colNorm.cpp) ```cpp #include #include #include // [[Rcpp::export]] Rcpp::NumericVector colNorm(const RcppGSL::Matrix & G) { int k = G.ncol(); Rcpp::NumericVector n(k); // to store results for (int j = 0; j < k; j++) { RcppGSL::VectorView colview = gsl_matrix_const_column (G, j); n[j] = gsl_blas_dnrm2(colview); } return n; // return vector } ``` ### Dependencies - [GNU GSL](http://www.gnu.org/software/gsl/) library (eg [libgsl0-dev](https://packages.debian.org/sid/libgsl0-dev) on Debian or Ubuntu) - [Rcpp](https://github.com/RcppCore/Rcpp) for seamless R and C++ integration ### Availabililty On [CRAN](https://cran.r-project.org) and here. ### Authors Dirk Eddelbuettel and Romain Francois ### License GPL (>= 2) RcppGSL/man/0000755000176200001440000000000013320044614012274 5ustar liggesusersRcppGSL/man/LdFlags.Rd0000644000176200001440000000322712774327533014123 0ustar liggesusers\name{LdFlags} \alias{LdFlags} \alias{CFlags} \title{Provide RcppGSL Compiler and Linker Flags} \description{ \code{LdFlags} and \code{CFlags} return the required flags and options for the compiler and system linker in order to build against GNU GSL. This allows portable use of \pkg{RcppGSL} (which needs the GNU GSL) as package location as well as operating-system specific details are abstracted away behind the interface of this function. \code{LdFlags} and \code{CFlags} are commonly called from the files \code{Makevars} (or \code{Makevars.win}) rather than in an interactive session. } \usage{ LdFlags(print=TRUE) CFlags(print=TRUE) } \arguments{ \item{print}{A boolean determining whether the requested value is returned on the standard output, or silenly as a value.} } \value{ A character vector suitable by use by the system compiler linker in order to compile and/or link against the GNU GSK. } \details{ Thee functions are not meant to used interactively, and are intended solely for use by the build tools. The values that are returned are acquired by the package at load time. On Linux and OS X, the \code{pkg-config} program is queried. On Windows, environment variables used for GNU GSL builds with R are used. } \references{ Dirk Eddelbuettel and Romain Francois (2011). \pkg{Rcpp}: Seamless R and C++ Integration. \emph{Journal of Statistical Software}, \bold{40(8)}, 1-18. URL http://www.jstatsoft.org/v40/i08/ and available as \code{vignette("Rcpp-introduction")}. } \seealso{ The document of the \code{pkg-config} system tool. } \author{Dirk Eddelbuettel and Romain Francois} \keyword{programming} \keyword{interface} RcppGSL/man/RcppGSL-package.Rd0000644000176200001440000000052413320044614015427 0ustar liggesusers\name{RcppGSL-package} \alias{RcppGSL-package} \alias{RcppGSL} \docType{package} \title{\packageTitle{RcppGSL}} \description{\packageDescription{RcppGSL}} \author{\packageAuthor{RcppGSL}} \section{Maintainer}{\packageMaintainer{RcppGSL}} \references{GSL: GNU Scientific Library: \url{http://www.gnu.org/software/gsl/}} \keyword{ package } RcppGSL/man/fastLm.Rd0000644000176200001440000000633414064656242014033 0ustar liggesusers\name{fastLm} \alias{fastLm} \alias{fastLmPure} \alias{fastLm.default} \alias{fastLm.formula} \concept{regression} \title{Bare-bones linear model fitting function} \description{ \code{fastLm} estimates the linear model using the \code{gsl_multifit_linear} function of the \code{GNU GSL} library. } \usage{ fastLmPure(X, y) fastLm(X, \dots) \method{fastLm}{default}(X, y, \dots) \method{fastLm}{formula}(formula, data = list(), \dots) } \arguments{ \item{y}{a vector containing the explained variable.} \item{X}{a model matrix.} \item{formula}{a symbolic description of the model to be fit.} \item{data}{an optional data frame containing the variables in the model.} \item{\ldots}{not used} } \details{ Linear models should be estimated using the \code{\link{lm}} function. In some cases, \code{\link{lm.fit}} may be appropriate. The \code{fastLmPure} function provides a reference use case of the \code{GSL} library via the wrapper functions in the \pkg{RcppGSL} package. The \code{fastLm} function provides a more standard implementation of a linear model fit, offering both a default and a formula interface as well as \code{print}, \code{summary} and \code{predict} methods. Lastly, one must be be careful in timing comparisons of \code{\link{lm}} and friends versus this approach based on \code{GSL} or \code{Armadillo}. The reason that \code{GSL} or \code{Armadillo} can do something like \code{\link{lm.fit}} faster than the functions in the stats package is because they use the Lapack version of the QR decomposition while the stats package uses a \emph{modified} Linpack version. Hence \code{GSL} and \code{Armadillo} uses level-3 BLAS code whereas the stats package uses level-1 BLAS. However, \code{GSL} or \code{Armadillo} will choke on rank-deficient model matrices whereas the functions from the stats package will handle them properly due to the modified Linpack code. Statisticians want a pivoting scheme of \dQuote{pivot only on (apparent) rank deficiency} and numerical analysts have no idea why statisticians want this so it is not part of conventional linear algebra software. } \value{ \code{fastLmPure} returns a list with three components: \item{coefficients}{a vector of coefficients} \item{stderr}{a vector of the (estimated) standard errors of the coefficient estimates} \item{df}{a scalar denoting the degrees of freedom in the model} \code{fastLm} returns a richer object which also includes the residuals and call similar to the \code{\link{lm}} or \code{\link[MASS]{rlm}} functions.. } \seealso{\code{\link{lm}}, \code{\link{lm.fit}}} \references{GNU GSL project: \url{https://www.gnu.org/software/gsl/}} \author{ The GNU GSL library is being written by team of authors with the overall development, design and implementation lead by Brian Gough and Gerard Jungman. RcppGSL is written by Romain Francois and Dirk Eddelbuettel. } \examples{ data(trees, package="datasets") ## bare-bones direct interface flm <- fastLmPure( cbind(1, log(trees$Girth)), log(trees$Volume) ) print(flm) ## standard R interface for formula or data returning object of class fastLm flmmod <- fastLm( log(Volume) ~ log(Girth), data=trees) summary(flmmod) } \keyword{regression} RcppGSL/TODO0000644000176200001440000000027112774327533012231 0ustar liggesusers o [DONE] More STL-like interface for vectors: * RcppGSL::vector<>::operator[] * RcppGSL::vector<>::iterator * RcppGSL::vector<>::begin * RcppGSL::vector<>::end RcppGSL/DESCRIPTION0000644000176200001440000000267514360120532013240 0ustar liggesusersPackage: RcppGSL Type: Package Title: 'Rcpp' Integration for 'GNU GSL' Vectors and Matrices Version: 0.3.13 Date: 2023-01-12 Author: Dirk Eddelbuettel and Romain Francois Maintainer: Dirk Eddelbuettel Description: 'Rcpp' integration for 'GNU GSL' vectors and matrices The 'GNU Scientific Library' (or 'GSL') is a collection of numerical routines for scientific computing. It is particularly useful for C and C++ programs as it provides a standard C interface to a wide range of mathematical routines. There are over 1000 functions in total with an extensive test suite. The 'RcppGSL' package provides an easy-to-use interface between 'GSL' data structures and R using concepts from 'Rcpp' which is itself a package that eases the interfaces between R and C++. This package also serves as a prime example of how to build a package that uses 'Rcpp' to connect to another third-party library. The 'autoconf' script, 'inline' plugin and example package can all be used as a stanza to write a similar package against another library. License: GPL (>= 2) LazyLoad: yes LinkingTo: Rcpp Imports: Rcpp (>= 0.11.0), stats Suggests: tinytest SystemRequirements: GNU GSL URL: https://github.com/eddelbuettel/rcppgsl, https://dirk.eddelbuettel.com/code/rcpp.gsl.html BugReports: https://github.com/eddelbuettel/rcppgsl/issues NeedsCompilation: yes Packaged: 2023-01-12 23:38:26 UTC; edd Repository: CRAN Date/Publication: 2023-01-13 00:10:02 UTC RcppGSL/build/0000755000176200001440000000000014360114761012626 5ustar liggesusersRcppGSL/build/vignette.rds0000644000176200001440000000033514360114761015166 0ustar liggesusers}P0 D!!| zHHp,c 旋lDftIy}5@!(oCHeQB8fINP::jy˜ 9o۰?(of dہYޟ=p;0:soSފ)q#[/8C %uR5\ؓeQn F ~^ i '^V; ?al' u]___-Bo.ݼx߬o?ۨJ@c:__rE5)ėl95F(K;|t_C(:4&a04',_>9US0$KӶS`2_󏗩 'h!' 4(3. t1b@z!T y³_-L}dhK :W`v;\*]Gl#pF,dӟf) \l@&3]ab,x|1m+V-%Xϖ -bu<Ͳ.-p6f #r$֘6\>6u|M ;b+*g}3B>yI5"K*wYK2{孠2lKQt?>BZaPd5n=P4 d5D)஻6ŃnE (ו'TN\(G"x1s6dWS`6 cS.BaQ1x$E?*iqxl=F@ 9+.i~=Dk 9~=͑,HVEA&>s]\W[ue@Q;wxH&znWN&mZ9o$w5NwxG 3]NwyYUͻ9>L^t\y@y+Ox@6ߥfR=Dm93K+.ly15Sކ|ˑ3+ 3l`u÷'BD|U#M3/)W.˗P;#NY ˨;!1Bʷʾ4bpG7-a$eO}4-3$}p1Ѣ"dvӽFmiCdҵElU%R"~!~:UӪ4:MIGUtB$xXؑV~~UUq=Iٗ^ںk۰X?*u(;aՃtg/Pm2eA"۸zYh9"r l \;p_07цiOP20YgxibN(2ߦL) NlLW$aNf݋myQ= 0M)&N;eTl&IhP\sY lǾP(fz.мwrqrFlLNd%ZĦc 1of$jUdv)re5ױ@E瓧tVs8v "0K=w @[7rr`jm5=¤,܆k$^i|$ lOcjdnI9Y_ƒ3Rұ&dLTk7Nxt&pTڮ^"AMe5({?,M_,_ε މu8f2&j4wؘsl-R4g,ے9bx*Pvw#6&]b_'>t.?ְ{>-vUQ5؇ݹ>~7.zՇ-r7# `߽ݫ^\z5n}F'4>CYy_i)Ă>9fxIԑ`bt XU5'Kcq„͓5~K`>}OZ)6v”Z‡aIxŽZR_-*''pXB C̦K*2Tr$YUI^D.ªgŝ9vFϪ깹X?[ݰ.BCO}F mZgswS.lqQIeӿ>z\(BgE#fT}|8 /\ > ,e#c)?=/[nqoS;njn[SNzy` -d)d^6E,=RcppGSL/tests/0000755000176200001440000000000013552570517012700 5ustar liggesusersRcppGSL/tests/tinytest.R0000644000176200001440000000103213552570517014702 0ustar liggesusers if (requireNamespace("tinytest", quietly=TRUE) && utils::packageVersion("tinytest") >= "1.0.0") { ## Set a seed to make the test deterministic set.seed(42) ## R makes us to this Sys.setenv("R_TESTS"="") ## there are several more granular ways to test files in a tinytest directory, ## see its package vignette; tests can also run once the package is installed ## using the same command `test_package(pkgName)`, or by director or file tinytest::test_package("RcppGSL", ncpu=getOption("Ncpus", 1)) } RcppGSL/configure.ac0000644000176200001440000000200214360114604014003 0ustar liggesusers ## Process this file with autoconf to produce a configure script. ## ## Configure.ac for RcppGSL ## ## Copyright (C) 2010 Romain Francois and Dirk Eddelbuettel ## Copyright (C) 2014 - 2023 Dirk Eddelbuettel ## ## Licensed under GNU GPL 2 or later # The version set here will propagate to other files from here ## Process this file with autoconf to produce a configure script. AC_INIT([RcppGSL],[0.3.13],[edd@debian.org]) ## Use gsl-config to find arguments for compiler and linker flags ## ## Check for non-standard programs: gsl-config(1) AC_PATH_PROG([GSL_CONFIG], [gsl-config]) ## If gsl-config was found, let's use it if test "${GSL_CONFIG}" != ""; then # Use gsl-config for header and linker arguments GSL_CFLAGS=`${GSL_CONFIG} --cflags` GSL_LIBS=`${GSL_CONFIG} --libs` else AC_MSG_ERROR([gsl-config not found, is GSL installed?]) fi # Now substitute these variables in src/Makevars.in to create src/Makevars AC_SUBST(GSL_CFLAGS) AC_SUBST(GSL_LIBS) AC_CONFIG_FILES([src/Makevars]) AC_OUTPUT RcppGSL/src/0000755000176200001440000000000014360114761012316 5ustar liggesusersRcppGSL/src/init.c0000644000176200001440000000143014327466624013436 0ustar liggesusers#include #include #include // for NULL #include /* FIXME: Check these declarations against the C/Fortran source code. */ /* .Call calls */ extern SEXP RcppGSL_fastLm(SEXP, SEXP); extern SEXP RcppGSL_gslResetErrorHandler(void); extern SEXP RcppGSL_gslSetErrorHandlerOff(void); static const R_CallMethodDef CallEntries[] = { {"RcppGSL_fastLm", (DL_FUNC) &RcppGSL_fastLm, 2}, {"RcppGSL_gslResetErrorHandler", (DL_FUNC) &RcppGSL_gslResetErrorHandler, 0}, {"RcppGSL_gslSetErrorHandlerOff", (DL_FUNC) &RcppGSL_gslSetErrorHandlerOff, 0}, {NULL, NULL, 0} }; void R_init_RcppGSL(DllInfo *dll) { R_registerRoutines(dll, NULL, CallEntries, NULL, NULL); R_useDynamicSymbols(dll, FALSE); } RcppGSL/src/fastLm.cpp0000644000176200001440000000367212774327533014272 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- // // fastLm.cpp: Rcpp and GSL based implementation of lm // // Copyright (C) 2010 - 2015 Dirk Eddelbuettel and Romain Francois // // This file is part of RcppGSL. // // RcppGSL 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. // // RcppGSL 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 RcppGSL. If not, see . #include #include #include // [[Rcpp::export]] Rcpp::List fastLm(const RcppGSL::Matrix &X, const RcppGSL::Vector &y) { int n = X.nrow(), k = X.ncol(); double chisq; RcppGSL::Vector coef(k); // to hold the coefficient vector RcppGSL::Matrix cov(k,k); // and the covariance matrix // the actual fit requires working memory we allocate and free gsl_multifit_linear_workspace *work = gsl_multifit_linear_alloc (n, k); gsl_multifit_linear (X, y, coef, cov, &chisq, work); gsl_multifit_linear_free (work); // assign diagonal to a vector, then take square roots to get std.error Rcpp::NumericVector std_err; std_err = gsl_matrix_diagonal(cov); // need two step decl. and assignment std_err = Rcpp::sqrt(std_err); // sqrt() is an Rcpp sugar function return Rcpp::List::create(Rcpp::Named("coefficients") = coef, Rcpp::Named("stderr") = std_err, Rcpp::Named("df.residual") = n - k); } RcppGSL/src/Makevars.win0000644000176200001440000000040014064644126014604 0ustar liggesusersPKG_CPPFLAGS= -I../windows/gsl-2.7/include -I../inst/include PKG_LIBS= -L../windows/gsl-2.7/lib${R_ARCH}${CRT} -lgsl -lgslcblas all: clean winlibs winlibs: "${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe" "../tools/winlibs.R" clean: rm -f $(SHLIB) $(OBJECTS) RcppGSL/src/Makevars.ucrt0000644000176200001440000000013314213126314014755 0ustar liggesusers## -*- mode: Makefile; -*- ## PKG_CPPFLAGS = -I../inst/include PKG_LIBS = -lgsl -lgslcblas RcppGSL/src/setErrorHandler.cpp0000644000176200001440000000261212774327533016140 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 4 -*- // // setErrorHandler.cpp: Set the GSL error handler // // Copyright (C) 2015 Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL 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. // // RcppGSL 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 RcppGSL. If not, see . #include #include // See Chapter 3 of the GSL Reference manual on this // Keep a pointer around in case someone wants to reset static gsl_error_handler_t *ptr_gsl_error_handler_t = NULL; // [[Rcpp::export]] bool gslSetErrorHandlerOff() { ptr_gsl_error_handler_t = gsl_set_error_handler_off(); return true; } // [[Rcpp::export]] bool gslResetErrorHandler() { if (ptr_gsl_error_handler_t == NULL) { return false; } ptr_gsl_error_handler_t = gsl_set_error_handler(ptr_gsl_error_handler_t); return true; } RcppGSL/src/Makevars.in0000644000176200001440000000026713553062260014423 0ustar liggesusers # set by configure GSL_CFLAGS = @GSL_CFLAGS@ GSL_LIBS = @GSL_LIBS@ # combine with standard arguments for R PKG_CPPFLAGS = $(GSL_CFLAGS) -I../inst/include PKG_LIBS = $(GSL_LIBS) RcppGSL/src/RcppExports.cpp0000644000176200001440000000222312774327533015324 0ustar liggesusers// This file was generated by Rcpp::compileAttributes // Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 #include "../inst/include/RcppGSL.h" #include using namespace Rcpp; // fastLm Rcpp::List fastLm(const RcppGSL::matrix &X, const RcppGSL::vector &y); RcppExport SEXP RcppGSL_fastLm(SEXP XSEXP, SEXP ySEXP) { BEGIN_RCPP Rcpp::RObject __result; Rcpp::RNGScope __rngScope; Rcpp::traits::input_parameter< const RcppGSL::matrix & >::type X(XSEXP); Rcpp::traits::input_parameter< const RcppGSL::vector &>::type y(ySEXP); __result = Rcpp::wrap(fastLm(X, y)); return __result; END_RCPP } // gslSetErrorHandlerOff bool gslSetErrorHandlerOff(); RcppExport SEXP RcppGSL_gslSetErrorHandlerOff() { BEGIN_RCPP Rcpp::RObject __result; Rcpp::RNGScope __rngScope; __result = Rcpp::wrap(gslSetErrorHandlerOff()); return __result; END_RCPP } // gslResetErrorHandler bool gslResetErrorHandler(); RcppExport SEXP RcppGSL_gslResetErrorHandler() { BEGIN_RCPP Rcpp::RObject __result; Rcpp::RNGScope __rngScope; __result = Rcpp::wrap(gslResetErrorHandler()); return __result; END_RCPP } RcppGSL/vignettes/0000755000176200001440000000000014360114762013540 5ustar liggesusersRcppGSL/vignettes/RcppGSL-introduction.pdf0000644000176200001440000032563613760770463020254 0ustar liggesusers%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 4242 /Filter /FlateDecode /N 82 /First 689 >> stream x\ksƒnR)aܺ*%Jvk "!1$h;`@/ e[0>݃LxH(#88gx',BDDHpL1)D:EDeAG x0YbqJ$mrebeb`,:I8%8G#2Kp:QZd&Ad΀ HE!*Q`Op:Az=mtAJD02TE<}AYJE=FAyhPMkPB @P61AVB,"\ M R2:" V<B($RJ0tBee!zt -VVeme@OARA0C(,( fh\ aUV_Pƣ2([ (;]Neeg@كmK_WŽ:u$Y=_87_}]$1ꏫG$?;"GU$'/$t{e&4/KОLs~^ Q5܋I5 ;xq\Vz:$K G_Š^qAjVְM|RW}ΚoGqûV:ZٔeUU<#.<E{󟷀Q)RcsgQ~-렎d?AxxwwvvuutIvGw;g7F,)">Fi47MӀic9~?1+Я#k5@G@I=mEk# g_t<:MOpoH9f?Ǘ$ wT0סybB4; K PTb3: gA>ہ.7ydk6@wjtwڏµST&>ڞElg.~ws[0n/=m}=aO3v~aCvĎ;a%{`9;cgn`6 qU*gCV+a>d|;ݳ v\%l̮XJ8`b5Ÿ8R\Q5dٔ}`6ej4<->tլ?Ul>O3o1~ 3^Şž r757=ѻѸ U3~8<*/0=t  tAGO.&/N젓o_G8km8}'HS,'fLZC2XpD១" cwCa,up& Ȥe#y"ɤȿAtbОg }." D>J^u1"lB 5鈶B4z۷iޢ4\o ?27^'}3<^(Յ!jPq0bx6ɢTb[l-s w& W@q: Zݞ ۗ]<).fޔhqagJY'ZO/ɎpۧPi(|&ÛzDcojmkݞ|yćӑ[F\y>-P"nFߑ R7RƗ',`_Nj pӚ[J殳råVj*b'ǏAŕh&gU T Wдn22':%7b}0\>PH 6ZP4 g))G P讆5K.N(K?\ Gi1YQ#BI~dXLb.o8IOhqO O<-4 2u>w,_J@lTQvaT(JZJS28T8+*q*, JH59S6R"L*Oy{M&f F5JU\1+1[1>WG#:Fw PY^ 0qhY8j"t?Ueq $n6 n?W%aAKIg y5F+a\|7v{;SɁ{!ې_Zn7fPv ^4/,Fh2]L)&t7x!aN꜊z~yN}) V ' MwAop\LwJ()Ф4.z*v g%r:&ōmѡmnfk,Yms,8z76|}rؐN=D4߀'-d}9v{{U^#`L@-ygSgx9:.K-7Bsr6i:SO ՛Ėkr7j-⒛ X8_ ަ|g[?e ] <vG6wf֦ԙ'^/lizƲ/ oъm<ޮJ%4)ZOg>{iȽbOI 3꺲XpVzHoW CXc %CW[9Dleps=dv@eǞƖGy+ 1%I9k\jd-LSZJ?S\^e 8a :|MRBL)D `+UF}4iP6g ߊ?K4[qL&dβW(ҫ ߂'UhCHrzEAxR̪6YRJE9Xש*Myܦhy0C=SCuVRL{"SF4տ)SF)MOI^IEjra>(dp}}pzK*P`*' 5IG;T"흱m9BMw>yHu'mu|w8=c7Jtߪ^VO>(Mx*28}85˜kyW!]ki5SMIb†Ҏ=GncʚTh[<"a-S0P 7"^M2`vz͙ PLC)z (w\bRoÓ6i_ӖU"}5( /՞^0M^fHha&ȊO'{/̑;K%:oIgWK9}S״iuްH6fTSnO2{Uz^9EOGEy1*Ĭ!thqs:Fgɝ{88"R(߅ fzw nVr"N,ԾXڱQ6Gii]sIݥ)m4w9"T{= &>pJ{֑{BDYaSao~HMrz' EOzt}Ýt0d*rnvP~ a7c>6څ8; ) (g{2O`n>wF,0 5%㓥~'i-iJ~xz$Rotdp*˞>i_=ȁ<-zIλ4SXAIp<*7/"\hDd6q+D'J'>Y(ZFaq%' ?݆м]hK+KDك1Z켙@ixc#e؇7@endstream endobj 84 0 obj << /Subtype /XML /Type /Metadata /Length 1549 >> stream GPL Ghostscript 9.50 2020-11-29T13:06:27-06:00 2020-11-29T13:06:27-06:00 LaTeX with hyperref endstream endobj 85 0 obj << /Type /ObjStm /Length 3169 /Filter /FlateDecode /N 81 /First 720 >> stream xZis7Jifplsd;ޤF$Ԑ}98IQ>rɜ@?tn KsŜcBk<10e8ejɼdNb5% %3q@cǸԆqmQ qB0-LD1!8FH4 ybGD`gCr8gr.pAdRA Lq0…e)1 L+q0m1`k ($3aB1#d ͌ ÌRp8/<32aKYCi*IړPC/hZǥf9LYAO,sPwǜTh,LS%è^ ؓ`D+E0:<9(o0WdT0ԗ*t%KH &*6dSK=-Iڑ1- K%ԏJqEvJCV3=Ɛ.!&m`4g?M}$$f3ůқ6YyL}LYMVR̮'e6IQ]~%H|2_$[ry {@y-]㑏 3=\i9_-LGz6Dٟq94l4x5 דt2],^=zt$|^I JR^bEWgAPPڝ|#YnLC:P>ρ&PqyPUɈHᷯ+CWb#lH"46 G'.K?CۄW (UCqZ r|{rL0Bj]xW=e /(# ڗc6ʩzB_^-f4+t_e$XCқ[Obt;dCqZ^Ҧ%Irî{!N{v} l[\NY)L6}+uxfo ,g1KLabw7edvjTo.SVL٢g#E4,V0ɪ7k2oE&%I|mMpEˡk* hS*`:;KϬȭ CβeX?%T e2>Rƌ/Ūd`?{I7̉xқIl)+/XxxdЂ|N?cqvXbe*Nj:(_'W <]]]M:f{<)Z$/xrx>;'aüB0{r9Y"PChC mB#Z2'y)o{vV^RpFxM(>vpYI Pkʧi$-$5b6 SҶER?,f-&LY">OxO|64>*Njx*19w`g!yD{zwqmSe`Ic-5X Pbdjl=ڂVn1`cd&! 7@a[h#JYm`NH"m@N#4KDIELGYw.}_ J{[lhV#KH0DV5&o!`2GT`G3Cd A-d#n6b'PNAY% Ą5EG{,OӮAy #Um802hF iGЪ.,忷`5[PF ɑBE\HSv:e+ʹxsSclt:c#4.f`MKie0\%Ғa>$P#K#w*[;`TBF{P@\5"8^ m[;@\$ߓ,В]"΅W;(>}*0xb"*5$ݻ@: S=y6%e(t9ɣb9 £"}sv͑u)ED=Y$8a}bU}tUu(fY#ө4$" ]ЧTU>۵t\[5}\W_7]Vh*72|VP2o,`/]9 |e OG~fUa*U6{/h#OTmߒ+@iU ɢa"6#:B©0=)`P}-JۉuAEt899.&yT]MWh6/eb}ea'F&/R}m]."$'$f aBL>:+PA JcinG%"G}v>곷vIwKYt0<(vҗs1>77XɶNEoѦendstream endobj 167 0 obj << /Filter /FlateDecode /Length 6398 >> stream x\rF<F߁%̌뱔l:[[ =5{.ݸȤ,˒'Ucs?_YYۓU:jO8ɴTdMn\~"h~8L8._bfDNdN|{&za%6Yt?mE8.iAjmOV&DhF,S/+U"iY^hf; LpeSoG(Z̀^e£(8, 9_DRƉH$y]3yfF9nw:wo'̽[ T8A,D1?,DO͓Dbs1A틮+6s@53SSLZi9rBmR1[j{KyYɫЮidx إRฅ0 HJ&1c,dXMI,"a1suOW%0pTFobsSk3zD섈|>I)L։$l*PА@梬VqY?6}.Elm&fM%kP`\涬 92IrS\SRy$@GIP[Z%V{(TH kt :?B2:[EՕX(/6`[gDaOBoxK!oLD3z)q)1Q}#;Ҩۢ)f׀G+-.\f38% ^F$ \ʏ~FfqWs~PM4z=JřդM޶7%] ^M<6ϥ"H'D<|;!LAvy<_yA.z!DC5%+MlȒzLOb%j ry!4O7US684Жmt9x4|?o;=B9\#ג㟨:j;=oؕiVJ?ch.eQW; v BĻ"cwN@ :L)S rzgn`;i%Bδ=G9$14*tоAI*C0JRA#{6޽ESQ_ՃV)O\pM9 &"4}fH%aoT֚g2r˸Pُ7#F!Le!Ey!%h %[V:|dpHH 2ynDH?0xh~^AʫzZn#, *z'23Xw?B VCQ:رݮn:?KogA[NA'_!< D!?BMv Uc%j8FX5}.o߶T*Zٶ&:iizuW.zYCKNj:_*46*gIzGNzE9Q2R)3;Ta6xik sϾ7z[=1h2{?tEҗU$ Rȸ#(P1>S-)LQh .{ k+B@nA#?xv s;"(T< -״=T@v!JObbnШm,RD2@4!*ʫ T2c#DId}vaWRd o G⺨^c82耇#i^G"ʌ1f1=t=ROXBpF|p$eh IJrHdrH kd. b-`k dg!a{!?E*YT">y& %cLF)E9zQ7=8Ic9^G;ThjhMwS.c[VGfn0NIIN0N4y 8I$g= 7ѻ<@5HЅ- l*|g!"II?3QV[v) /d@'#E)vbg*D1Io"fr_l O:kJQ c|wbΒkJX+=PY;R[ab'QA"Ov"3^]鑏?5_/6/,g;e.j12iSGDbDT8~%Rr \Ktԑth1"o p/jHA}("(QQUw47U}dMbSk r5bs=͟ xfz9x2KNBPDdb[堐%e vLGBaw0S38^oꤵ$O S䶤j4p#v26ZXF>Q{%ǰ%L>@.~U\CUW)zw锰01wxA! 3~𖞢 ʅ)#ZC Y ^v&͋#!`0VũLBb$~~xw?fk4d3Xn4+05vMGq}&&8ϕz2 #y$Y\o<>`}yx/fYcBt#GdZ"E[l6Uˀ!h>E]DR7H֒I "BZB_b.zN=6)؆=د@brJh'e>g$p߲h`wp '\Mq0mZ du>딊}D* ? Bb+ĔNЄ3/))nSxE|L"'˯8f./]M-)'EDρWBaQ52-þVБ&Lc#d }v7 M}!΢.B/bhoL(4JӺFw>ϨB'=B lXdyu ~qtUpiME6/B k./О G̔{/uS\,|UB4)ċPmV5N=QU|@lLwt" ) e8>(mPp[LH0͂w\4k27rBmb DzyFDu|e}: vu} 5Q_7$W_n= NF5J È/%IZq6C?r__>.2 2{uT%9謕Hٿc\㓥lS> RĔeNpw&Ɣ%u -DbbGŤ}PV}H"bR MLjge2]$V|0O'yGmO :m%ԙ 8n%si3䲈o2$Dgxߘ`E'_YS[b;idKnQYQL {3RDOw:.#gv3=3q `̥?D:sIMMuHt{tn]:vD_D@\4ƩT7~džj|L=A/[9~YC1t1-1&e|ttY2UV $Ʊ5ݽ阫N0}BTxa0Y:SPjS{у_ci. XT&*6ˈH;9 ,K;8%8~LdM&IJ,Ӆ\SG%7˥`CyU` L/OLP_>bGu#nftRF/ 2U:pd)Xq*|soN47<(m6=4 ŠA D|H3Eˡ?R!z}\%1J~ti`4p/ m_Wep;!PaL[<{6+JƯsRG|"9;n$a~\档jm]Wpպ-FK0[om.I&>)ÞƯ{Uԧz$V]q'Бtn~ W5dz+){\_mt@]M&*I~`InE_~{Oo~5zQ[՞/v?y3T"_o;؊bz BW}\؏!o__z-@.z@BlnkoƮ^zc< Vm*6wӗݯ?xuDzaH'TpEd_'6W7+:TXM>w69[_²=Q-BQx4<"ib\`~D6MIC>IXx8Y(^O1zt߷P+Chv؈Nfo6ؕi a~^)o=m|)7EVYSadS:z:pX[T^ʆÏxw`w0Q[e1\֫bz-odɺJf$淾9N꺨J7#-~jldD}uل~z2Ŀ!+v\O&.?l6Fe>iA 8hh_2u T+H} p7mF/qtS@ڻq䕇Lrze_ |A Fk꿃ust{,]{kvcv(tlՔ-;J,J"P2raA ^ߍyݿjj1jqL@U;0~t؅{$⌸ w{; < endstream endobj 168 0 obj << /Filter /FlateDecode /Length 7180 >> stream x\{oq7C .%.Ir gqP3CɑNH95R~q43Zj[4|tE.sWTf<+7g? zp7o me^R-\y]qk06WZ-JiRśYa#r[6:,u벴݁Nӑu^-faMkA ra%t)+/`Vpua;EaM3 ݲ[^ήw[7N#(Ы%͢wCݴ[F,ȕ4W@KjFCH(dEw4Ml`Rnnvol 0k"tLʦۖG~Qǔ`! vM5 ߔ{+`Djа!)i 5 .`8emv5e!Dv&7wnˬ~iM5Civ|V<»f'?6#a89 $"w ǰv~=x:rrm70=T8۟ \,tf#Tw jeC7M7A)Y- s{3έ-O3JLJ-aK[d"{o5`eJjCÉ_R-i| {j$v\ƑxZkvlt~jR̖5ɽsܱ jBK!N-Q+鬿n %hˑVpeU)@G˼N\jqFs AP3P&~Dmoܛ~ef J X5S`4n ek/Yn~ws&J<}jR=VU&E [~X <6#ռ'(pbI&uᚍ_ 0] NQKAJEu  @n}C;hW`Yq7 ]sGTՍ`~KOo"w4=_ueI0q?!-<4EhES`L%}`O=X"2\tO K`(4,4fU\my|ʾ|_u_kW0}Tq ٽcVS'( &s)& IL *w뇠%!SM@i+FOJx͠/o1(44w_{HC7,jY.pTf)}2UӃ"dE9[{Ad;o.偙$u+F\ja1qO')a eUZFHap{ws=GD %7rOvIKLJT"t<}=X;uz)S7Ș'Fekg NR5BE ̬C7ݞ3Z ۢ*{SF`Mg퐧)4[ lWI&,1ۡȈ$8DFy,`Pp>UAilш@eb6*M)r[9Y1m6̀dټ~0 r[(É@mSn(FK]פ~\Xt_#eM2S}!h#W9(YslV\ (U^Uv!}x]nt;'Tj1qLD|+avM}(˫07?Ѓ:*m#ftS"tY7ʰ k;]TuL;"o  9~EEYF紖0Z}4ܮ7oGTڠ}6ix-)`[{,iR8W"5c䙇vYΞlۼkF\*f57~ےM`6#01HTւjkK5*L0V(5sJ^!〪tۯh@дމRZ{/NԘ6Ss0JҴTS&m{r1jp+6\"zVYA+nr ҫȸ,Qso[b¨߮=;?2ful*vaDH nJdK#C66twܨ /!B|$khJ`,4PF| p]C CGM,C&@P^ԣp_6|C*{Ok9p?B:׻u(2/'gEy=&xc|Gd;>)1u. X6Nx\PpwqƷq\c*D :Z(GFXacG (4BhAaD@A9f; R\1H8]?_xUELgEζu q}?޻`7OP&XSaMm͓OlU1`} }{o>9QY_' Xp0BY A;ry@SÕtK'~?<+|$f\SO IHSJzEQ#@MU\7h=.!xa6jߖ@ZKo>S$tIacT1tނ:_T6kw0 ?4AͿ_i|ȒЎo;-~D <9 _=~k֏_JHg >Dn}'m؇,zݼ[Ϭc!aE Wi?a$s\ a_ߍS\j, #6J`HFN AA ؤh|u dF$_򴲟gZtʋMJTӧS{D_3|9 Z cĠ 0T A׻MVy z#)X#F,e}2byaֲtqOX1RU\g?o ~W.ן rgP}<޳ riKP?~YvBP?eTU۔nف I=YǗeG6{֟RhxJ<: E[.^6Eu4hs1ΏgJ˅4ww(8P6p8djol;*ldWU>K VX\ (? @2ξl!byW| _.Mp}S)\7712|4hT35p,siDێݼAB0Raǃu02Њ 8+M+j[K`( 8>~x=֮?fn1@})aF ϥ@%t`)]` tEXaɔR@W[f-\g4ԘZ%ߝs6gMzך/AV8e!3j\:e 2{3&3(|^`AۅNF0 k\jI\͚PAt=qL4/Nnd'ebH4Yrv!2)d]*pl,ɐ^h'#Nyh}k4vj6oh@Tn}sPi;s +J\_Fa GM0Ù bSIv %x>R1ً͆U*8?f'~e_E^(B){0Ss~Ҹ&S#rg|i'b4sex"mI9&>P t6 9v>7uʦ`ˉ+|bslb"1Ⱦhku*HP jZNW@GWEr|jie",4R.fV 1>7Yn),ұXbPʥ)_ p}R$5}ڍ?pe`5{yls2-;wLQ~ U")I/ȥ4AhdK>|ʧ'Dm y`p—# ḇxQ+T "ߒ7(H;θR{_Ԅ )ڟ֢c,QRkSF1&<BF޷7I)6E{*ey3, B N`MڸlsvzӐ qTv7s\l(9m|Bv֏n,:f+V}ԦO8NE!Ek!~XoA KxT<,-73 g<#Lr!m%a(Dn.Y-V?$c ;Ϡb|X}wSTd1J=/wjovQ)C, ٷXB\dv0ngOќ| <ONҢ//i|I! N~{2g''JƗ0-ēDoW_ a9:$W@]b1pUy.> stream x؃-6w%Re{{o\U?ȦLI)M.⣻_&YJ&g˳/~`zrۜeif8eC~H-W/g?a0'*&oܜd"Ha8L*&'g Kܘe*ZFxR6zJD4|M@dQfJ[iF;2#t2j+9c )0.٦+|,Jb LOIM.<8+Xry 5ҤMYw DnzN -/I HKU:VFiRVM9/,db2yDf"w?~?}¶́%T#䧩I@BKD WHfv4~p_w.bȓHj:a^7i8~ıpU'p'vUфQ2Y+X S@q, |~^W' H)ahvXtR[-( Y]sw pe-󦑸ZvaGb+OF 2Kdds)2VYȇ j yM)Id14?$1GA"r:&C.{{[1 ^T<0[VME%ʩ|^. '|K@)"_ l/"&O3ϒH3II^O 򷔖ۿJT{hx/W" xRJ>%H'm6=9#LU:2Ċ?s zXLXfY6Au^vpl06{r&p\bB9pLʀd]L~Tv>,>sQ?Z`83bXG-Fb4` sq`n̉b/pq0~qy,3R͝!=tL$Fdbh̤C m7bF?r6\yXb dT;iBC4er1 a1GZla*`qR{~5$%Fݦ\%o88kZ5$r?I c)T!R_T2XE`Yz42ufQD2`'XSm3$]-LYwNcxYr?+c0צpE9+7#`T0~JCU@8Ъ%^R1})Mb5iJpȫM~[~S$7a:Ώ.eY+x`T3SabXHE0,ͬZW&[aWa}}WC[|Â{ݿZ. DuY>KY,sbmHK 6=s+-)_ Ca)gH;a4-'՛nO v߆xAvlB0KchCfL~h7ԜcjКxF do}%ͱxha4i#=?{=t,?t-⒦*dž,UAPh:(.;DIP܇x5'dnSVx^xEMz>fȏ@27I"-%0&6 elzcEq7"ݵ]+RfsBS|I}'ƼX-'WyLz\ y {\PNug. !"7F"ƥu 7bRz{ KЕhb\K,^ۢ~D">`y=&316 C.Ua`L@x{`fio}5;ad||ϝ_*ijFCǑV>⩮ih#z(fxdԅmL&U94O&텏 k*Ggӧ_c^>3nJ0ߢ,Y97 fs MeؙJZRo|Enyo/\D'Ls7vREmCU&q'@ԯO;HIcϒk1.E)E(z뱼g<}k4e O>Iqbɴ곊lvW6j7ݢ16R;bT[8l w{@ӗ)=tipuev}W͑k+_D T5Mtj *LoH}}R ۛ&e>acq}!uv=z3HlOx(r!ӁOo@ eT` `>ֳzthG=l5.^`"*X bxX?l؊"22䁱9 ڋ!?59A-+cxsc7w.']ڇc? 5ۖ@2یR٬Y/ʿb(l0{b9GlsE6cXJJ^y-؎*ȀryqqQ|\͇'pIawLsUoBvDV3fz(ՌXG;%U)R<e  z ;43@pmJ:΂>$ĩ%G`Aԛ H^h6|6_+\sz]ܖړo}DT^(_+{CuDGdkM8AbtVh~vxA°FbsƄx7gzv Â[=x%U<,j0wםSQAFQB d=$^pM5cW5fwQ=$p2 sow1(MϱJQ.r#/Z6B%!T9?(Jd(s`Q;X-zEE:m?{k}ⶎ?t=?gtUfy~; COYqX.=ƚ&<V[<0<=3s /8~V|ZqFgtUلU:5ȐMpnP,?7KkjS&S,fÚͺG{}t*A ޔWIdM=VMSa@iftgXzdP/Rw<a} d{RT}I 3ek|vc>7ic5[:iwz "X\ "(?\J9=b4/5;xu=љAPT1XaB3~=>sO{qNB=7è0bh  уCnVv;kwt[`HmecSj+nɺnAlrfZܶ05o: ̋|Ƥ,# , l1m9-X\6aV!c鞌pN9NF҃YByq$tNv:g3G0t~ʑ&Cxŗ?F@+i(:S4}ڌJzcjwy>ݧ],'$ğ=u~tʲ\9b0E.͈n+lf8/ ԲL4ve=n 7rH"՘ˤGݽe1;ZB`KylMg'9i<8E辪ŝ#EqX]BȮL~)Qbi8[W\"eqAXpg, džq ?}qU 4]gC⇈:#RG|$1=To>}D\tZX^:lWT;gW[udsQ3cw>O$„Jر%K%ȗαmꕙ^e!p!L .9S~Br8~~gKOZ2;TWȲ4pI$,m,[ g+sZv_|c?"8YLdJW|nαJ59gp?҅1??`43}C~6e]4o3WX8FVukΡ W&Ky[qF?DHb;2}S#bym+<-f$m0 Y'L?=Ub:7?aˑrendstream endobj 170 0 obj << /Filter /FlateDecode /Length 5550 >> stream x\nG !8iULMRH]@$g>~ӿrgGp3jG]?gp#\QYoIiGLs5:tV2-6K?,y~ٟR͑zJw69"o~[dV;I;ne r{=_ǯdچڐq=[Lrr?,gߗȒ\.&"RҤ.;dne#MEf-GjA&^edբ /l"F,L0rR6ye PCq-JvVOmWM]JWL&n p[$Ə^GH{]7KO(9irZh80\lM'%_Te䲩gD`iV)o?lg:!&e&I1%ɼ֟JO C(ˁ@^zu(r㰢;M)7b+Д+1FsRWTrft\,6rdtySLժK[3 18?!˲LT\ԫe5 7gu +8pT"Ip (UzLb5KzҍHqULr$a!U?-:LYQNG2|໳_ m؈s3ABeุ"oϣ9B \}G4:H(~LH[Bɜ[:Sxxhr"9)2.GJɌ[MjڔH'~! 2 ^ Q=b9ǧ#&&㦄xLe0ۤ66ٳK^;~?tB/1EnYq'9C-ǯ뗉7NRQ`AVД9yqNAZth֘nʨBo!2G}լl㟠`hTߑk8X}8_yH#4fBh=PPD>ɕ͔2C_l'3x|W߾ ) UHjO!DZI\oz3-ojq\dgzX_Pd$4+p>o2l*sҧ[s<ʏ>M ;3?^ϯy3c"w5 *rQD!d>Z@evS󗏗 <+$\uүNÇms;%tZdzӫy;䏒+R2\4Fd̓=|/P}w| :CaP1:'QDZڗz^"ju5p` zF"'! !3 ۃ.^I*dIwg9BҔ9i˲Wqӯ%PBV2I̊^g{pD>;NM8Cʔ2Oul@@b# l 8G#,3$GU<'vPܮH~GA3ƆxUDYhZG&CѶRN!X]qV$üUCh[ }\C{4SC3UAjw*(Z1M.DTgסs6|b{4RdcoI>oYbPlg0iWk㣆E1~_\}*O}9x Mk)myڼ(BKҒgݵ?{ÅXveBfͺ^'B ^!vS+1h{ް[n=>;xdvO< !:X}L@ܮV{  BcL Ht\ϗ@%ŭqZP~(ffZRLԀ ֫f\~X#d f,@\#nCȭ3ض 4!-C08=8nn &!Bu4lPu1*;+ͯ1ZSNlY6 \㏷u>΅Ѡx%2 i 7ˀ/ l<RЎ7q8\y.0NEsE5(=<.=1{ Rl*d r \BʙؑobrOH㣳*jT1@c7|p]rApi`bL'XZ o g݁I;\rpNJx. WxiQ6k<IdR.Qw=fk:7( ȣcِjc.;=,fq$A`=/2{w Z@p/16Ǩ;°yùDCz>:Pf}K| G޴# Ҿ5.sp۾ _=wӣJ2ɱe@>wrEp< 19M2' xF*i3fd!? *тSܚ96ӇH 8!kUq( Hņ~uA`y((G1<3*|\z QaBB܀4;d HA;*[8BPPR K `DRJ٧ )/{mU$-D@#Sقw'`}Q6xAE`Ԋšh`}wOPe,y(sFIxٳ^lh2AIVbkH- 0JZrZoŏ׽o>$ '9>! yHنZ_зwCG?<<{z`<\Yr CSFСֆ8@OB<{ޥr_78cX蝓u%mıLâs3UN oIMw )w_T;rn~t '>op|4ѰrWi20!y*(ʸ ڵSǡb֦ݩK ]^iex\E+Z) Z7^*3C.s|ܿ/3)Xuqǀ:lE\K0<99:~ww OPI=-#G^xyprr7ɣoi3 o8n|'4~@)aq լn4~cT/6p-ÖmO:Xvz1MaUJ\Խrp[:d4)'n,_;p MϼhAԖɵu 8)}b.Ijl7R&g) mIN=|gj. jd)]ns!6wϔz~7@{2XS{l)ymWMߗF:sT‚{t:+|3hBt`-sB?4-YذI{3˥ Ӣ`sOc{Z!Ԕ*x<=0m4x3b=Q&)u 0IJp5U<=h=Ԅ7-9`tYGu:cӁ~̈?go=6 <| ;HnAShE;RIQa1v˾`4RҠ#x)E$h#6|24)!4Tm**:4MSj6+7Ҩm4ighv<9b2'?~BAQ]%J}U=WB2L/m|"y7j:ƑCBAtm!P&I`J&iۧ۩i(k Kl~dSA;t$ KS3, 򺜷;ܱNU58L$n ;<ݡQV 9T3r-3.mHnpVV>'¹AJr*Д5@Ev n4tz#QFJȑo˪:ue];ИG6#Jߺ*^5AeLh@gӀCݩx3[?h mqS`R..F7ć.r喳 o8Yj_{{jvs;Lr >JCYx;qUZֳb9a„E3Hҙ>hj'f Ξr^W铃CzBSz޲va&-*.~6rdWM1;Yup)bKhsB /Q ty=w@`7I;\ll:(p1ueYavbuRY$s*8$fC8r>os0{- \p*ӗ:xp'9v|": 9vvKSWP{&\"a6Ə11'MVPr t@I7]b'endstream endobj 171 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4698 >> stream xW TGeQQgƍUpdWwuQ`ep2 .vq׈7LD3qK4%kW=cyw̡W~DaJ$ R$E͊JLE@,}[-H{NmN3^bB!dbxxuewE`sQ/~DQ/sfspr>ENU'd#ej72/y">YfKKʔ$yE6K.8E\6ez| _oz(`7MA^˔qde2&]8_TQ4JDe(5KJIU )?Y.KG&t ^t>gJIITUVe_J'ƹ,#NM 1̧FQGrJT4__eQ1Aq 3f/87gι.#F~r1c]ǍtjL fPè-5fSʁK9RʓOMPʋr/(jK(j@PӨT JQF DR) ʒR)P}~ ՟@< )Cj2Eߣm   c ; [hS:@_c$L(S#'g;XXv#PlCXﲆ#t n^pof[MeuWlԖU!-8p;̍KbW[/mv "O) n5E 3VXL8p{ "l,:O =yRͷoܼ'%U`ޢp4ض&v֝XDPE {#ŶtK\}`̷?zuB`ٞX z.kXV|>6Yy`3۽{g _΂PPo4wܔΧi 4.]Qa|J!J;jp OcYXexfѥ~sk'l'M:*=ҮnG^b1BVb@/>c;o`w,H)m?I9Ǫ/>0V]]n\(̺hfE%yV#>0:BɏT[-2b"$p$fZTCQ3zpm|n У:0rځc}A|nbRia0~^k֠tvQ첀yjɊ l_ 55Nt3 >76oTĖWjNM ͖u7%X p[8zS% XLG Q6H>*=̗0V1{Ȫ8<%$W׏wpDc\P*DexKd+fu["6.+Y ' . #88; ;R\ Qp0_|+I3"fھ2KR*hFѹSgr, DHń{-H.+\̓4T޵`OO( z4vAK0~ HFkD>%<:9ܓp\o߉?+k?PXb y \)o;Po7޾e0*"64xd~IH`!&XD6C@lcµ[L<6tͺj`漭qTޯ _n@Bxʭ 8Ӱ!0<}\joezE^}foJiAyEA xfw,5h 㯉t]NܗcG}#ꡃ5$<:uA ]=h26G."NI@jtuL- ڀn]%ݚh ݑ^˜ô*?k7u骬~D$Xt,[_/ L=:+rR%UfXrHD@ 51B] IJX LYMD0Za 5)x0_ Jo~ͨR~AF YV9xc!89 23.RL&D-Ν:%cDgo8PJ`Z}g= rҁ qfÏ0 "xk {o4:UgiQ =Y$k^4TDKX' ,mi>Ptu|֧J: ~5lt'6|0e7_eb);Ycug}z5OI`noϼ%~Ldə9GrYD1Kg܌s0 8`$g֎F!l Izk5CcX8Q2C4]sp_JxdAlEWI-mofoJBjvS,}2BJ9}c AŁ֗s%%'Y9%UيJ* ,QAF-ݮA*4+,]"͘wy æXe*A! p %e!杈omFvHX$ɚ,BVڝMB#gg@x <:ίCu5g"^Dq.O9:lWI{&fºkˣT1() 3O,_w@<{P !D%WrڕHwa]=#qP-CPJskh }HtL;`1.{l漢^G` 6qau/xݭ|-ip}.)3^Sؘ;ћh}T P qLW)IUR5ib,G!c"B6 6+Ҫ{Gj> V'FK^ M5P$(|#)X]w&_h9aa}N̬=$j\_`wUHPD"J`0,Aaf,Jh"#HQU +Q kbJQ %endstream endobj 172 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5731 >> stream xXgXT׺㰋3n43+5L"EfAz4A@PiRD H-ֈ!D9m\sF>}3߷%ZJ" Z`ZI%MI}8}xW85h{v$hR_p2A0d Ճ>"M!AS1u uR6o pu୻1D3(0(WD嬯G\nkkfW}E~*7OWUZKQԲ*#E/ X,8d-N[7q^bk O~o0:m_Ξ3w޸5ZE̩є5RV8j55&P6Dj 5(;jGS)}ʁZBMR2j*eLPө ʔIfQ+/)3j6N|5JEiP`JF46C SIvP&$19|\2S"E#ҁR_5mo~ ]ʨ1Ugt·kۿ料Ju?' xqe/|3HoPMeegeȰC.ϒ3d!| SsZ -344 lILX)wE$lIn Q-l2obW.ɿ4^hWP / *{ZBM+cB3hxV疧#Q_#%bChwPʾr8;cmٕ_ǜ;sIvZkTՐV#{3f_%]yg d᫧7@q+o}qԙ:XO!jpO8 Oƹ-m(aR/|C يĒ=GȿM Ʈ܈u6' Tje´jIy'vJ!Wc<1:a0-15-;yRdQRF<'0͊ Ұ0hUƳƃX²@rt3Fy&).XI>.X*ޙ)["kzYZ IU4lkD OL7Aw3sm}R^-;LgzJK^ g˾$̊5Ӎk*W}B8{Z3hɔn9C*K^G]<29jj£FQ$/O1]#! ZeolyNK.3;~#{3]Xhxyq@xz"8BH{119x8vZW0 HT #qf5'U #j%!TXtbwa7(%*IHA.%Xgh< {:^]yQ1 8ˈV~nځ~aBg_ROb~&ZxT%[v8܋-WjYX8qj?j MôM#zcOh*5rB%:D1+ cm{:骡GBbX}xf @7`ݷ+>BVC}pGK>hOwտ^6qAy{5IԲHgSyW큽{=QQQSѝ5EX=kR)QHLߗ%_9r?p]{R]@ }$|(otzswu-Jːۊ*isZjʛ3B+ՏB@)IMnc3TH?Mi {6ÑLkĩZ H%mWѽ lVBfB:z*1M\$o r'؝H|S/nRcMCR,ZA]Gtw-TN}(w^G& ˫" 1xX^ m u CzL=h_<sh+%A]A=\juBR@6N B󔮟>uzC>595M\{-TnMyJɰǼ|3H%mb?'ͮ2h J z?] a+[ It{B13s0/lLNL6f%g&y+6?umX"A8H3{ ,eI#88&᥹{#w f£JZ-{]pޚ ##W{w-h7qͺc==pnMiECD8Z0{&vZd4KFX;r5ԉ(x{!/N#£`zՋvͫO |>0__F G\@h摔=Y{(+`AeKXWj#vX쎴m|O;ϟK޽{Qogd:}5/HMD\DQ4K!KU;&^&o͠0ՁW SP1uPJ+|uʷ^-  IHT\fD%5r[g15)8l .]ax2 \X -=BvczwK(Fp7kd(@.%*?wMǎ ԿV0ÒRPZ{ଊOO>0ev%}(=x)AxY/Hk#;ŨN? R:=;=c{1Sؾ{p83FtK-R,⻜&?]Fbvd1NwIXJ.735 ͗AZ0{<|1 .M_3'4#=@[Yq&c-K^\ʓg EU/<'W{jLKn[cgΣvWp'D#m` )S6,M W$PK9RA^<OB I`#3H-d09}dV)DjqYA6o&iҝ=345e͵~Gche+!d[яendstream endobj 173 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4686 >> stream xuX XW qFpAeAQ"=1[P(A :(J J fN͛8}U}ssFDKoL $"~0~8h>JR Ʈڻ2#1)og7D!Q Src2-mWN:GWWWzbb9d$%ǤdbI|ɰIL(_Ѕia^23}6-͎\/7?ziLeV$'$Ojݗ7;9L?8cY}aCQVTeM-fSj5 &Q+(*LPSTjARBʎ <){ʋrQ(oʑ򡜨Ŕ3KPK5fRK)}ʀ2SFT*eLL(S*RReFeSHjeAFSc(O}@-!yKyeE}<;1P(.c6{-B[ѫS f8)dX}v{,~R_;x<343FF2YF{]3`\j`݈JI\DOLojᔑ)`)=$K%m*/LtK)L[ugZ{.e~(?G'o^.` 6LЮ^6f[#5]eʍQ7NxjȮ9s&k/zZs|+b_%(1;='eJ%}\@n- +fJ>Nܔ)#yZĒ2x6Qe48_INV{ZdbU[SAJԧq*8秩{yJAsR9 EB=gГ#g+N9f!H,::O\J[^1B( h>Vߒ},Ud5m:T%u=GF\7!I\)0"Y̹_b,<fɶuxwLÆa,|dW[e99GN)EUϝj_bHs$S\%:淨ĚP WHϦT;lS^NJJc7{w)d`fK6gq& )[S)͢N1 MxOZK:2IIY+-!6v[Qs00TۿI t[I͌v84S6u¾O̥j>L?: _b,\G+YZƥ)7T݆[Xx:ao^!YTH."6pĎ6Z7lɻ[SjWdPE Z+!/=75>obuK\& moS~(La}ַڎm%IZ[Kr@-%wC rZ;w=݈M 9fޗ07oSt,#m[l}oJ>M obP\;O,MOZY{k(zK?DUT`DPꎼ!7Tõ/彇wI WV_h{%h%^bO 7_bSҰaKi!xn`Btg.mHyDj_GMe W-CQN=D5gJ(DywUa{|H3T.ţHBhҖ%ڲ!'?Y|c0%K>)E`'.5F#S-gWUxv+0ig3Ez"aW?_QDOzb> "yhW9 $Hzy!J D\!59 N n9ث`KM38n!.g?ue+񴗗5zZ55Ւ޽4o핼e |Mu캸&+H $0l( ?sњXK=o {v!Vu{`\d˜V\r8[a{s\aCo{[u A0pU~{Z=v&|^=pח\T7>CGd-Lξy@ݪ]ɯadO D?EL;7Ѕ3CY;  0/VϙI`+oӈ ;*|py D\x C?Ǧ1sMIrW_M_>Πڴ-cD={=,a>6&󝧭 bή 2bo `3d\$8JvD 0 ;A.#x_ON"ĭ$O|7+dvH]6sI }?0'Ry=R n'Y(/Ek(NIwl=`S9Q' s[ RMD},xVq`GDȌ 齮YDYڣ[7Ӫ&@ {yJ5+ɝx.ɛ+T:]WQZ謨M)[(H\mw)@zOqDE%X@QWY_s E}AlO_m -)4EbAE0O/5 DͲu:EèD¿kFsCmqCP "$gpwD(.X8Kt"T#Sdzza0d&{#bOUk,ОرaK(2: `K~ޮ^,|2/LZ&KyykXįP2>q/GN~; t/'&;a7glEm hAQ? GAQ^@Z| p֍ Z%{6i=s ~PxN'D %N0aucݟc䟃oSǪrzSIM(l ϴՉX 0EE(*d~^7نKNRt{U7(pk~{jZDpW vo&t9Eٛ<֏dXM ]%C˵Oi?#zi["#W~Obt@zֈ= ^+Db;%;63,bq)/[g.톍侤 %ҖK3V8L]s]r"6$Vz3eꋻ4B.wKFGx4~* ;ekUօ/MH-V LiAqx^/{nů#6PbvӐwT(G!h!Z33%dWVO#8}hyQэg&u DŽFmI^/? a(Djq=Y"S> stream xeUiTTG~ڨݭbPDeu.6" ,Р,ͦ@),*QԠVT(`&1j2IQgbL59έ~'a,F1yGp.4{6JcZ NSG }vsKde ;1D+YCZl|Up*8F=*"~GF[ڞrBUcBTQQwиPY EG9oժ̵-0V1X`MhgWT4`61x1ތ2N<ƅYø2E̟ Fƚ"XgQ-i ugum W9{/ِH2I')SC d8{}in΄H/n)&|G0G\x 6Ά>Yˍ'B}⏰fcEԠ\noa Ev蕠qQ#]b DCr9xoh!i%AI[[@_̆w``L)s}vbM]lk2[m՝ ?7A8L?#ZjnN6RXϧ$lwWnC&2vw'xNT4a˛TdӢ݉t4wG|Mb CUh@guUwbӰv-<=-#pJ}3|>,U-jzN>RR6Pa#< [,wȻ)GKqͨ^"<8Oڇ)e?/o!) #5O+K*0bEo9KMgwS~>(Or"<17^ l\xAq4֙eg**2VslH~Mpl*͊3ࡠFݒ +oO~&M05积`NScNF*tnV\ӈ82L#D3 ޯlr UW^+LHorW5o`P Gե4fmJY1E;'1/K'7+;6t B4z(Lz3&Xj&tNs ^:ԵTuaD $ @dH2wj㦸:nҏ۲J s&wP<&*n'޷(r[MDE&.viuw'Nl>X~^!u@i2i[ tʰI1x'&ʿ0[aϼ)G'mbmi^Y~)>8 WT*/åXJ_{ް%0]p.TΥgJsiogAqԿڞk]x9`ٻ~t?M)kԑJ/a΄l4oDX2Cx*|Ic[t6Z9CRͩʈ̲(qK'Rn$rcJNYߪ]ell: [ə WkO[wNE?dyTLQVVcU A|M%CXuVPk=S)y"bO%a`=9ٛqg%vjnz': ![p ެ["5;샑~oaG87n8^\} ;(I.'o7dж"stx ;Wo] 0)aETR-&Wª+> stream xe_LSwe2nq{c\d[:p8K{no:؆P'¤P;*FNk36dy:C4""nߴ"9`MH/+%''*eT6Ok:%^ֳt=   oQm[2L8`gmIT0&(~fxy㘿sgdmFßpX^tX82GE [@&B(i΢5'*!'wr/ \*^k<=1wͮZ1i O||pzU))oTZCKDWdŵy52Q^Swũ+wn>ϑ=Wn#oiL$"mkksO/b&엣Ul`H[ Zm>%Dc8>S|ꇻY;/~/3񒃻ys%]^yL<G(duqwcwSd# 4_x_mߤnse⭷eœ86#:7v0nh ob` @> stream xES LSW)+ڻ vucS%| >T+PJR)|KPy 2CY|,53LuQ 3YNrrhJE4XuDӴ;1&`Mm@^b,+3?wo+ {˃FQj,mFd^X c(/^kZ`NYzU3#,=6C4Bzfɘa%k̖TMM3hͰZt4!)D3dҌeh, e.9D,uը5 kfbR.8&P+(*xjNKEPR*򑈠T$fll{ry24*=n.L3'_QyL"nCKK.C [+$0jC+BˬI9]vqf;!x0m2JCg$@ O|>5;{Z)v:3ϪwxsJ+EŵXLЄ u벒էt' =c:Ήs0MBѷϢ9S3̥{K*4.q|.:ںZjWQ4 wo* ]`^Ч! 0.6]&/-'(IbhxWo0Ʋn?.FX3+|URo\4m:1J00b_ew?H;!z}Pbcꄚv tJ]Z@5}_vG 5^cgygYb+V,켦JxW "dR.%5VVQ"& +HH%N4+~ .V:}ug%S5_Qү.!? @?l+?'>R7^̀7<s!p}2*ev3$% ٫l Z2 +e"ۦI<{/7;hlѺ5Ykbkv\Kpݶ{+Id:r/Ɲ=_4v$qsX;aaT?>e.fY.,µv(Exx}Seu~}|"it?P{~RszA}w0O718:xF"No@H3B< G,MMGj6IUs_ O$%,fC ō<+v` pd*fspThioq u5Gn0R;jP+s*̽sKG,endstream endobj 177 0 obj << /Filter /FlateDecode /Length 3838 >> stream xZr#yTgUy.Q,ˊ ҮJYy6иXVU)b~#{f0HˢRz9}g<:/?99x:ߜJVh ڹ|tΆOӛWliBNޞ9թTӫĸy;RXC*+u6ѿ^<:D޳; 4 *5:rXLu3:QQ/^ʷF<͚śVTfmv(/mdmUڈ5m,j7y2b>1BK_*X9ۆr6bW3v=:SX(+ZH.a6!6VJFUfFgD߶%+'hnxrVU΅x%F*}3o'ӑ7k9Mb98,ƃfwʕ]]{^oة}록gO茎M[+ZojOm5) Eٙǥ LkbғO"RgiE3,y ūMSBN' E/e3YYżyI'Dpilbab{tÍV|58!`r>,c-UqlIU "^v؀ֈ%X-Dql6m F\n5 Z9ZW @ IHx[ 9V܎GT$.grV4čf!t~|tT>r俛zYmDqTˇd7MvۻwJ63Wej#Ng=8XN"]6E ~x-/y/бx](:A`  Cnkz|<^)J[ʶ s$_G!^7!+7)9#@P< A@#%}WjNgzeD=A}jt/91r&5)$.rJ5!FY0BGɽv\ ɴp 5o@I kfBvd<ڬ[! sFɑ555銼&.T|)@ JoS8E s"&R&nh ryߞ]VU[y~48OK|?}PH'2uG!pq5[Yۤ݃iV.fJV1q2_< |1b1AZwWF{wM_qU pܼ\-|.$|LPORHkfE(+&U8%j1+_k7X[nzyQ_EVC_T!e& \Qm%zϒ -*Wm<.k'oiD|sg G`q~AIX9q2kHГ3;8 ڙY9IF iQ(yVw11c;;rO) aabW aĕbX[J ahe]ء.SL[:*H B\k|\aݝދ,T"BeuȻh!7QGsGPx?h9I0De-B'-ͽo݋Y4N"7SB:U`L> ]n_}ōh׬ߦK@ \]N9%7CҪtgglC;1aM;tMAœn`fJRҜmz:NjY 1/0 "S{_>@ *NQ 7;RnUқꏃhYTqyat3މ(?mGWXI}:z7h\a1eGJF@joOͦͷ`/j ;6ы4hu!t/F9Pn~]n;k$uJu?ыD8:*Չ_,~`6fH@*&[jUmޟaƫ֩)_2~OrMA ʽC4 篾)yz6mi ݗmgۮoM }s)̞nˌA| װs;Qe+k\1QIQuVDͬM5=$@v}ʨz=wFPlU41l(!4 rL -8v4Otw`t$8Y7!Jj-k{'"L<ʍkuUVrLr+r"-Ԉzi8SLSZMԏiO4±8%%. ke:>Kjf`[J>!**ö,~s]N  "d޸ ujͷݟ V[i`ۛT3E6%5rQGq۫=INOaZ19ی4MgLSa{ >\nȽ5Vr6],YrqNtLpYE,O=2hgJ_'rSǠ7(oqٮoY9kn+(Cx_dYnZTa.Eg?6Jyx7#E eJj(z^4eeP1dwˈ5'bj2\*ID% b q36nWe}N/٥U.3t=-LjVI r #.D\|-.o.,͢}\S w0],/r/P w2HevIFwG|_܉('y =)'n!9~ ^ M3 no7ZM`5>.T'4P.KzXv|52?SKyO_˪H}w}+DՕ{uޞ)7Bw"veAEN"]c͕e*`894瓚bZi,¤dz/?uǬB0I߮؆L~ (Q Yendstream endobj 178 0 obj << /Filter /FlateDecode /Length 641 >> stream x]nP=O7&dѪj\"1E߾3EҀ-c|߇y>6_bHNou|6^7g>rqq~jS[_ͺiV+\7MaAtld6 q4;ƱiGC AMxdMOMV"`$FY #4&QdИDFU #4&QdИDFAcEId4&QdИDFAcEK94.SиDNC9EMиDNC9EuV\:K94.SиDNC9EK4!QP" !BXHh)4!QPЄDAQ~$:;:;:;:;:;'^y'_{ossossossossossb-$"$ BK}f,K.L0 LR$0KBJK).`-yނ-z ֒-XKޢ`-yނ-z ֒-XKޢ`-yނ-z ֒-XKޢ`-yquuH绎V<1sw^/W>5`[&endstream endobj 179 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 7094 >> stream xYXSWn$^Mֺjպ'.F  aI{8PJb5jkkks< sxnptJ-lln,7o¸#ol×/CP0 CMf츽#PlKXxix~άYsg?ػ/iOi0qF~$g^"e˪[lvrq̿$ȼB|fBfyYҠUCׅ*s/'f-o xwTinw3s{Us"` >p/ &N-™Dl"6o[w…xFL%;tb'A"V3 Wb/XM":b.@#Gb>DL !Pb11XB '#vb1ф@Xc 1O `=$aM;7`V󬪬'Yk)#'ǿJG}6p\u2!C'-&0X4ZD?3%F#@xIZ4FPOT"z:wLc=>=_=Ɵc1{/Y{]{ՄU48gb#lUs7Y|f%(p Jcs|(qhPO0TI߁ZPBYT[xng3l|_(meRF#Zo3ӏPR+uSaIg\\^PAc^F}j; @]{-OHAÿ, qfP?27jg:gOI4BJm*-cٛ6[*h*8Ʀ4KpRe$!h$*[i` g 6RPFJupی!hpQ|cvƋojGdy@ɋO[f*{7vo [(cI{ '5S=,[qП3~B6fdl_LKh,ˢg;-_GW>qή]O]W ӭRR84tbJ f/N~ȶMـjUe,dEΏhlO3(dơh-C!y âQNfhB.ʰBn#}CQLOp$Ў]6j+=9 F^y5WtzXvm[0$W4Ybg=+M#;4H:uE,l0$N@o?|㋝@$:ӸQ;avRda*T%Ў e^¼dwPB%.ǗhPC<ı`@KNv+/ET<,NQtYtLJ72M| `רka?th`R``(7i~QxV\CՖT ζ zQ߆anJ# n`ЎM!E53gmTms'ir `+7W|c@,1:>*"P͒lkɏc[CQ&}vR>6zT\T0Iy@S* m.*̪f>1?~z5hGt6=,q{4B3d"kdɯ_vt]jU?g,A%bdexC&hr M%%lPnL1rY ~)Sd9TIkO(I>6pJ 4Cyڜ7$gCd/C];s3jz[Lm$4Ͷ%M@ #&(mf¸t<6[25$=T%æQx1)fj!aj?-lP !{u)t:nw\oH T ʌ,Jb3Rp.4U(y?7Qߠ8tS_rL #+Q8ᆷ9 _8*ԤG%[ {d SJ&hwf7]nS ZQ0 TR} =fʼn!Pȣ"\ī"o<<;YR MF[[ ;Zk jݿw`X `jDj 6FyD'0$46Ŵ8@Wal:PLlbV&41Y[  #G*Eѱ )t*1fY րb]C2dY53 _{)%o7X U8˵aw|P-h{iguO,r6-ux}IȤI+*-J72$OW>C$o -BWbG)k3ak5ۍTv~tiW+v:Ln$]'o&ۛ(f$y>l\q_iV BMY?9AlqiJb W @:ȩS5\fu}D-[_-dU:EG۷cǾ]]Ǐ9s| hU~wmGϤ3XyCs.ʍ3 #:B.Ln"\ U8PRoU08yd4J-g>o@T6Qgǀ@%ݯAypuh>4Y =oO۝ѥy4'ZZ`F.BostJ"$*Y}}UUMys)ҠY[wvh=yއ ԩ_438I(I--RF:* qiwN [}qn4{toc4\5\Q}ߖe9Rfw}ԲrsihcmUSИŜŜcs5~KqX4܄A3J}`$H*R&ȉ++XAA;|&i1NJKW6)Ru=`_ыlM<:$x ?&Mp09β| lOk?Jey610bt[z{0*Zam \۟z='шG^z`sSP~杢QcQ-3?;r*\vbkDS\@+ EmJt)- 3*#hL5 Gzc&ŕJ!HsVs{rhAX~%sb]Nw&%= Fځ@4$)@W,]>•|A烣' "W?u.u:z+Qp-źn}ib d8,b"j,Od j; q?/U.pq]I٩i7ky@dqqd~|u U9uP(Lp >p@\'mhL^#{M[;"4OD" jڇ ~unKM涺f5;<tf]VqJ E2UiuNiF̗og z؂!5ٍhdlFcOey4~#'uT4ɰp 5|L,黓nh4F : 2й|38 ʌ5|R&^v0 RXi_]j $ }9C~5PǑ:8 4`pA#Q *G*U(E^tu*9|DF*5,>tn=`.CK}$~TSv5O2{4pXGsl#xV^[X8Qrq8XT"2>h%5~8jM9qO:!NSqDS7#v\^ht mRҚkO |zi:M9IN<[ <{pp2ϻU>u#ޒ _kM@exMMEymNr^bR!vD{Anɞ) Q菑Xcfai9@MZz"(D|3G=|„_t8|ݸ2\A7y__q9>L  RBqBuHT`zaj&9サ\]l sSނ3tv<1\prЅ6s#;¼ݙ"(zc5XL"+5ԕ58Ñ+VKe!oP\i-Xy4/}ٙ{_uXa@_n(ׅ%Oi@mtaӫc`:uGѰ84즢w!Mk1W4M _Cu8ޯUsܾ8mL*ԮhہhJ4pPs6 zΓ?~r_ ""ծiLrDWaj nj7μu6a?7 f|4< ;d`ќ9x (33@ %PUETJa! ޴yuֵ֭Jly*6甉* sV3uЯuuPZp'hpRЍ8==!1.cҿFYQКuwhtsXR%##B~X v5́0GޙJUg33rA)UZ۷qzlis`Q/GE{ /@OKBORo$@DcPʗ]ۡ\,oʉB!lks AF^‡]"(Tg'GO $NGxwCn&cƗ!>쌬w+Nݾx\^i[ 6c"b(@'^y|:H@}$EE*€=Ur+-,/l4x@@eMOICn:&g x+Ӗʎl@C;ڸm~q#Þ^C w4ͺ0#cW8b(^Ga/! 4'.=~BlV48p LQ΍gADIq L\Uf2w"B.1UmAql: C V*;v=Ք:M(oa-~uz犯jUY2ggv\ 1鰩W7J22 @=ʢXd?zTT2|Б6B{6MǭȃiH `fVɐ`ŹUj5%!CڪibMN J{Yendstream endobj 180 0 obj << /Filter /FlateDecode /Length 579 >> stream x]KnQD笢w@BobOUAZ}N.^_}X]_>/zpUuӬV"nqhMhۦA2q86 xh4ii;i7pV+\kb62MFHAth`̦ALjbI(h3  r&AA$h4șbv2;:vفRp*8x]Nf rQ9t=\Gb:\N@&MBAB#h1dQ*H)U@6mBAa4x&Rm$H 0 F#Hb$RIa4yR]%J R%K𦘓̉SM&L SM&LؤFRK-ȕ`Q W, JE\I(X+  r%`A$X,ȕufZ)qEEr]u\y׀Yԓ*endstream endobj 181 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6960 >> stream xywXX3؍hSAŊ .e 6p,[]1NQ4&&7)7&7M9=ep޼ԇavvӾG1xpFd ϛ)OO6}>7PޣrO-}|YF/<7qG(x l{ &&s8;2+YҜˆ-=\ X>'bm4$7-%">@9Qs"6$bJtAfDBARDtbLĶlXeM[kH LMLNO#̝O72c Vde]#E%y l)i3{欽͝78aĥ^zWDb#Dl"&-Tb+ML'ۉ"XN$V]JbXE5|M"XH%/DF '^!F#WQShb J ~ʘO"Ql5 ᰖV^c6ȦKZndAF |X%h^'Zٟp1Y4IT@A o  P8 'Ûb.~~agd6%ˠi.qP:v6T2S0\M 3qϜ/UlcA757Y`i"^( UH%Oi= (-FP,us*~prST b-Oji' WQ] %E@d6mhE9pnz뭰`ύ{r\Y A@ `2} #Ĕ7a81rnr߁ZK;LE-0Y1EDmު\|U60 Vg߲zX>K.e!>e0P4{Waf7]9`EY!r:F }>qSP 0^)PB9 :ECGrQy>Ci JL0UzVgamߘ t"NPB#\Ykt&woc&Ѥ~.K5zl(^wkery< 9h!H{w)(lTiAE95oDs-G78ZT)UCVȪ[]g~ovR8L-L*M;Z@\55ҤwV6x> MI/,n $|EZ49/ dUY,nS>Um`᎙kKɆI8pa7<h4md쨵*ǘ X6BwڂBZ[Sk `sRgcE O>Y02PMPpnu _U[g+ 52 땪cWvDOsTg*&A@.~P9ibuهV(SH_cVRV+ߵ-VIgk ݚԮy@u*(fߢ[MOM6؃"?]& Hp,l\:jNQ{yfk3lTh)Τ zB$W\?ؑ}UP^ ȧAߴ6V7P*t9r<HF~LɊҎ * M319J5F{5t`r[ F:I bӺNVxū :o$]7l>u* {P=@T x YVg4i °]~oP^TV'V  E"fstsS6~z4wM\ ͘VlKbAmPpT0w 8pM2hĉ=&io#`Bxq`{2ht?&'A+;=\Z_TZ 5Э!l@ԏSd"!5|l1!6q UZ?~^3'06k">YD&qwՁ(wX_'?[xهTEL+R ihExGJ5[;v{a)5in!{Ϩg2U0mp/m%Au%s9ylLhȦ;v#Ɋ[9QA.@BX=ضn85{w,ud8Gڪ 6Sor Xd *7iVTs3?S{Jp79iIg:W.#m%ǭn{PֆbkknhĢY~`J] yCHp4 Y!Yz"yiݳ@ p}a&umJ N;Pmsqvuwm#@\*|(fd PP>8^v&+qs%΁g}[dW(|SbpYi"@2`v53aKނiږʟpD{ ~o T]'=Jel:^7nW~>SהPv\OE;c~aO}8`( WCk2" lrs<QǹMƮ4ZË09yÛ(8`1X utûml/jU,zy>顸'Pi D=e VM2pTx;Oj6e :kk?<TK_h(,62KP^i ~Z谈8v!{`(G5V57߃7CXwVy;%"ҙ$8qL8:M G;*9yI 27O*xcѺ5^s vK`HTˀHvH}vG1=_!;U)@פK^ 7ix\YjӾ0wlWh$U)vPqd z,Ro~ecž2 g6Đc80N +2coVB؛vf& -'t@LiJ5p̧Oۀw Om&.tp"dI\pH %́kos žxϻ6sɊA`i0,~{W+mNL; ؗ(m8zMxFOq1}|JQs,шGx~EX-o(ThRgi Z/q젌NW<8rgt4оg'E0xhP¤5p(\Û%W!58:ju^33 (+.TvY縥,=|a 䩻aJ7;t SVĻ>sTQWou[s㫊39W$,M#ؔ<=}`yX-fQ,}w8]kp)נB-l(t -pl93[[^u'yߺ/ ƙ1Rnm X%=61v'{gqa &fwЯT!,2|ޡ\X MϨW74ꫮ6Vy8V~ow&h䥛/&P sfөl'#3 XϋziK:+;23[!ޫ ~}ɮ{LP;axDl\bq`NkD[.rY]xy@0;Yc kchflu]˃_ 1jIgnj^ZjjEyV$"8T~{;?PklE2qSO?{;pmXᮠGT^ ;# bָr_蝈ϝgd4ʍ]˘&P4(_Y^[R YG( > stream x]1n@E{73 YӐ"QzX>>"?y8Oײz_3_q5_η5\ԛrA-Eux햯%8;u\}ȟteR^;m֎y48ƄYMmL`5u9v;`G>C[5&L`2c0n Fy7]A}aA}DcQ# K }}eo p /TW e4*>'L \꾊JuE}RA]AWY$/n=LuU y[%Ra-endstream endobj 183 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3548 >> stream xW TSW>qrT1vYU+Uf|RX؊ $ oo>n}̵zUXoKikc>]ۻ "]3wݵ.g}#\mdR4K7$1|9o KBbƏ--,ܜww0-… ?թ 4G˗XF dJERP$nYmpL?L.IQ"IP'W;D{Get(Ne.KST&OU+E[bbB"%|W\fzA$v!b1J{Rsb 6DL +y:bXG%܉"wxp!+NN/w;rõ%ES53kdf4c]d|~HMGA^#0%$UR|WBbqVxʻ`e6g.J^rEK#tO@YU%É+W] I O9`O>'klȨD~]oHXJHpZY=\OHKP駿+>ݾMo1o\Lk.O)p3my#+g\PIc${Lff m"R4KW$I}2ޤhWwu{UZeVVXlwrQpD)rhha{oWeA@w7p>%tm5E5译x vP Ց{kҘ¶: t K͵M03*9Sҍ3jPhVw afq\, $Dv}dHP |;,.7,.˨udBo>=ڬghsĮрBn"oD^piKkk;[Oћ;YO;uVf)+qg.zZA(FP23FZY= X,ZrluFci'tF>$ߊwoԏlv&, 9,F fm] +QIYA# ԙL l;+Qx,ޠ(CG(ZtcdI?hӔ1lż˹*=4A.dWKZHҩq+dܔX$zW ֭7SJXH$>[./<N?zZo-zu˻.-G)أVXvrΈKjiNY"Їhс'tkOWx}4ug6Ya` Ek6}brisUydл̢-@T] Z=q=y.`DV a=-xu^2;{jdGfՃ{gz%MG9T]k߇RCeu?̃tܻ~i6~~1w=LNӄBXIRJT@_^[(Zޓ*2̑瞝^rpv8zl[so\$GE>S} uA&NuX:Gew/SGs?K޿E 쿼iџ71Xz˙++Nk跷C~ J=}@^\8)}%')0qwXb4 h|Oa̰/X*F/:38ɈlrJSlF HI{\],V$`24GtzR3dWFVZ W聽QCՕk?iθ yV'~]|Fsm*A'w)xlÐ@n>[h]\$@ds#FtJjj[VߗWDZNlpMv:trWU09e}j6:, )¥c0{m=W-t*vj"tڐ 6jHjP@$i59W Xb` ^\{hQ 71U6_@m& (ۘo5Uھ\<<[>2i؆2CiMJGP-GY1 ]G=qi(}~Dm7 ͇M=F߁'i1>'ʾU|z@ͯD\m$8PjjLZ d 7W >-` %81zTw;9ub1^z ;/ϋWRA?!` @Oj3.=5 $7'du1_W1[aU~HLE 'G.>}B 0;!4%11Yz9bZAojgRRj$3qL.+ BwIz&>{8꘼jq3 NP#N^{ѴRZ.xu@>ڜ-A5feH ]]E_E}Y&f"M]EwJX>jL5̱912"%>j-* .yVcS Z[mʼn:TYR zkkG LoIfMZEq+kڨm٭gcB@X&$JyH`m+PGwU8|@Ϫp->aKsMVd $QQM̝sl<|s~5wdRq 1PSd8TYTw9^'ez~ۯ"V:-mp!px)^$OH>z2 g&bĖƬ撞4mNN!n&DSDJZh4+z1pm[hۓg8T}9qT#hY$U&+Ҋ5[HАݫA5Cr4RviJjfpz$A^ôL hk9)%(=<t*֠5307lzWe'M_ɆpcIhEH\K[a0o A=~LBep(8OEќ߭^6ǂRB/S/=w0lݾןwo?{'&ymsN=-Gg]7 2 @eɱFH%-g2*[۟]|u28k, ՠYC@(UZ<`h=y Kޞl(Fށ U k2Uriit#sf?nnJ*kf"endstream endobj 184 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 286 >> stream xcd`ab`ddM,pI-Lu JM/I, 154f!CwOXed#z[u0wp>_{ ̌>ɚ F& 9 E: y)E % 9 9ɩyɩz(8{(@b`hF&m}M,~|v}&{﫾:H^{Jv=~%39Aԇ>(c6V{r\3y8y99[l endstream endobj 185 0 obj << /Filter /FlateDecode /Length 6360 >> stream x=koFߍ~w;;"63ZǗソqU eJXRA0ĮW9w<;y#ӣ!En(ILNňr.sGPdF5Q\ft'OaA3|OJ{䚎4)r`M0HQ0CF0(U^ +EO 'o 45Z3=5 j XΌ?wHG>8RԌ幂_f'?OyF[xFNw^F"RO4lez AϸR# ǥYJ\Bjp_1IQv C+нc.IsfIXu.pKňfoy TH$\@ԃt|O`?SpbEpGc"F1L7=m}94կ{0EBz#SA=#ĪR٠,wv J֩f=_aҔj~(@1FsdA6tm))y:K(um*=WQzԵo6.~µcdl,ҿ^, .Ac@*IM1E?;dI-(9 4r~rYoxmlAg\bYsbzw 0D7:! PRAy"/єv`j ~FWe36H9kU~2F_/jbΘ^ * uXa|[Pf4ia dt@V,Bh[xs̼q /Xebr1y"]fUVCwLQh,{ 6&qrKyS8UpWjV3u(@fO@NfGxXW󺚷;jwm^!.EP@YWMb6[ s1:m\6yE9 VN[IǡA=<6;TJ,}zմgIɁ{=]c<`sA86f'o튱߁,&R ~)Y$AMinrZUOy=?5&k4m9oӷpq'b 4{ㄓ!"n>L ZθMYS'|~u<XTrzgk h-G:&]?ʿ(pNhLvzWR,>-n+Cu;`VvΣSUfN:*N wC>0$&L[9XPQ?Frmf&$(ڶA >JCIAS%]+v #leM+3Zj06C (vl4 bK59l1vYB M6w1M8%2q3;62 w_,hUខL|t_ 69`n_~9@3ĿPY$J0x -7HkD&QmQx{N'eKW1 3?[CErwlմ*rGw}sbٌ9Ns/΁hg<˅`XRky G1Br[ID\2~Wvz0d뷊*Ƴ Օ'Y!!uj;8[Z}R܋ށkjfND!^56B% A4Afd0 F~tTb}Z c% kM'UvEqAT\&E)sA9vsR:} Z1G+2ií(+\JBAWx_ _L&@6,p™iv+<w> )= ?aG~pߒe8mUUs7]71O"/gH].>z@n? 9;BwvG9._!;yT1MB\U > IBgcn ^xo4h&,=.ht ooxCkH%+a]W3h`Zǟ 3̞>!ĥݬt eW6b\knʸ XQ˔\ANfbk峤L{wjI̜3x|w*sPyC&u?&,CDr>kf|PRe5$.&O00]Τ`OUU/ۅTڼ+i4MwԣP>csYuߚ:4 n ; ?M " ;f-p|}dua?gX퓱ᶬqUU'&-ժ ybY\U,Hr(nWXcf)n} LgW`N!n䤝WHMo.t3Z*B9_gASU:eؑh3!&ݭ-*dVV4m['@Pd{}BjKcBSuR*N| XF>-QXXSJx;[6bT845ׂFZAө[翀x.86).PN ^7c6HfPR9 n9WzqE zPd׮?l\\qP}L;͂Nޗ!Җz[kiأ&@/I мmh؄6ٜmCc5 <@-]P<+leAĊ  ۴q`j,osdRpTp| fTFIS4ʵL׶ѹ(8 6.b}صgA ,VҝVU EB׳ESBFcwuz^+lxk]-DXlW5:M"`S$K.[鈝-$GD.s'%tZA:W}<SǽٵR[{+h2+\.7tg4lJ Fb);d<']=&xݔ(\ˬ[6vŹF*&YAEJi4[u0MT}I4k8/vYt<I t]k]*K۳&PdvS1~.#wx&WJ,mHSco9d[!R`oHW Z3,gƭoBcܽf+-`dn(#LӍ< kl6vSxU]UQz; )@ ZT}P-~iDosk}?SokgڍL S{ nTv3YH]^0j.^chUh4S]Sz ;Wo~9tuG` @ kX.;ˁgG:..߻: .0 .XbϕaJ7&= Եtӏlk%\a@rnê3O3dĞT+*.aWp'-oq,f좾^`Na 6} dzE. q_N>X5BkALۡ oXR,lgu]B!qq]osQvQ$Tfw۾<[bAh!CA- rtOjKtsVİX^C7 0%ňVn=kt_Dtv^HvkE볺?C."=^˔>|F- >X/ jouIU >R1]!!R~y\cKqlts Gl J0-;)l^ʕI.Ln„c'б480Ilf6w1&P~Eb-9Ёbljϥ&? =մUҺ"TnVlX$6WAW}&(f ;iWmF;>XrohH^x ,gO x[i 7rj_ eew%H5$Wuehu%FV Njq_OCьkEE_.&EQXrrQ>ѻռ[N2U;W> V`{Ohz-[eBƜ hM9vJ8yGݿI`nO|nyXa}^uK-4ݶxz} |u~zno,֞IZn^/)ZC.7ApPdRMO;v>? .)^Vp3Eendstream endobj 186 0 obj << /Filter /FlateDecode /Length 4666 >> stream x[[s㸱ʣkN^Bs8{NUݳ6݇CKŬ$jI^{7HPey.5#@o{Vm{&Sk&g3&,<RJLg2W&yfuFޞ|ƈ7[O~ $䩲ZO.gn)6aRR*"\'߼nzεI3)G6NYW7s&vϾ< gYɘA|9_# oxn]s`lzJلp#׻U8H`lr9E&S krCWz*^)?K3ms@As 4grsr'~g,^ ?:J%eC3fg '`<o1 f"z_Y.vҾ;@YTc#hN";ӴvU2=V;}@u%N㬺 ayA01'v YX݀<'sPc# *#ѡc{- Mz>Ism#\Łϩq7Н9znVrpk'-N#B4<%[)2u2U$ͅ#-ޡ8-`Ɣ6Yg1X g&t>b*OgRe˩4l"2AǤ8mU鹐~uӔ̋ͬAd)܄(. (t۲>y &JEWëy+R9M6>dxRB ZT<sTo ؇ 0GXIǨU唡BIq*~:1͋J` c|\;WJ vm;A :_rp_s|_wcC~Ғ? 7.371'0JA 2(\\$CT[~\EE^rAxR[b`uQ͇xt,SO?* 9Jl9csE0N[ 8m_1=ykp=㘀q# 0)^礍tw=9n 眬]=l# B[Bݍc!$~N{:G=> ̂FE0y9MN=B 1կ_pRU!@zNgGnzР-"֣|.!54=)Ij)ǟ%(mVe3U:HbĤy q  )ƜDC lw>`bC #XN,a%<}ΰ=2,K)G<-vYW՛~iM6T``| JC+R+.D\n|bdQFMC*Ǣ *Tr_aōV ܣIdԷM_a+t RΠct@0 Hn0I!Qd]mq[@L˪ sp*y;=`LuuXPǬ` ce84x9˱g%"^NAHpڸ]]#ꐤ'aYUc` RsXJpMYP3MǴaw4{M?AzFZ4Ӡ,A;CM5FIk*xtZLL=)<"Z A>dqrc\Ca J~c8EoL'GA>%pЄ9<|M 6r=?+8|7}YsE3AC&L @HkpSN~lΰ1&sXg G(jpJs Ps!I秹ʄeoNY%g= @طf>_GQ X~MׯapJlU8>,JwR9Oci@g Ջ>~rbPNilq_uap[P yȖ"B-G!1f\eEZʀ2֞{҃.+% K[5]%๗a3 lX02!h1WT\2Bn\BP\L!kWC?v{0 Ѓaq Y35!og?d?EfGiA4,TV->If6>J}r]WSF^rDL4 F..]m|eL7x`1Uky,ǃ ~8P9f,TB?~ S co_\0V 汦G9{L Iwe6RaQ4XY;*+PduۋׯeIz.3J6IE5OR: IUM)n km3q/V ǜ.=K C[Yv\z, `^]`^ #yhsQ=UuEDbJ/ {(R Qh:5P:CN5Y\fܗH qWTp U,sû 18il-GI7J2۲/ N3Ы^6ےd J&9^,e0oup!r fz+Z}[55ˊ+S4c،%25~5ZEV[lyi+kVfivC S>v^(p_eg464 wO,5)&Ʀ"*Ştx ,jaJ[0&MR5<2tuA$$D6('қP#v4#ȣr=g+*=w 0BK\ۦ>Mո9loj,E=F b[B V^@>x `~nև5s'r̝ܷ$Q ;w\D}\3h a_xsy֛9!*kvUQ@堧 q¼b^l/~8L="0/6BPp0Uv  6 hElz+$NEakJ:o!{-=ESZn$8nB_i]}+ՆlBH!Q5ge ~F1]{X:h"T9PR{3^25ݛ4Ңw-rNÔ,]mwc{tN@*pn5:>|U#؅ġP,H>_mpp8b SU%YZdV!ڌjcL d{tT^Z bV!?[{<ɠ9<Ț1O0҆<42gyP[@yJj(n *Unn+`v ̱^7^i:\OTC傌B }ALZ>{,W[(amcwdKe<֣qh|SbIa"`|Mݤa"H(=˱RZC\b[ӅzNJwŝ?RQ~uORx 2bY=/U o"9>Y4)q~ìw}e$Kwҹ a~bVn0 Xm9̥X4+P`k/xpe@ꊛU{Ķܪi O9tdbý6cF% QOwcn}Sj勶d+#)omW+,RH&#Mjv*eSnpsc"{hUծC[FQা 0(s_}x]gf0_7"ؐ0x"l=0M mX ;2 NBa՟;m|>'CM/ z`}uD[਼+ݕ`KhC; 4Naqír)oVgMfCeˢk@}uRnQPNk៑wꤝ5նKOj@/G=1dy`:XŮCr}7a45<ͧe%y:F᩾4|,B J.8 755\qV:rG*fxVd šzRW`qjRS.uWk“/2܇/:L.~/zVJU5&} 29,yٴ)m]P]4Wyqo l+ TlS!)b PVoU/XN7Cx͠:J"V> stream x=78;ԩ̔><< iFKB )*RYO'G#-’0>d^{]6QFd2M ,)sCzvGe:ɏ~;/PH-x6T0gjQG7l 2jfz\)Mq][ U$YC O5Uvջr|V\ )M!|ƫ c`䪘uDpns#ZB4ݹ()Kgg MT"f%XjTQh %U쮜^ߞ HXHJ9H SXq^?``^/)0-Gw03滕:ՌCe yՋ^'g'}̫78de2OTL `O 2Ozi`&$Of>S'WM5rD~3I;_,Q:'y})m^ՎfN}xv3/$N*oO.S,3ݳb&\tԴ0}^OŒ,׳:i{m'd w30\uD˓_rsW~;* 49mɘ~^\W]{9[L'zTUEy6$EOX")xG F |P6nHnؐ0'BЇRC2vϘ28{aA6%b(l}ZxDhs=k! ﺍ|t Dz/pF5` #@ux*5t?T*%(NA9~PuOb nD@w_<+٢uWt*~mgFQ'C 1|tyb<^h0C`V0gќkr)̀(L=PRENò i^<Ж@ sĀ̆F;6#ϸEG5 ``cNj-~RxgoON~>9^Mg ZJ'6 iLԪ*&dH"X/i70 ^4w,.lmЄJ2OSM=~cך=.˸.فUo<ɼKz]8ݡP+P4z1/;1w#" Pt'+|}#cSOrMa p,PX"RRE@j dESF"ؽ}d)H K"Bz(pOc$7ϒ z)7*D@8+ ,f9.!Q"Z`F8;a NkR1a@dad&o'@NnKd@a pu8$w?e)0.mIY1CLy,`E2L;OL{_8hEF $#n:<;Ql.™%c+w7Q&Nr\E:Q= -T/3)ޒ} ~|P? _[3xw)MM~U4)P7‡-4ڳt2^Fڞz?Ѥq|eБ?|6!M!֠D4 }#x "w{Z{g~GĢ0@ ^y (>|ʘ'2 2X\?bd"ʐ|nX⣃ 9E)G\>9swŜ"d(eutH3[Zhs>X uҞa|}nYŦN/*μ йubS5e^4mTUfJO±8=y[Φߠ:&eJS7)Ii H@`ٲ=#&\L8Q4J`2~R`1ߖ߾_tT&>j 1D/>@Bŭ-CfKT"Į6"x6 mhsH.N Y[Ɖjhdm2:ҤT:'q9ilދ^:;`e+}":G2@94uт`5% OM~S%#ZKI#n"![d2L)oye.0sȫfV ZXtWjB Hv`+&[) H/ (6#" _}D%^ɕJ8Ϗ/z˘E77H' :B#9ϓWۄ]38I H2"q`gQѰpQr/m}$~" Ȇo@}D ~>+/5T<.hDU,v5OJ{fj~d*,3 ;e &E&,AhPJi&7lK^ P6N%X.KbkY:htGT)XO`w\h=lNx PHA~cP@J (lUl[|W;#^ z#j}\tQ  = ЂOޅNr>OdvׄE 4Z5N${gw֏: {iࠨQ쿇nD<8g)FUγJv񒻲9whӢ-jYɳ_=}6IgCao 'FDb rݯnbi>ob`]p&M9w_ .[g=؃ɭ@DAh>XN # ㋨2:u"0+'&uP4Mַ֬w ,0& 46cO„ ,5/ }M1շeCF 0bW١"pvjr"Z5X`Ϯ&)b%sp | >G6NGD!A'x{6 7wwk PE{<G3^i'2_߳O)zvN x#&mr~W:{b6qq1)bܶ򉘐35e 6PAX@ w]9iSXd6 PsˤC L6.mKX2 eg]Ͻ>L(e dz8t/6_<* HJp)uޮXWd«[/@PDG(\;X3)€)*Z _m`&L ,gb>f5eC:FYE рaT9D"Mrd'YtJ7]XDbƗ%ϾbU|n=ء*5RVE22&z=ۺ|oa޹; \8Pd2F8IApu +a3:34*]T#oD85kuBCO\@ KJdzjq3MWx55KIl^!뽚xϬ+S%vXf0Y(qlQ$Iz|Ѭ_Hc'a'ꪩW0ԕO4k!v80V>i{f{YZ YyZu9SRx?}%Ax,Ө>…`M3JCޝ{D4x`fY u.6I)9_ϋhejEig8L<6$FfGu13aH$GT&X~f&H׊>SErmuXZLr5-j,XN~koBɽCo`ƹrzfۼZJL~itU%\\@CdQ=pO.e5MqcP 4Aq!~/r9Oca}~L2KBG1vrlRLrތaa 8E'$LFD(@ B<{ '~篞Kw.l} \Fk%mVz0aD7[c@I-O'4zSږlyLփ ;M3=x]P6([.-Rz͢TGx~}7gP}weU.ɟl_:;AakcF[^bBoq_t`t&e3^4յ`$< #;RDFQ^Q!`jU+ r^rg:ͦzIjX>{gMS^TZl]N%,0Bid>7UGn[x :ja|h,^Rn(ћĈ!BؾSZboS}\C 6/)4˘cj٭gUA clZoeP]qH|LbgMo]P=ٺ, F;HV!^X6A#DD[Fu yb]kJ`ݰ tHZhhGr ۡ1b//Ϝ1ЎGml5S$%li.8w >*u宴J 5j /}_Qm[[6;E1qV+u"+06鳯+my^)yǛyqdߏH&-IwnvxuGb34؞i[`AibJpݾrx lnJn˼ $& Å-ҫt%`Dya/\* $>ܱ.G`K<G0mUFk e[Uh& l;I1:/@#-|JmY=v!tZy3m-0qWܝ'=T#ޒ%à67 1!l0cg+aФ)5XYOvEҗov9x;L1{RW\"@PKP!<&YNA*}OB[x F`./a: E5\Tɏ׳v;-y/޹  IV&]uJx6<\Q/; kXBq.Z[(ĸwV2ܢ(r95AB00G# /u QU$u+-? ]rH;8h"&pVY0kyE4)jOrKy]9 -I&y ,\VaֺUf`m1m"'6kDJe/ ]B jMYe( t6l.2|cѴ^Yp Xgz$ڼ*imU+Cvo41N [6>[6;K,@YVcn/L~|t@ G8Җ{G4sG~B\9TJwU*eԗ_W߄d@ҏ;S-{)_}ep" ļW NEv .ĊNuYrݶq}dK&Rq֣5x ^:pdmo> stream xU PTYWkcP|D54ZXQ ,,.,.o%E9 aq5 mhs߉+؎әNw|wr@I$5aqs'D xIDvы+PV NRpr|)4#ߦɆv$%TΛ;wr[28@:.>-+?7-E\8+_ES(o*|hjLS! j%5ZM-><(X6 I|%&LpQ.͖aCұE!+Eb]r$i)0OA"x<,@ o x*\%'`R@/|;A1Y=Y3Q\\GVG$]{-)l,${G'we'-u'8 oz`00#:ERE=ݳRY2GGut{tW%#vQZU4^&!s~)D2w) 覛\&T,.{!mM\BJw멒'8};Hwhsy%2My[AkLef+2MIH0kOmpb;wjU耎cE>5茺J`dfژ\X?ј>0C"tE7L7C?pq`3A/_򹨶%vi{"h5*9"$ ^Dh2 l:ͼkœ|I)2`ő(dU8(),%nدiX7{03p v8v?G7S=8 >Rrb;Lq 1vcEG\ %ZLfi;wzˍ\2Lt'to:nY忁xm܎Γ#g>b0!=tf*cȘɿoeǽW5tuQgQW@fwn{w鵿=\mvrw&k%23 |H^w qGx,vz\QG(u X@a2Ȃ%ď,WLǿ5f#ԊT_]ѮKtPYIF8B5Z9"5+$A&O46ߺq1{}?͆^0r0eT@'z>c2UP豜8&Ŵ*:ʑG\3>  (GV IPŠDk.ʕFɣ,v/^k6vy3gd\~ӏ*2Di/}cAN~~c皅~ׂz]ti9lՁ⽨<3KqT @}Zg[Lapw1["X+AFcC}7CRPsBNbGڐKw |EE7ŵ:QeP.p$nHuY&Y t[ Ӈ^Mct[lQ3J]8q%5}g~턔7wmM?> stream xVkTgJ%֊K/UUD B,%*"\EQA)Z[XKң,m}'ў737yQNH$BfX,U'|dT3"~鈰~n{Rz~b˝)순8?t`N^";<,gI:^ld83:rU"ZK4F_v5DZdMT9vШV+`Nj64-Ng9azV=xk5 *J1 5xyˈtB`*\*Wj\kԲ*M:-A(O'j5FVגx*TZW,4أ1YiT$jm|01R1F.(ԉAVI]JW fPiT$>A JNmxW;p*S' rVV);Fk:!ؘ[nOTվ~fRJ*ZEPT8AERbj2MRK * SKpʍP#1d('rH"pHt88 NbX'~IϠ;3~Vibn> lLpxL%i Y7o%[bKS௅mOUjڢpݲpdjEd5􁓨B%uy1L<@5@Oxg})ONkb" Jzu:1+ng kl@JDJ9$?fi<pVH3IIwCV*(8.KajfDr7v2(CB% {ʿgAT\Psnى2L6$ $Q^ Saُ0tby!Nj׻KnJs7W$2Y% Iga)m#&]xY&k}Ɖ Wj YS#'p IdEOEZvx爉xkv䥠4f^,O{__jkX9>} $!^"^UG>K:?k(/?vA&_+KT)0 :RN67T{?|xB5tam]nt4FŚbT*:%ň@q2vgtz@.p^* KQ~ bp7W"rc* D$מk)WȲoa.羧g^^pƢ\zbm0SM-7 eRMendstream endobj 190 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4086 >> stream xW TSW־!ps+5 ޛZV*"-E-U ސTN@ P t Vkhm}uڑN۱3?kq5Zrr>o+ ,-@0q,Zh44!2 l?UbO$5Vӈ n slXye̞7O$!Q丝agJ%s%k"d򈝒`ɚ^s%޲Dpd,Z( B$R?ɦ+|6J<}oڰؒ Ѳ8g|jEb@Rຠ`iHh΍ᑛny Yzb%f,Cp'b9XIxb>"HML"&S‘xJL#XM "aI5c-!Ke|,#]fS/Žx k5gڦ?0gٶɶ&Ĵ6]wϴ7ovYn`- 05-]-Hbmjedj oVЅ4v7@FMn/3wX\5~:{&F&JJ{5\P0yh@IA\2"sҀ9gP!rmXn*9Xw`-f2 ْ8K1g> μ} U 'Z,a8m$㤜)LPx'4B~Eᖺz6t2~Å"ZdNsh4\!%N bwH.gu,T\HcۤFҢǨ J"aC[>|H+n*LS<>=M Z[(zqG!`75&v.փe8^ `"ч8VHgxcXtIHON<4k '9A/ bDrёNh3IhAplzP -ͤhՁ3y )i~q vvR6eu4h9V{)jw鞺PKIufix-{z@ЁҮ]Kp.puKۍK(Ys Mhp&i2L.Tׂ*@}}$ėV.ۧʫq"zvNmއc!h! DaS7vmRf"Ǫ)%D iUǐoyjB[(rB㑳UYE쐁$F"GS#1Lࠀk+^2ub91`/)&<9R#Ј`VL^'I;x?XzÏ'+:3_`1\ⳘAJ(V\w? Z-*P膔&@io8rbA6^j͉sΈ' (ͤyh~08pDt hߣoi|#̘|HL/v[qWϟe݌6i\ A$~U܁{o- Z=6#10ub_ӎob?QYSxt+JPfdaO?[R]a60et&΂}Lފ(b_ziAࢡ!;d6(3>In|o/#;6*5kٲa ,=Ȍ dUi}Q ޺!p>&JlwvrzAUQia1[jO? kudԲX؅%:PzV"/Àز̙=AqG J#vٳ}h 3iz$ƭ_g܂k0ooӖۈ3N` gAgj؋3Ha'Q ;;D~TM{Aiv#ҧ6*4X^Ǡlű*t#8h۔F2 tlM-VǏ .xT6u_:$bv' HcCcwF Yn]JMP 1;H^cHl+{zWַGJ;W 2x*3F ؤXñQmMc2c}`? '?n4.8vؿlZO@7> "v2IeѸWFPW- mjhRzpE}>"#7T1(EzjW[ V8U~.>$ : 8r K 2tTip'be t.QG$'$e((Ok*,fWj9> Xԁk9951 w0K+hZD.Y)8N4|!m0l^uI\5frL|qhtnc_$ho=!Ȏ%h{d0 ͚Yel3}2 ~, E3y qO.r/Am ]lOl⮣muucw@D1x_sCCsm~q~ {` (cH6:N;b)!J#O[7lrXNH¢ PXXH*hOS.:6>eˣߛ2rY #Gh\d@~vJ F We^b;4%{˙_汕떭\(Я+ݳPur.M ]pw5[p&. ٻһ9#&1{'JJ 4a3a@QCjMS.**I۽]d.%^;| {<3'dP_/::i;/I bАQ,EvUeQIRgg0 M@Q]o YEEZFǾx.v*R5 q(0vx|De ;'@9@MՂjrPh=*kMq2ugll:EjV][،'߈endstream endobj 191 0 obj << /Filter /FlateDecode /Length 163 >> stream x]O0 *UB,ta(@p' aߗ,N>ˮl#GpƲ5 HeQV-ƃ剳BvwO|P3gyC4-^!(ƘV?p֦ͨ*dh*q\C in X3 `Sendstream endobj 192 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 274 >> stream xcd`ab`ddM,pI-Lu JM/I,,ILIB F?0eQ ,lDo4Ѹ߾f}7Sw];w]T4GYwl[pq1:^.Kj> stream xVyXSW!dzRښFڄiGEVuQdQ@ʢd#vA@! jQPuC-v:e^ uls;pM |l sX 7sW_,0K5OJBE~B|{'3St@ ښeKuRPC [aoR_?nݪ'z{g%[A9s=zz*BTV F=A{CLBM#w[D[?@_cA|J e gb9aGXA*‘'=‰0&>'k ”0#̉> b$m"xXB#4 "GXa!Ӹu>ܠym䏔JkmzCї{o{ߛ}gQb-ȑ8NaQ $gզ`Hq>+zF0] g솽 E&dΔY|Buf74*/lvMIIY|*CC_ ̓^Ȱ1f23VFfcHsᥱ¶{׼|?l`/h#oܯ5l3lq%qy n'~ 4nZ~N3,AcX9کv99=PwPCݾo@0.^w~/Oi=;r$.]w<>..,Z7٫4=ݮ^5u6UIB;5RWF֎FF]=Js:f %!"mGשĭI5b'9 zgDT$ԣ:Q,ɬJ&bb|0rΈA0*"' x]"C_U!n*(}J3N`Kcׅ0BJ*ӜBZE)&M ݯÔ"Or4k_elqL,ujԭO*JMyN'$-(4.$hQMUwregEa :#a BhXFF % \VoׇK"EYJD5d goQQ[IBǘK\ Do k[0kѳ:꽫\l-$X7v=Kt߱Co.v!itpGoD?@鍺²¯/d׽R6̬h|l2r .#X3rڮ3 Q.+PX<|/+Β.9MH:89S/˔cilgK {ګgdgE-|IB-=N`z]lV$6 䊽rU.jq全^GiJ'ƀ\Kb(>9Wg?e9ʳvq! hOE5Thr@r-B4ӪbZ)ӵ)=\&?XHZG]g(lWn&~;ƟskTH:8>W Y,QS g&W>eEYn [s;mA*ܤE%#v' nN`CotEᅼ\R5!yY0S?% ?rFm*kKEEg:N_pFZD-h'v5mY~8>*@}#*F8Ħdzvѥ]w@&Z88TL(؞tUU2z_A4, ʒ-=^CpeT-Sx;/+_d >rpq-+kةƻm7jo[_ك%o$92^ ߙYŴ@kUrFkBds>3;>)8[l_{1XCv3򲨶Fj;Az?zh*Qt hnT_}=~gS4c(,`PrUM1d6֍q̵;(U~3}_lXx//y6Jo҆ףuQ2q2zᎧ岳Ea~ў 8JHNԄgaCdo:KKZ@pr0h@7*;A&`wXjAw@ RTFaf8 ,*zGL}bax /d`f9CnWwu S#%R{?Խ(Gh劰^1u$K~O.(@':)9]tfӽ9!5(-ԳP%k >RDٙMBGnam!Α,({rsg"4:{{1):-ds_C,!+F$u\\2@~fIv9nsg.ָrKy4orSuſڴ ǿIMuAUrYDA0Ϙ#/W}} qP5x.|^A=a-~6ϸĽYsj2 Z"|ϋ/:e` AhuDκW%΋?#0Xi ,cYnV *98] 4|oo ]87*&2Q"w)`wuFvV[CcQRsB?@RFrqZ=}(&9LEIic-;bojrT!ns'7bh}mY"arq2$7b >wc_n骣nw 4*37]+N}fA4wt2D;7sgwAp9 G> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 195 /ID [<80126d83411aac7340e1264c92ef0e83>] >> stream xcb&F~0 $8Js? z -/ߍp'3dKzZ& D Rh+"WH(rDH~^S@QF i3+@0l g  t* endstream endobj startxref 109048 %%EOF RcppGSL/vignettes/RcppGSL-intro.Rnw0000644000176200001440000000045013552060313016624 0ustar liggesusers\documentclass{article} \usepackage{pdfpages} %\VignetteIndexEntry{RcppGSL} %\VignetteKeywords{R,GSL,Rcpp,data transfer} %\VignettePackage{RcppGSL} %\VignetteDepends{RcppGSL} %\VignetteEncoding{UTF-8} \begin{document} \includepdf[pages=-, fitpaper=true]{RcppGSL-introduction.pdf} \end{document} RcppGSL/R/0000755000176200001440000000000014215727760011740 5ustar liggesusersRcppGSL/R/inline.R0000644000176200001440000000455213070437421013335 0ustar liggesusers## Copyright (C) 2010 - 2012 Dirk Eddelbuettel and Romain Francois ## Copyright (C) 2014 - 2017 Dirk Eddelbuettel ## ## This file is part of RcppGSL. ## ## RcppGSL 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. ## ## RcppGSL 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 RcppGSL. If not, see . .pkgenv <- new.env(parent=emptyenv()) .onLoad <- function(libname, pkgname) { if (.Platform$OS.type=="windows") { LIB_GSL <- Sys.getenv("LIB_GSL") .pkgenv[["gsl_cflags"]] <- sprintf("-I%s/include", LIB_GSL) .pkgenv[["gsl_libs"]] <- sprintf("-L%s/lib -lgsl -lgslcblas", LIB_GSL) } else { if (unname(Sys.which("gsl-config")) != "") { .pkgenv[["gsl_cflags"]] <- system("gsl-config --cflags", intern = TRUE) .pkgenv[["gsl_libs"]] <- system("gsl-config --libs" , intern = TRUE) } else { .pkgenv[["gsl_cflags"]] <- "" .pkgenv[["gsl_libs"]] <- "" warning("No 'gsl-config' config script found, limiting extensibility.", call. = FALSE) } } } LdFlags <- function(print = TRUE) { if (print) cat(.pkgenv$gsl_libs) else .pkgenv$gsl_libs } CFlags <- function(print = TRUE) { if (print) cat(.pkgenv$gsl_cflags) else .pkgenv$gsl_cflags } inlineCxxPlugin <- function(...) { plugin <- Rcpp::Rcpp.plugin.maker( include.before = "#include ", libs = sprintf( "%s $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)", LdFlags(FALSE)), package = "RcppGSL", Makevars = NULL, Makevars.win = NULL ) settings <- plugin() settings$env$PKG_CPPFLAGS <- CFlags(FALSE) settings$configure <- readLines(system.file("skeleton", "configure", package="RcppGSL")) settings$configure.win <- readLines(system.file("skeleton", "configure.win", package="RcppGSL")) settings$Makevars.in <- readLines(system.file("skeleton", "Makevars.in", package = "RcppGSL")) settings } RcppGSL/R/RcppExports.R0000644000176200001440000000062312774327533014357 0ustar liggesusers# This file was generated by Rcpp::compileAttributes # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 fastLm <- function(X, y) { .Call('RcppGSL_fastLm', PACKAGE = 'RcppGSL', X, y) } gslSetErrorHandlerOff <- function() { .Call('RcppGSL_gslSetErrorHandlerOff', PACKAGE = 'RcppGSL') } gslResetErrorHandler <- function() { .Call('RcppGSL_gslResetErrorHandler', PACKAGE = 'RcppGSL') } RcppGSL/R/init.R0000644000176200001440000000162712774327533013036 0ustar liggesusers## Copyright (C) 2015 Dirk Eddelbuettel ## ## This file is part of RcppGSL. ## ## RcppGSL 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. ## ## RcppGSL 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 RcppGSL. If not, see . .onAttach <- function(libname, pkgname) { ## turn the GSL error handler off so that GSL will not abort R ## users will have to check return codes (see vignette) gslSetErrorHandlerOff() } RcppGSL/R/fastLm.R0000644000176200001440000000760713070437421013311 0ustar liggesusers ## fastLm.R: Rcpp/GSL implementation of lm() ## ## Copyright (C) 2010 - 2017 Dirk Eddelbuettel and Romain Francois ## ## This file is part of RcppGSL. ## ## RcppGSL 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. ## ## RcppGSL 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 RcppGSL. If not, see . fastLmPure <- function(X, y) { stopifnot(is.matrix(X), is.numeric(y), nrow(y)==nrow(X)) res <- .Call("RcppGSL_fastLm", X, y, PACKAGE="RcppGSL") } fastLm <- function(X, ...) UseMethod("fastLm") fastLm.default <- function(X, y, ...) { X <- as.matrix(X) y <- as.numeric(y) res <- fastLmPure(X, y) names(res$coefficients) <- colnames(X) res$fitted.values <- as.vector(X %*% res$coefficients) res$residuals <- y - res$fitted.values res$call <- match.call() res$intercept <- any(apply(X, 2, function(x) all(x == x[1]))) class(res) <- "fastLm" res } print.fastLm <- function(x, ...) { cat("\nCall:\n") print(x$call) cat("\nCoefficients:\n") print(x$coefficients, digits=5) } summary.fastLm <- function(object, ...) { se <- object$stderr tval <- coef(object)/se TAB <- cbind(Estimate = coef(object), StdErr = se, t.value = tval, p.value = 2*pt(-abs(tval), df=object$df)) # why do I need this here? rownames(TAB) <- names(object$coefficients) colnames(TAB) <- c("Estimate", "StdErr", "t.value", "p.value") ## cf src/stats/R/lm.R and case with no weights and an intercept f <- object$fitted.values r <- object$residuals #mss <- sum((f - mean(f))^2) mss <- if (object$intercept) sum((f - mean(f))^2) else sum(f^2) rss <- sum(r^2) r.squared <- mss/(mss + rss) df.int <- if (object$intercept) 1L else 0L n <- length(f) rdf <- object$df adj.r.squared <- 1 - (1 - r.squared) * ((n - df.int)/rdf) res <- list(call=object$call, coefficients=TAB, r.squared=r.squared, adj.r.squared=adj.r.squared, sigma=sqrt(sum((object$residuals)^2)/rdf), df=object$df, residSum=summary(object$residuals, digits=5)[-4]) class(res) <- "summary.fastLm" res } print.summary.fastLm <- function(x, ...) { cat("\nCall:\n") print(x$call) cat("\nResiduals:\n") print(x$residSum) cat("\n") printCoefmat(x$coefficients, P.values=TRUE, has.Pvalue=TRUE) digits <- max(3, getOption("digits") - 3) cat("\nResidual standard error: ", formatC(x$sigma, digits=digits), " on ", formatC(x$df), " degrees of freedom\n", sep="") cat("Multiple R-squared: ", formatC(x$r.squared, digits=digits), ",\tAdjusted R-squared: ",formatC(x$adj.r.squared, digits=digits), "\n", sep="") invisible(x) } fastLm.formula <- function(formula, data=list(), ...) { mf <- model.frame(formula=formula, data=data) X <- model.matrix(attr(mf, "terms"), data=mf) y <- model.response(mf) res <- fastLm.default(X, y, ...) res$call <- match.call() res$formula <- formula res$intercept <- attr(attr(mf, "terms"), "intercept") res } predict.fastLm <- function(object, newdata=NULL, ...) { if (is.null(newdata)) { y <- fitted(object) } else { if (!is.null(object$formula)) { x <- model.matrix(object$formula, newdata) } else { x <- newdata } y <- as.vector(x %*% coef(object)) } y } RcppGSL/MD50000644000176200001440000000705214360120532012034 0ustar liggesusersc56681c4ee5df2a9f9b4c6581265b900 *ChangeLog 9e81dd73321d287aab3a54b13f93c6bd *DESCRIPTION ab224aaaef366cc78e9ed7430feeea9f *NAMESPACE 4ae937de8397e60712c56229703c16f5 *R/RcppExports.R f7d8b7cbd39e593ba8ddf03a43279dc9 *R/fastLm.R 54fb893fc5a89aa3f3b01e949863f87e *R/init.R e3e6b6943ffd2cc94aca47745e502d33 *R/inline.R 4dd190cc7a0b4c8049cb7ce542ac0101 *README.md 3883e612bd76f4fe2df73a4bcaf28164 *TODO b3326314f6b66ea8e743e80e72a4884b *build/partial.rdb 99748c6d874082f6df5a4f5e19576e00 *build/vignette.rds d02d72151c8a9e3cffa39e0115020417 *cleanup 2b764995c028e6f6c136ef8fa8824049 *configure e3d9a4b27fc996c26b221e82153c7077 *configure.ac a4e15a051f387ad1c164c875eab90100 *inst/NEWS.Rd 4b0054248b3d60a0f04f107e534b901a *inst/doc/RcppGSL-intro.Rnw 102a7fef8513cf2f64db56865ddff53c *inst/doc/RcppGSL-intro.pdf acd73645dbdb9731139253720713e1f7 *inst/examples/RcppGSLExample/DESCRIPTION ca4d3febd8107be64527dbb80674d7f0 *inst/examples/RcppGSLExample/NAMESPACE 07b32ab09f8211f783470b43adbd57a4 *inst/examples/RcppGSLExample/R/RcppExports.R 7028487129d9f40d52a3c48c20ca3844 *inst/examples/RcppGSLExample/R/colNorm.R 1ac375832dc27870605fc0ce9da94ad5 *inst/examples/RcppGSLExample/configure 2661ff215b5d361a6793c6b7ebe27068 *inst/examples/RcppGSLExample/configure.ac 64f8c8cc7613c9cde5f6d1bdb2b45825 *inst/examples/RcppGSLExample/man/colNorm.Rd 2d84d061699ad784812b605eeb65f22b *inst/examples/RcppGSLExample/src/Makevars.in d69db63928d9ef7801148b48c32c2ec9 *inst/examples/RcppGSLExample/src/Makevars.win 60cbf7394d18748b32949ed3111fd823 *inst/examples/RcppGSLExample/src/RcppExports.cpp e0736be77b9cadf73fb2471f7682be43 *inst/examples/RcppGSLExample/src/colNorm.cpp 43d44fc8643229ea3ed7df59681df62a *inst/examples/RcppGSLExample/src/colNorm_old.cpp 70f028ea1e8306b481e28da92536d8e1 *inst/examples/bSpline/bSpline.R a051860124731442375a4f826d1a4244 *inst/examples/bSpline/bSpline.cpp e2747f0b0e0c7528fd9dbefedaf0d5ef *inst/include/RcppGSL.h 5890239c871afbd806915464cba0d394 *inst/include/RcppGSLForward.h 6a90824620b30d66e42d4e246ae766f5 *inst/include/RcppGSL_matrix.h f21b23f4b2d2bfa744581ee496f44275 *inst/include/RcppGSL_matrix_view.h fb053660cb0ba2e120de8f380ae53f01 *inst/include/RcppGSL_typedef.h 99ffa46b1bf4a58ffaa1d94185e783f1 *inst/include/RcppGSL_types.h 6917433492acaabb3df142fa2599a502 *inst/include/RcppGSL_vector.h 34bc4c27c6c19c407b79088a0d36c346 *inst/include/RcppGSL_vector_view.h eac5eab6352e9a97236f9e11d6069144 *inst/skeleton/Makevars.in 528fb571247b8c0c4db3fda62c047d3d *inst/skeleton/Makevars.win 7ac30c30f4eb7df2278ec84f4e457152 *inst/skeleton/configure af35ab71c2fb50246cdd9ba0512a9e17 *inst/skeleton/configure.win c24f72659ea22db2ec0837be37a07b35 *inst/tinytest/cpp/gsl.cpp ebb793deef569c7d8a2fb0dfc99c852d *inst/tinytest/test_client_package.R f3bb562b89338afc50ba19e65401b293 *inst/tinytest/test_fastLm.R a4b46850356a5d9001c17c52595de0cf *inst/tinytest/test_gsl.R 7b5c55ec1f47446552acba44e1aae221 *man/LdFlags.Rd 87189d915953c4415e5fcca042d495cd *man/RcppGSL-package.Rd e2df304a89f0266a3dd958a07faea06e *man/fastLm.Rd d140432b43a8c7ef13efd4f9c3d082d8 *src/Makevars.in aade1248e53b658f779c5c68a9677cb5 *src/Makevars.ucrt 1fa17e37e49e82b5e916c39be39f65b9 *src/Makevars.win fcecc3b7db20ec2f2bdb63cf3feac0e4 *src/RcppExports.cpp ec227745a908b2cee282119745407088 *src/fastLm.cpp ccc65ba8db955bd50d306032f541da89 *src/init.c 9cfa37e70e40833dd2607a100c7d2e33 *src/setErrorHandler.cpp 73e9b83fe44e0c79305a5c7906c56234 *tests/tinytest.R 876da2841839c09471a50cf76a404767 *tools/winlibs.R 4b0054248b3d60a0f04f107e534b901a *vignettes/RcppGSL-intro.Rnw 27004a50c3d7c1b4bdebb8313081f387 *vignettes/RcppGSL-introduction.pdf RcppGSL/inst/0000755000176200001440000000000014360114761012504 5ustar liggesusersRcppGSL/inst/examples/0000755000176200001440000000000012774327533014334 5ustar liggesusersRcppGSL/inst/examples/RcppGSLExample/0000755000176200001440000000000012774327533017122 5ustar liggesusersRcppGSL/inst/examples/RcppGSLExample/NAMESPACE0000644000176200001440000000010412774327533020334 0ustar liggesusersuseDynLib(RcppGSLExample) importFrom(Rcpp, evalCpp) export(colNorm) RcppGSL/inst/examples/RcppGSLExample/man/0000755000176200001440000000000012774327533017675 5ustar liggesusersRcppGSL/inst/examples/RcppGSLExample/man/colNorm.Rd0000644000176200001440000000214713673461362021577 0ustar liggesusers\name{colNorm} \alias{colNorm} \title{Column norm of a matrix} \description{ \code{colNorm} provides a column norm of a matrix to provide an example of using \pkg{RcppGSL} with \code{GNU GSL} library. } \usage{ colNorm(G) } \arguments{ \item{G}{a numeric matrix.} } \details{ The column norm of \code{G} is returned. This example reprises an example in section 8.4.13 of the GSL reference manual. } \value{ \code{colNorm} returns a vector each element of which corresponds to the vector norm of the corresponding column of \code{M}. } \references{GNU GSL project: \url{http://www.gnu.org/software/gsl}} \author{ The GNU GSL library is being written by team of authors with the overall development, design and implementation lead by Brian Gough and Gerard Jungman. RcppGSL is written by Romain Francois and Dirk Eddelbuettel. } \examples{ ## see Section 8.4.13 of the GSL manual ## create M as a sum of two outer products M <- outer(sin(0:9), rep(1,10), "*") + outer(rep(1, 10), cos(0:9), "*") print(colNorm(M)) ## same result using just R print(apply(M, 2, function(x) sqrt(sum(x^2)))) } RcppGSL/inst/examples/RcppGSLExample/DESCRIPTION0000644000176200001440000000071212774327533020630 0ustar liggesusersPackage: RcppGSLExample Title: A Really Simple Example of Using RcppGSL in a Package Version: 0.0.3 Date: 2014-06-26 Author: Dirk Eddelbuettel and Romain Francois Maintainer: Dirk Eddelbuettel Description: A complete examples for Seamless R, C++ and GSL integration in an R package is provided. Depends: R (>= 2.11.0) Imports: Rcpp (>= 0.11.0) LinkingTo: Rcpp, RcppGSL URL: http://dirk.eddelbuettel.com/code/rcpp.html License: GPL (>= 2) RcppGSL/inst/examples/RcppGSLExample/configure.ac0000644000176200001440000000154612774327533021416 0ustar liggesusers AC_INIT([RcppGSLExample], 0.1.0) ## Use gsl-config to find arguments for compiler and linker flags ## ## Check for non-standard programs: gsl-config(1) AC_PATH_PROG([GSL_CONFIG], [gsl-config]) ## If gsl-config was found, let's use it if test "${GSL_CONFIG}" != ""; then # Use gsl-config for header and linker arguments (without BLAS which we get from R) GSL_CFLAGS=`${GSL_CONFIG} --cflags` GSL_LIBS=`${GSL_CONFIG} --libs` else AC_MSG_ERROR([gsl-config not found, is GSL installed?]) fi ## Use Rscript to query Rcpp for compiler and linker flags ## link flag providing libary as well as path to library, and optionally rpath ##RCPP_LDFLAGS=`${R_HOME}/bin/Rscript -e 'Rcpp:::LdFlags()'` # Now substitute these variables in src/Makevars.in to create src/Makevars AC_SUBST(GSL_CFLAGS) AC_SUBST(GSL_LIBS) ##AC_SUBST(RCPP_LDFLAGS) AC_OUTPUT(src/Makevars) RcppGSL/inst/examples/RcppGSLExample/src/0000755000176200001440000000000013673464740017712 5ustar liggesusersRcppGSL/inst/examples/RcppGSLExample/src/Makevars.win0000644000176200001440000000023012774327533022174 0ustar liggesusers## This assumes that the LIB_GSL variable points to working GSL libraries PKG_CPPFLAGS=-I$(LIB_GSL)/include PKG_LIBS=-L$(LIB_GSL)/lib -lgsl -lgslcblas RcppGSL/inst/examples/RcppGSLExample/src/colNorm_old.cpp0000644000176200001440000000540413673461747022674 0ustar liggesusers // colNorm.cpp: Rcpp and GSL based example of column norm // adapted from `Section 8.4.13 Example programs for matrices' // of the GSL manual // // Copyright (C) 2010 - 2020 Dirk Eddelbuettel and Romain Francois // // This file is part of RcppGSL. // // RcppGSL 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. // // RcppGSL 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 RcppGSL. If not, see . // Just for completeness and history, this file contains some _older_ // versions of the column norm function. *You can ignore these.* // // Use the sibbling file colNorm.cpp as the reference implementation. #include #include #include // old initial implementation, kept for comparison extern "C" SEXP colNorm_old(SEXP sM) { try { RcppGSL::matrix M = sM; // create gsl data structures from SEXP int k = M.ncol(); Rcpp::NumericVector n(k); // to store results for (int j = 0; j < k; j++) { RcppGSL::vector_view colview = gsl_matrix_const_column (M, j); n[j] = gsl_blas_dnrm2(colview); } M.free() ; return n; // return vector } catch( std::exception &ex ) { forward_exception_to_r( ex ); } catch(...) { ::Rf_error( "c++ exception (unknown reason)" ); } return R_NilValue; // -Wall } // newer Attributes-based implementation // [[Rcpp::export]] Rcpp::NumericVector colNorm_old2(Rcpp::NumericMatrix M) { // this conversion involves an allocation RcppGSL::matrix G = Rcpp::as< RcppGSL::matrix >(M); int k = G.ncol(); Rcpp::NumericVector n(k); // to store results for (int j = 0; j < k; j++) { RcppGSL::vector_view colview = gsl_matrix_const_column (G, j); n[j] = gsl_blas_dnrm2(colview); } G.free(); return n; // return vector } // newer Attributes-based simplementation with reference counting // [[Rcpp::export]] Rcpp::NumericVector colNorm_old3(RcppGSL::matrix G) { int k = G.ncol(); Rcpp::NumericVector n(k); // to store results for (int j = 0; j < k; j++) { RcppGSL::vector_view colview = gsl_matrix_column (G, j); n[j] = gsl_blas_dnrm2(colview); } return n; // return vector } RcppGSL/inst/examples/RcppGSLExample/src/colNorm.cpp0000644000176200001440000000306513673464702022031 0ustar liggesusers // colNorm.cpp: Rcpp and GSL based example of column norm // adapted from `Section 8.4.13 Example programs for matrices' // of the GSL manual // // Copyright (C) 2010 - 2020 Dirk Eddelbuettel and Romain Francois // // This file is part of RcppGSL. // // RcppGSL 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. // // RcppGSL 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 RcppGSL. If not, see . #include #include #include // newest version using typedefs and const & // // see file colNorm_old.cpp for some older implementations if you are // interested in comparing to those older versions, otherwise just enjoy // this much shorter and simpler one // [[Rcpp::export]] Rcpp::NumericVector colNorm(const RcppGSL::Matrix & G) { int k = G.ncol(); Rcpp::NumericVector n(k); // to store results for (int j = 0; j < k; j++) { RcppGSL::VectorView colview = gsl_matrix_const_column (G, j); n[j] = gsl_blas_dnrm2(colview); } return n; // return vector } RcppGSL/inst/examples/RcppGSLExample/src/Makevars.in0000644000176200001440000000024412774327533022012 0ustar liggesusers # set by configure GSL_CFLAGS = @GSL_CFLAGS@ GSL_LIBS = @GSL_LIBS@ # combine with standard arguments for R PKG_CPPFLAGS = $(GSL_CFLAGS) PKG_LIBS = $(GSL_LIBS) RcppGSL/inst/examples/RcppGSLExample/src/RcppExports.cpp0000644000176200001440000000352213673465130022703 0ustar liggesusers// Generated by using Rcpp::compileAttributes() -> do not edit by hand // Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 #include #include using namespace Rcpp; // colNorm Rcpp::NumericVector colNorm(const RcppGSL::Matrix& G); RcppExport SEXP _RcppGSLExample_colNorm(SEXP GSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< const RcppGSL::Matrix& >::type G(GSEXP); rcpp_result_gen = Rcpp::wrap(colNorm(G)); return rcpp_result_gen; END_RCPP } // colNorm_old2 Rcpp::NumericVector colNorm_old2(Rcpp::NumericMatrix M); RcppExport SEXP _RcppGSLExample_colNorm_old2(SEXP MSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type M(MSEXP); rcpp_result_gen = Rcpp::wrap(colNorm_old2(M)); return rcpp_result_gen; END_RCPP } // colNorm_old3 Rcpp::NumericVector colNorm_old3(RcppGSL::matrix G); RcppExport SEXP _RcppGSLExample_colNorm_old3(SEXP GSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< RcppGSL::matrix >::type G(GSEXP); rcpp_result_gen = Rcpp::wrap(colNorm_old3(G)); return rcpp_result_gen; END_RCPP } RcppExport SEXP colNorm_old(SEXP, SEXP); static const R_CallMethodDef CallEntries[] = { {"_RcppGSLExample_colNorm", (DL_FUNC) &_RcppGSLExample_colNorm, 1}, {"_RcppGSLExample_colNorm_old2", (DL_FUNC) &_RcppGSLExample_colNorm_old2, 1}, {"_RcppGSLExample_colNorm_old3", (DL_FUNC) &_RcppGSLExample_colNorm_old3, 1}, {"colNorm_old", (DL_FUNC) &colNorm_old, 2}, {NULL, NULL, 0} }; RcppExport void R_init_RcppGSLExample(DllInfo *dll) { R_registerRoutines(dll, NULL, CallEntries, NULL, NULL); R_useDynamicSymbols(dll, FALSE); } RcppGSL/inst/examples/RcppGSLExample/R/0000755000176200001440000000000013673465130017316 5ustar liggesusersRcppGSL/inst/examples/RcppGSLExample/R/RcppExports.R0000644000176200001440000000066313673465130021737 0ustar liggesusers# Generated by using Rcpp::compileAttributes() -> do not edit by hand # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 colNorm <- function(G) { .Call('_RcppGSLExample_colNorm', PACKAGE = 'RcppGSLExample', G) } colNorm_old2 <- function(M) { .Call('_RcppGSLExample_colNorm_old2', PACKAGE = 'RcppGSLExample', M) } colNorm_old3 <- function(G) { .Call('_RcppGSLExample_colNorm_old3', PACKAGE = 'RcppGSLExample', G) } RcppGSL/inst/examples/RcppGSLExample/R/colNorm.R0000644000176200001440000000173112774327533021061 0ustar liggesusers## colNorm.R: R wrapper to Rcpp/GSL colNorm implementation ## ## Copyright (C) 2010 Dirk Eddelbuettel and Romain Francois ## ## This file is part of RcppGSL. ## ## RcppGSL 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. ## ## RcppGSL 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 RcppGSL. If not, see . ## old call now shadowed by auto-generated colNorm() in RcppExports.R colNorm_old <- function(M) { stopifnot(is.matrix(M)) res <- .Call("colNorm_old", M, package="RcppGSLExample") } RcppGSL/inst/examples/RcppGSLExample/configure0000755000176200001440000024643314360114762021034 0ustar liggesusers#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for RcppGSLExample 0.1.0. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='RcppGSLExample' PACKAGE_TARNAME='rcppgslexample' PACKAGE_VERSION='0.1.0' PACKAGE_STRING='RcppGSLExample 0.1.0' PACKAGE_BUGREPORT='' PACKAGE_URL='' ac_subst_vars='LTLIBOBJS LIBOBJS GSL_LIBS GSL_CFLAGS GSL_CONFIG target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking ' ac_precious_vars='build_alias host_alias target_alias' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # 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 RcppGSLExample 0.1.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/rcppgslexample] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of RcppGSLExample 0.1.0:";; esac cat <<\_ACEOF Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF RcppGSLExample configure 0.1.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by RcppGSLExample $as_me 0.1.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## 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 ## Use gsl-config to find arguments for compiler and linker flags ## ## Check for non-standard programs: gsl-config(1) # Extract the first word of "gsl-config", so it can be a program name with args. set dummy gsl-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_GSL_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $GSL_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_GSL_CONFIG="$GSL_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_GSL_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 ;; esac fi GSL_CONFIG=$ac_cv_path_GSL_CONFIG if test -n "$GSL_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GSL_CONFIG" >&5 $as_echo "$GSL_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ## If gsl-config was found, let's use it if test "${GSL_CONFIG}" != ""; then # Use gsl-config for header and linker arguments (without BLAS which we get from R) GSL_CFLAGS=`${GSL_CONFIG} --cflags` GSL_LIBS=`${GSL_CONFIG} --libs` else as_fn_error $? "gsl-config not found, is GSL installed?" "$LINENO" 5 fi ## Use Rscript to query Rcpp for compiler and linker flags ## link flag providing libary as well as path to library, and optionally rpath ##RCPP_LDFLAGS=`${R_HOME}/bin/Rscript -e 'Rcpp:::LdFlags()'` # Now substitute these variables in src/Makevars.in to create src/Makevars ##AC_SUBST(RCPP_LDFLAGS) ac_config_files="$ac_config_files src/Makevars" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by RcppGSLExample $as_me 0.1.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ RcppGSLExample config.status 0.1.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "src/Makevars") CONFIG_FILES="$CONFIG_FILES src/Makevars" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi RcppGSL/inst/examples/bSpline/0000755000176200001440000000000012774327533015730 5ustar liggesusersRcppGSL/inst/examples/bSpline/bSpline.R0000644000176200001440000000217512774327533017454 0ustar liggesusers ## This example illustrated use of RcppGSL using the 'Rcpp attributes' feature ## ## The example comes from Section 39.7 of the GSL Reference manual, and constructs ## a data set from the curve y(x) = \cos(x) \exp(-x/10) on the interval [0, 15] with ## added Gaussian noise --- which is then fit via linear least squares using a cubic ## B-spline basis functions with uniform breakpoints. ## ## Obviously all this could be done in R too as R can both generate data, and fit ## models including (B-)splines. But the point to be made here is that we can very ## easily translate a given GSL program (thanks to RcppGSL), and get it into R with ## ease thanks to Rcpp and Rcpp attributes. require(Rcpp) # load Rcpp sourceCpp("bSpline.cpp") # compile two functions dat <- genData() # generate the data fit <- fitData(dat) # fit the model, returns matrix and gof measures X <- fit[["X"]] # extract vectors Y <- fit[["Y"]] op <- par(mar=c(3,3,1,1)) plot(dat[,"x"], dat[,"y"], pch=19, col="#00000044") lines(X, Y, col="orange", lwd=2) par(op) RcppGSL/inst/examples/bSpline/bSpline.cpp0000644000176200001440000000662012774327533020034 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- // [[Rcpp::depends(RcppGSL)]] #include #include #include #include #include #include const int N = 200; // number of data points to fit const int NCOEFFS = 12; // number of fit coefficients */ const int NBREAK = (NCOEFFS - 2); // ncoeffs + 2 - k = ncoeffs - 2 as k = 4 */ // [[Rcpp::export]] Rcpp::List genData() { const size_t n = N; size_t i; RcppGSL::Vector w(n), x(n), y(n); gsl_rng_env_setup(); gsl_rng *r = gsl_rng_alloc(gsl_rng_default); //printf("#m=0,S=0\n"); for (i = 0; i < n; ++i) { /* this is the data to be fitted */ double xi = (15.0 / (N - 1)) * i; double yi = cos(xi) * exp(-0.1 * xi); double sigma = 0.1 * yi; double dy = gsl_ran_gaussian(r, sigma); yi += dy; x[i] = xi; // instead of gsl_vector_set(x, i, xi); y[i] = yi; // instead of gsl_vector_set(y, i, yi); w[i] = 1.0 / (sigma * sigma); // gsl_vector_set(w, i, 1.0 / (sigma * sigma)); //printf("%f %f\n", xi, yi); } gsl_rng_free(r); return Rcpp::DataFrame::create(Rcpp::Named("x") = x, Rcpp::Named("y") = y, Rcpp::Named("w") = w); } // [[Rcpp::export]] Rcpp::List fitData(Rcpp::DataFrame D) { const size_t ncoeffs = NCOEFFS; const size_t nbreak = NBREAK; const size_t n = N; size_t i, j; RcppGSL::Vector y = D["y"]; // access columns by name, RcppGSL::Vector x = D["x"]; // assigning to GSL vectors RcppGSL::Vector w = D["w"]; gsl_bspline_workspace *bw; RcppGSL::Vector B(ncoeffs); RcppGSL::Vector c(ncoeffs); RcppGSL::Matrix X(n, ncoeffs); RcppGSL::Matrix cov(ncoeffs, ncoeffs); gsl_multifit_linear_workspace *mw; double chisq, Rsq, dof, tss; bw = gsl_bspline_alloc(4, nbreak); // allocate a cubic bspline workspace (k = 4) mw = gsl_multifit_linear_alloc(n, ncoeffs); gsl_bspline_knots_uniform(0.0, 15.0, bw); // use uniform breakpoints on [0, 15] for (i = 0; i < n; ++i) { // construct the fit matrix X double xi = x[i]; // gsl_vector_get(x, i); gsl_bspline_eval(xi, B, bw); // compute B_j(xi) for all j for (j = 0; j < ncoeffs; ++j) { // fill in row i of X double Bj = B[j]; // gsl_vector_get(B, j); X(i,j) = Bj; // gsl_matrix_set(X, i, j, Bj); } } gsl_multifit_wlinear(X, w, y, c, cov, &chisq, mw); // do the fit dof = n - ncoeffs; tss = gsl_stats_wtss(w->data, 1, y->data, 1, y->size); Rsq = 1.0 - chisq / tss; Rcpp::NumericVector FX(151), FY(151); // output the smoothed curve double xi, yi, yerr; for (xi = 0.0, i=0; xi < 15.0; xi += 0.1, i++) { gsl_bspline_eval(xi, B, bw); gsl_multifit_linear_est(B, c, cov, &yi, &yerr); FX[i] = xi; FY[i] = yi; } gsl_bspline_free(bw); gsl_multifit_linear_free(mw); return Rcpp::List::create(Rcpp::Named("X") = FX, Rcpp::Named("Y") = FY, Rcpp::Named("chisqdof") = Rcpp::wrap(chisq/dof), Rcpp::Named("rsq") = Rcpp::wrap(Rsq)); } RcppGSL/inst/doc/0000755000176200001440000000000014360114761013251 5ustar liggesusersRcppGSL/inst/doc/RcppGSL-intro.pdf0000644000176200001440000031372414360114761016361 0ustar liggesusers%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 3351 /Filter /FlateDecode /N 66 /First 544 >> stream x[r8}߯d*ɭT5lGLhDG2~vDl)4Ah #(Hb9(mE4HʼnClK,&8!"[Xp*CRH%RDj 5QAy(h( K㸄39!AڑpAl$F5];ppM#"̉ PͅN'Xa}`ZC:m1 EmH@7-%e0L6H[:0 $s.Qg./-@e$s"]L8H8:MzPY Y0iJa–BHBaH ~j dFKb74DŽ o[Ҷ8ttgIWWBG~Măkz=1Xy聼ze^^DC/ɋ flpOsV.Z7GxEu5t999y$,(sхh9O|``!x [ 0BxSihܴaхyϓF4oJ`˱~-b%' ~1T{ ќS=/ɵLzux % իj.]^g/lzѵ7-wS0D`@`?q׏tOUuˊ@˻t;S)mC0Mq<FU͟bxo3S꬛8A- Uޢq 8" YFFq(#:>='5N0SӀhDtIPޞ~GC!F29d"`3A*L.7gdP84S7׉?{PêSW1R AˆoNǷ//2ϛVVkf;ӟ\hi0؎y;ڈt2 ;)ri9 r9;G6k5tCXz~`+0sn_UkaY#M0;T}<Okz> ^JG^+7w &*0" &l)i?d+L>O3 Nt}@>']B>ISikOj4O2_ ,H -ф& ߧɟ~ET)┬Ԟf:)IkTNAJDRl%X/n̛WI85mIٹ([neY6yFHμ9X\ ӪJ=q F  ,b R (`ZfݴNgCT.@ |g!-(Fdԑ1ua%`ZfHzAFҸh'Yc5B'YE'8M'>}*2FY0~YF? MPҢ]փ_&ruw2Pu İ>daZk6>:BXB-[lm9iԉW(ĺ+/JI%*Dߣ&u]K0VW6|c{u/7y-8#17~TiC2ֻ dF?[ SR$f:rnC?`!C@kNe9iyM[}20rON/,WRJ7Uu-3̑ աD :aŪJյ\7s<"qkfb|#0Ԧf&MV`WeWYEtۦyr2yoڲvP=)G׶*#1dAr[:eD*7ݴ 2%P~jixV61WI |] D3E˘'BJ kfL)0;cO-%% J#rˆz#fTi5mo{peFzK.fu4%+XnFi)Ճ<9 %=S`^fKXĺ覽@ر%wm̻ l|4cFy{{i%LwX\BX[mXE-^M hExc<ˠ}6YV#Ɛ~w0rB]M󩿈'X`{Z:@4WWi}8t@?]^]_קy afFrP,o.eL9Ol&[v#8 tlS>Hns6֪sZ ^0::;h8CoYmS[4~0a1 -JuD?O2f4Y"#SX9Nn.]U6~;YTmfķ*'kHۜh4 PE5pi$SP\Zexƥ D%s-vֽAÝ&AsZA>'Hkbt3A&Me&h"I|> uD||+Ns %Fȱn10{=|ٟ݁oͤ{U=^7tNj{ݧ}Owİ{z_we^WYܮ3ۆsjǛQQvRi;x_S kG!7lOhV P3a|凞EᴎYŗCפvq+n`2#_;@FB!_!*[:pϳt}b Ȇ Ov/vtF[V)XTW;ӏvUՏ^'-=h/g6gXyJUwU%#Ȫ~_9?]#]UCny!˃GfYtx+j|zE1K+^]O3vGʃh|m\,׽0C?. uAXҸ*kǦ0RtU}mm? }ztѯŶbXUH&(>4ă3e^qyG6'>H.[|}_K/"Bqendstream endobj 68 0 obj << /Subtype /XML /Type /Metadata /Length 1167 >> stream 2023-01-12T17:38:25-06:00 2023-01-12T17:38:25-06:00 TeX Untitled endstream endobj 69 0 obj << /Filter /FlateDecode /Length 6664 >> stream xڜ^f4Qeb3}L\{Zڇ @\|@0!K$h42ꯇ)O?թ3Z2_0Z)GsQ6mU/Y.͐x1 sjS-ȃ}ŋ;Y?xuQ6q/τ D܀f!ND; B7G5/ xD#Wg/~C:[T庫>=.fw)a#'<,nwR<;$t&D4/4}\t+[Q_Lg0vU6բXaȆ:͕].YXN2z5nf i\KK4'W1  [XY,ڶ Rc.@K.Xx?'9ぱ$3[2@oįd6ϐF?v>KAUvY4˙D+ضvBFV8K8Z+T8chSَkq?_0J]7Ū ?94A&91.vªEw1Ax"< zlEAǮÍF{&^&iϲԁ˂%yC *aU蔙=" ?iv &,7C"6QNrQp`ڮIWO)![']1TE5GЯbj7ۦ"SঽbBY7+9o +CەC8%x48Te ʩ߶eSQ6ep}Ln~yMU5{>q!m5zm[%7- -8XDȀq 4bm7K`W "E* h e~V{m/|w-)G\xkaf&8e9w2"0rlŢ\ͤ/s+>`{e}nR΢G3SZF#%IxK^. _4eGF^"+ےT&GEܰh6Z^v5Aqd.yv n[{=5#|dge%E(EX#82MS~:"-9XHPWxMxGuf‚ElaVT*D5 4MB b/ ǾZl6^bѳۂ9ּNΒT槌Ed+yWA` .]YSg,<|ER I@~^EX_2ȣe7,zmuIS~ 2΢ˢ+2uvz9+1+T:Hu,$Ф YurSJJ@ao6`!9 SԷ!NcX /k7\9O}>OG7f(Ppс=LP. UtGüρ D+3X@7;ɠI|js; N%P= 0SK+_<0`JYHIf~d _"_v3?Hyrw|, E`Nc2)ۡf.t$<$9U t0 .u>[nD.piϵ ( AW]8tV?%kM[ 71XӟJ'PX%=A/+bړP0~,P׆M>ͅ0íj⻌0?&$8͈b̜uAz}Rt*:{-#GXiOۣɉT8,|W dGK4g"qS"qK U2}6fqC[TK4A+~ Lh3 H,xV{Gq=@&Yy[&4c@cAFdq'N:Ŷ4.y2`O\VMF#f9BbrbI^rq-D{3 KGCt ƌjFޡ, ZS6UL"Q>v_s5h(`Vy#7-r<'ܧdr]yHy葫4%lS~ 9*H8[vx\ V٣ P<)B1jLEa;SbiB~+DU9; EЈm=f ,)Tclrrs,׺õAw <Fձ z QBǮ9}yv% tueuhZt"F6^KaH˃|9349rAȃ`-ߧV|xQω$-C #_g2AqhqA鐹59VU2<VңCuq+_Zop"rMD!"f1á3?y矜_|GB:𹤽2zjta}q11iG9Q,חLqw1Ww2@ys`/1`]Y]\QwY͹iqW E\Gk܍<\Bٽ써_"(w翃ӖWb{WU'/=AUc.16lvQ5QeIJ?daN @}% =t& Y-~nA-ЌpD8h{n~!Oi0[ ⓤ-{/zVq7V[: &xS"OxGotE\b!W s!*.kxwȳ '΅-4F1q1띴Iѽn0zxl0GݸbX*%]kRCNc!Q!#B|𥭷b$6:5& .%l9 LYIIGj/^ߖ늋h8Υ+Wk2YbȊ\.C+G*>Uuf7zT'n]MEz۪Xત#%e1F2sWtm4:օ5.#c&*{xnNl`lDI\/+ܛo p/DF)@K|f.~׸K 2 j-u KFq㔓8'@Zk?jGM|<#KnG( "]KPSs+endstream endobj 70 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1916 >> stream xUmPT*(x/6VP1H$LRQXD "(..,.D4"9aq5 m&2{vt}gyy5R(>+cRϝe&HhUo IC/Bo-ФLݜ&3.-VSө8* Hj6E-ޥޠVPRZNHyɿ(B;ƽ:2@L&U_0'Y/<#uko=‰AAJ 8X4LEKdp$c]F$h {?"o,} Bw4~qK1 [֌؄ts=OKi>&?E09 2r@^%E|~X`?z~,ߋdAέsRnW^<='t2yrl/ 2Ʌ6)N)HmPk冒KxIߢw|xh-'쇀? gpCYɡuq2.r#*#nap &}הU@ Ra6^`/6f Li0wjicP~zR>8- âۡQf I =qp{V> stream xW T׶di  'F!@)Ȭ2(Ƞ BP'K(-" ap" _D7qJ4Syߢyz{{>P(D2+L[" Ҡ;( AJ N*aR"SJƇ"x3} b TH@J-` `&mZvmymy-t nʅշХ5eٳ`eНQ˖D؆2MpUZΑǮ4RxRyk@Pa;,=``x\%1&+sC ԂF߄MܞUKOj MqrlJ"`f:M˭5LiZWj GӃYG)K,A&P}H<]!` ÍC/J=+ _V4>..ξ7ta:e4h;o(~@@3ݢN.X%[sdH4V2UUǏQXfgCKVG:IL?Vŭĭ{$[ d8`z K(b3KT<,ʥ$IB!X&v*ih dO?dU2i?#Ԣ"NbvG,420h5lMf{bYFGDlәЄ-[w$-Inb)@~Yk7߀ՂQ-,L,f9ʯUT49u '8%Tl3l8S K~ /8`xA>S%|*SB(4[{^CKݑ _B&ZyiUG &UER򃘏ā|{s{x+DaTh)OuSc$L;˜ڗzGGN6D^^+ɇR*9KSGjOcW`* {, !)c 'JJtِW6X&GGm SI ڤ~nbPU.tIq>项!HL:iU(9msV+nFBFk jWw5Q w?( (a? .W HDBZDc_l2!t5"ԛ鋉Xcc tvXA'z =_f~ťwEB_|xӁV-C!"AdWQ_7ل{y8L@d,)ڽ#ϵtۋz!I~E6!F0OLai{̶~rc #v%"MT! 11 4={f`b8M2טLߝ+n~o?D -s#1Wj[N'mVd&܆Xb^Ȃr@sI Bbjm1^Qrv>5%$zpcN qY)Q^XuewIM1l]_69j:d_j'35ޓ[OnME(,9:qm"_dv1A&Ft_&) LŁ!A> 9Ծ6ҧiYB<K,hpגI<ڣ *O}:x /$̢fY.kB096ǦӦbhgZ迗׷ުt'a ֱ cMīE5 ָWq黗otʠeN]I|IMFҒؙ*YaoU6+K3xsc옓19:h[b"+ xN;EzzEk 3=^EᱯEן@$i淼Ugڌ@kaO<iD xuv[JNOWR0/ɩA5l‹[xkP?~$m`Ua;"y`&@ J@*])y !=N];>lqc~%Ye- N <@pQVke5TN'g{l> stream xXw\T׶>p(3fQ`4 HNJtPi1(HATT (bbJ4ј{{ zrǸgվo}k$VJ"fcƹMlpHu$tHGQ2(>R⟅_ R-#o^%]h1S f$n=S熞J@7zӽҧw>kҷY^Y[q Y ?9K  Ppa <Iz3ycׂS(y[M!⢖*vYS3` .JFWyƫa -ԇ259r䯿D8psKP%߇qDnIq=BQɩ$.KT'ܭZ bu0rgVľBwS=c[s8Ć)g`&fu( !9vvHUB g d<Sy6%v`×$Z:$eE}xw7ٓdݷLJ :wO+$ꠤԉf]\Y}! td‡GE4&=r<61FExbUSIk #{| ue2TU %ʊ=?d6ےqXbwzxy{q`!/FXxqcuٕwfi>$W14i,qw.q7fB(s 2c, w:40Zvso)rx)>"Yg8N{ࡔ\/ s4v L TЮX)Z{tˣ *}z{gqvGUm<|8."Ŝ>! Zeol{@.S;~-{3ױb|'l;0,Fr߅IEȩ 69D\F*\ >X6+9buю3B9tewTͨW!!;HZrW Y0}ɮg@gu՛H `_X?Kإ]%Ʌ8Xv[mE@9 l$/!Xۈnl_&e^~dS0XS$vDSy;Yƺ%e3V~jZm-RO$vT%<TZ{Djw_q,#fxa4^=0E>`NLHD? A +txK!m1 |RXYcH#Z-xlͮHo적d*$ 9UgrGz&!]]{x7aM z7>\}q)/])Y֕B_^3=ً1aƗŝ>:[đ*S5h4;Yhz E EY!{[x3"#h*%!Ґ.W.@A@Z-U& l_D)f|HG Z7Yau_rkSK_<;|>Cim>C ~sn4s Y5G~2P)A'I!B3e`Z: ȝHFUjӄbz>ha^X~)!b%օBJ+V~ː gWU_v8xjBjbfg ڋRPS8T zIU'E E<bB:NC Qi=;= `a;p=3΍Z#!k./װ0)eUN'YL%2h} $H)xjl3^8}F& 5?Ah2hdd>PhifFt;0`o!:NۍDfIp ^\ʓw Jz1^xN|5܀ΜG믮a7/78@Ҿ4E'[SqfػKDqJk7ىdBɓ_]a6r?7(?NږC^0FK)_.n1۞9uEL{TRMS3^v WX6D֋Kmul}&}-CTОq-LBCRBM܎|C׻^_y <0Sac?uJpS{=swwe7݄r3Yz&) ݑȭڸkk8+ i'oyh w;cIC-]={N>aVb9&Iois+sz630ϞUȝ=VN`|m=2짌Zae&s K;hp_FqcZA =.|Ӧ@Xo%>ay@+DLCG"۵OSwG)Vav$> stream xuW \L?cs8% trKJIRIH*t;KoXVX.]l؄\F咦L=g3gΜg|2~}skp[LvU^W5iI3Oc!AEסGYRŵ[:ʡΜt J:u.;JZrkhۉiƣ.-1=a"#/\B7'^9l\ibI@ɍ]p/H'+V0 Fv|0ǥ L^ߜͱWGF-FRAF[@iH0CYi*S%kmy%Qhj\ߜY+6DبdX׾A0{hzkU|W ; ޹洼0H@!2YJViv]Hv iuIb`eR-baKp\.WGM~Mqyȥ Ln7< O%xN?wu޺{I5Λj G/5`9$ 4H þr|t{0al<3}&dD1̅6 ,~J;Wtn1 LWPՑ(-uu |!r|Tby™ڇ wˌGUS*E A%oM4ǖ3 +˖\KhG,x~CpqB^6ؠ OANhV Ka 'x THvVr@w& o[+jk~86s|B(>%g6ܐ%bWn-~!0 kސq'@4x\H?@- mPiOYM m`! 3$eN2a\j>ȤFTYXYǺ1Ӟ {Z ArdQ!-ԋBc{\ޕ|19J!{Hv_teЂkVeF##M^a7` Ҧ&0{篚~}k0N2B>8`GyM9Jz(*o-bJnˮ&|y2+#KZ9~"Ki k) I]?g+6\ "O_#t2:CwgКɫV|X3U7JN<,W~ͩ?y %ЋU;\+oDKᙿ>[3_bG,}BK *餅v-p]|9?* ᾬԿL f-^;?RE 8MO*DE;yHw吥5ge!es_]cZJ"7RCvîC L|5ay;b6@?|Uq[.XO{nPb>y@cMpD $jhЁ?1;g8':*0;a=ڱ>RXsI>)3pZS=c0\O[gj^kuZgk$#4W|gjQ5olՋ)FGؓgH0j ?yҕ^(-+Xs1ݵ;[9nڕKd˜+G\fp8 [aӁ\!ZTx厼aHaa#=M2`w+rqDxW8'nz"Ru0EES|_>*cnDаr'z~i;#{Up@%zb2qAB]<=dɍx _??@jɔ)AKZzCeC\΄[\EY {38ݗ먚-it1 X.o{v5ƒX+p7Ww쓋CwyZ0d#8v=W ,o!O\"WXeBV1|!28y`TOy@6$b<-&p%H1NgUZX0Ze>C K!i'RǢ0v\X?=hHiؒLkmx V4!RTE ֣ZT7IxSED9YkRy4Dq) i棩(hL6˹Dzᰢ++A#EEqeٙtu<)s+8>nOk*&.G'<~"Pdef.މPN̝uaľ,}$e `U )ZF%oI/v[UI{g 5PYN?o\"H9!4Nĉ6 bRQ~w`12K ?@G ӡk!0z k[`GG6}(aCenwKFp*]?k )✠TٍEyp`nGn/ׁFy /D(t2VzgT.t@INi9/!:$7N/6c)؁QR~],Sp] T&S.4~ *޼顿pv 8,J[g>`N=f v4Ib~O;MCIw~B;I7KK}"Ց~Qvb?~Umgqk+c}Oxy i%w.ɑH:wZ8zDF.$xvse|\W O l=)S9W],XeE/Ifm ,00SākMN!L:hWcB YKRE%*mT{[ ;zҲTk;88m la[<88bC )e UjjĕdUL΂1;(F{?{ܺ™7PJA :L!W6;a>O/)N@jcEQy{t]֓%yV5{$W[> stream x]UiTW,`趕Э1"b4KPd(@@TPZ "׭ "KUe .ƐDԉpx$|HμBdfGW}OX1d'b&'m ]?5N#MZ|>H)I0ɢ Rc7dkzl\|b&9%|m#"wvZؑa60ތ3~?2kyLƸ3'żϬe103RFLe&3oъ D&<74;gna>VƳ/E\8bމ˗ێxR@0 "(p4Y+zr2n-*z=|}|pz.'YE_U*R竅)e *XA A *e.8 S9'V52|x]}7#db!O W7߰;{TEI]?-,Īgpdobmװ؆θoA.236x\#=Ad g7(DYAACvlPŗ_ M/>ȁu.|+/Q{ޥ(C3vlXx(UQKJآ ObHԖfilh>٩.*ۭԕdͯ- Yڸlb;!2C8uwZ+XRv6:;?'/Kei0H-9˸PDg-}ߴ=rx*LxcL&+'t&݆naP߉}YcQX7,9B^;Y:+5zpZGvs'ruy:HWlP9U{B//(4iC{%/aQ mSq*z, X eշ@||tRTHU,dW)N<(_bbϑOGU1J^bgdBm<"ʡPPt{eÇ* %6Иڬ*q|Tq}'YKf{ddYԩ#> QјTr: \ 5zyHno삽7 ɛP1ҏ}JaFU5,'ܑҊڦh=q {!6B_4Wp)WSX^Vb(oȭ~inأO:Zּ9z:!n,z|zH盺4ޠpUE3#7:+?sխul$(Q/a;\^5>Bےzv ehbMȉwZWS Z}f'EvZ$2CU+|27- bWqFfgPFv{L Cfn ҋC:PˆkprAs %4TW񲿴wݼD~ݴFs'By;5UieE{`7eS @?D+ }}P>WDarxgiOZ(){hJ,t M1 e`q'uI U\nbNLz=Kmn %rcHK瀖0|vgwojHewUf٣XYYJJXMˉiѬNbehSO窗BKn4vTN$+|5du宦K?%c)(O$tY15ܶ%[%hT3O]ԌVrյ6VĻ?~y:ܤT}O JJ3|oSL`6x.:*JC87ZNb )ܘY-ZC3Q$7GeU(OVu)n2u"h:'<9rkH6Gd7+{ў HI0 U;QXՈ+5pD4&_)endstream endobj 75 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2181 >> stream xMUiTTG~m^u} Q:Qu#6 "KYJdPA MlAEfbFMLr:s)T3ɫ?ԹU_{}"`#vMرw*6B53~CYl(ƆM>4ٔ'F7gڭt[Bb{xĎ(h8d<OƋYe|_ƆcGf̸0Ǝ#lf(:c@\`QQ4:g58A|`Au֖-漹F%{@#U`x]Q4'xdJ!c) \?Y{(=gIړKYI_Vpas7` @j&Ӟ1B U, F( qX+:H&gYR;AR5ڃ뢿T8nn\Ej2KRr2'R< '5=l Kcc͜j5;v%'oΡu\&-k22o6f-\BІΜ/͸6jw ʼnx!({|xtTD9Y+G04!}|{`aXP*>֣[9aQDwĪT%{#fbJɺLK=vȻqY³98$im՝ΨWg92ۢ60U,XS^%hOށ xNƜFE0N9o{2$V91T]y!)3 }e< p8|B]rcY܎\Fs}%pl -s?e M5&/l_z"[wH"HZ]m,h~`D,cLKwsp^ܞY0c)bxfURNW #d O~NV’1N8Dv-Iu}]1 o7KU͝w`b%t!ԉ>tqp"ճWUWޤ#J4S9νpowַd< Z~)RBdA0Ѓye t"d677]" cN#^Ӭ[배 X>jΓ($`7mB sX=YW]UOhUSn>&Muv>g96l=c*XHc+?l aLp1.Z%YDl\+Xjs)eւ&@:}F$3Fv2[F\:L_b8A`<ޅՅI$eGmk_J@KLWUIi)Ѷ dWa`%~ʽb+XYPh"Lj?(*cJUԪd0dqR я`$3Z UBɻ"[* CcϐZJ39[#_#57W}K<^- n>v܌-MX2аEAr:i> ]M%6Z;;,˖Fb5irT 몯r]A: ~ 'bCc0iendstream endobj 76 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 739 >> stream x'CharterBT-Italicln|t  Otaegl.UBFHMU::Z ;Y'BkmɐUot{NmĮc~ktcv,$.vwullo(:\X7iSyMHJ໻XrpyfzE՘%dNWb_dueQn3 > stream xWy\WDBReI &QDQq(Q,- 7rAhE cT51Fm-d|w}y}Nnŭ{Pfc(D2a{XhYJ`H3L+YIY׋ͣ'PаH[TJuw_?ϝo qܷίo{ޣRtjA}@mP)WjZF-ܨJMj5ZMS(ʆS,5DMl);ʞz 5zDOQTdk13Y\G.]`f2c#>8a9RZio?{dҺojB&66'm~7?Aǰ.G7&E9⭾ ^j]-Q``gtN}f^?txEZe0U0ch'?@j R1 `='`f+< 4 Pw/__3>G 0Ss#4ltY> #HL~7-c/zOqdOΟyܳUJJN5"ձ ##f{cMq %tb g JGg[^4HnrӴjzZ2$|.A~ERa2 \)| zCLu]ˏvpA1mN*Pc`TfrnΧE!;G x{h [sAejBDx'ZJKӁAդDεM# !PLmڣ*5rV-҂^T13i|.GJ 4oʕuՠ:Tfmm,3hLXj.=̳ = g2;e%lG;ɦB zEHWy|PS쎢ewsruL\Xd QayVhҸ jҷXXDej^ JUWKNCf]C١\T2|utz~ ٔŗVtTsq9YpMn. cHb|W_vZý0DS$bH74 ']|Wv{`^ ̨ xv4aw0:P40m@"HU²!8ޅ"?焔y C H=/A{jn%NU=CIM*phų8qRR̜R1(Em\:1ErE쳻 ئ=|^vN6J GLb-lS>49cQ΋3hCDȤgagӱ1uM/a((7Bq<+O.+<{ӛsO3cJބi5\G[4Ah ZnZW;gJFExؽz~!Iϟ_V1#XYMxR<<{e&M? &t_iIAii(Ô=xw?*L4uj-.wj8| w^>L&rWcLxj.!GCݚb-kt GXb?|6o;rC  ROx-KNO/Sm zQWLXF;%:F&NI,@Ug$i2m{eINHF1Lr{7 N8ųZ4h[2; y=zl?^El'D <[ /LJ t6d`A^t!~tl閵J>7ر)('oo}>4"*nÍ`/~w װi$"+}-qRFzف@MZeq(U[ۧ=%bnt-_x{}6U{ 怪JűQ sffl1tH`.A(E :=fs:x^'?2KS332Q2vDVE57jz/◈w؊3mc/ُ_Xug?xʕr>f8Ipgd[t68U,]T28ȧ1E L Rir9? 72f'0x` *\|9{[ ޞ Y$%1+-zaַ0 &}#VlZ Ƕ:}kzm+!w9>a[Vuӆce* ]&[z6w{OrIxBGGA]XuDϽXµۗ|} Bd`/-`/;oő߰߃aGrsφ_B-HΉsbI*J)ĭf c)YiI}S3SQR k/5/$;/V%Je.C^S+Q2/)~H׆xDտUHĠu1"R29.IF(NUPU_TY-) Tdg)]K"/, 0YY5On~Nu^S)endstream endobj 78 0 obj << /Filter /FlateDecode /Length 162 >> stream x]O10 )$KY:q u4=M20gv׎]_:6&?G$ip,ice⨃M',+r*j͠745$jF?i vsmSWr4wO1RCN%9Sendstream endobj 79 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 179 >> stream xcd`ab`ddM,pI-Lu JM/I,,ILIB ?aaa]Q3 9"F{v&FF_|?zO1M4Yԝ|W]7wfհ5MQw:Vr\3y8yyt^>=endstream endobj 80 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1370 >> stream x- PSG#yoEMZŋVtѶVij(ZQD b(h%D.t<:^uP22ڇη;}P4M{G% ߆N6n2L2"g~1xF N2]) :-VьYǭw58sGjcgQ8j9DPTNͣϨʇZL$ ,IrQ]ȆV~/o@F9JtD8~ JcF8gg a`{d~gIhAdUㄿICֲJnig6ӎ~1M L$׳O</Ҭ߻0=Y~AwA;4J찠E:񒪿{={e @]\ȀrdVgc0ַDD$Eki_I8cJN 2= Љ#{p1 `Ɯ*l_WUC!U=jl+R\~(aۖ9ޑ-8}Π~)#y)VF)N4>ͪ?`%|(<c؂ "1Gإ+|W7+<#tAcnQvYMٺ'OK_u#ja mCC* ͞-UgH=gY%<:-i){e@n#M- ZdLv[E0L{y/20H)^y9.zTvCTv7HJlhR[xOٲ.5o /;12b1ۓkwƌZ^qY.,{aCx8MqH};F y~k4j @U{%/:p^Hܭx \pEq|x$4 gPq}Tn~SThh|Qkj\kJז}`tGGQ9ҹ7h:1Jw5r͇1 0WŗlqqW@bQ lD_cht98h@m4K'5'-vBvU*M\xF8[w~7 M> stream x\nq7! l`wۋ؀ָpg(ޙNHyļF&53Od%Y]]t4ÿb}u^|:QT[Oy=-RUO]d/:]uu^[$/ 2uJZ/JIT*qKmܤOuKȕzunT=85}?),qˤz^ҦYfUƷlrۮ?m,ۡRn6~1̗DA͢qכk7z*jc—JǏ-<:R:KKXI]!ɶL/Tvfinwj[/@l: Ag>ҌSD[X?1. \MǿU4ja\zN Wfse6ڥ88<Ð lzkvMh׷fܭ(P̌InZۺ "w[}{%m'ǥɴ0`/X{G[ZM,[hq}/_MNP@ 7}; j`o ̓Y7 ae ,u6X>Lk:|,ʤa04wE<ƒr`dL@xLGx|l,rBCfӚ~>0Jm1 dELst>(ddϙrRM$T 3'-~p03ӚQħ|xgXJa#u3螲-f6Ra2efPgPXJ$7 ЁEg4ˠH|.z.%UXFrRT"i<ө*JCFB?iCiD LU[^fj 4~~ġP$' ~*JXbyF4W$1;F*);XcOQ55ͱ :S`Zΐvj XQK6(Vɯ- >ЮtE [f/b i338 ;|avJM`~ M6jS"HA }_2RL5a!oaLqyVn>4L`A~hg PԊ ^힬y): " P/hdd̩}Leql:'I AZvi DwrT[^E%e؆O}Z;NDmmvu` _h`:YvԺz0oPhоI ҕ "!M,lKG~?p Ck@ p4lۛqj\f%O`p/W(O-"d0 AK6Zw% a]AJ:íYw~kEF+DQӔ md,L lꮆ#ˬ ,_x'~ {Ew1cC?Hi ֆ%[Y+G-#v{#} B W`iaU:-ؠ# ͑TH,;5X MMI8L`3;6 h $(cJ,%w)R[T?HYǽ=3.3?Fn? UTl{zPHfdPJg tB[f.9?:ؾ_E|vyhKdlؔ6vAx=Ãa<4*JQ`~>-)fJĴl^kqx" NI8 >8rt!~851է>e@NaF(8 ̸ -[d=>\o}f|:1}Piu'28ru a^lXl?6dINAǭR6wzcße*{D_?wm ϯsZ gFVd( NZ%zPﷀ<'?(?fW=)14":}p%O@}zA.eCCu3t | vˣsaD|T =:冾sﯾo6A¿kߎL_ 0i> 2Mfhs6uG߾erޟԂ}Q>l0vm-ծD_n~|/aQVՇUC;A'_1:NGˤ ̮<ٌooV.?z#^jղxJ8DFصr? 6%.S-^&<䟄 ]8/"__l-O_8[A-X2 w@wUנKhT `O2I5:ڰ`hc\=5`2z4rh* @L`@i l KL&BchM>gbpvWF\@'Xodg qृ;,lz$1/̘8ū_-2C~]Elp~=O~Ms-XE7k7jxbXyH3#Pϰ`$rHFZgF " [5,,3 Gǜqcv34z?np^'vbq׵~L9Xx٩dqwks4~@И=˃fD6PF:y+v_`7ׂ҄& #f'C>;st8zV*2Fmkhz f"#\ʼ-,[[]MfON 5it߾]t5- eѥOfؑպ^r1>؋Nsx[2/ E'j20aXeV94^$.Sˢ'E8h0lpl'o\1^Z#bٖ|J5Ku/c67TP@1x/AϏQ=qNy, (mFeьc(F?G66mņ.H;6NdqL-'T vO0yѕ%Ta읞46Bt[bb CӉ3o9$fQS.4 ]AU=Ųic0*q72K'P4@*W\ 4` h/F9yҁt4{'`W6Y zÁDGuד%Pn@UC!hSgUı|#Ңq-JuNB3QA\_`a2Cag-88s?L6 * (TD lԔ J 3 詎1yY> 4de}}pnRs ľ@KJ"0LOZ47$?6"0z*5$$_(Kb.PYڄtmW-8؎eIqҡ}1AZE1pC[tUǐ`m0Z*gCʄe j^+i[SF *jN(@]FꉲQOgÔ xC( ,ܕƚd'!5PㅆsyTͅLh ī2c\}k)^Cþ{Bːђh 7c=)(I @Tk;c8+(F/#8&^=ag_(ÐO|aP:9pۮ^-$ 2J;dJn" pܵ!! TB:YL1t/C8 I4m 42$n9+3g0(hl[}29*\Ö!dې|~"'p@s7#p <6zkxÈHlBd?EK*}B˄]-{5I(_tِHvbRra ݳ,n Sp D&n-AAAA? w5>fdf$"aÈ% 㩽g /;0ItsF yYc. 9(_NpIDxY-Pb;jE7B֑1d1 † ݖ#"ytNN.cۘhbx{v~A8#e4x;KXQiEw9@R =4/4mvѠ(c ,*3b+LR9{ Ѩ/Pkiqղf$1]dx3~BJl`\)lh (gX WQP֔N[p.Ԋ$:k.]PPߊBzqT $PEꂒAl)~$ލ{nmG{cͅ@fa5]?b;(CHAevX͹Pc!Gf6E.) RZ2L]3'j3n%= *Tpx鄌[ż mq7e#۱W*úƇ[7C50gO%[մ>ݎ3ǠbO&*arEý$C0nɍڬǣɱC:x jh탵,|-O?%qxͮ;QakWqQI.>.?Ͽ "DLsv{ۿ}fnx|-..<^@oIvo@ѵcP> stream x]ԽnQ7nc7.EI^`Y.q`HqV`|{Vw22t~M}8Xoy&]X>}\#nO֏{˱_ǩ/U۟Nm_m7;ϟnMZኸi 7 3f &c5 a4n˸k4#iS NǦA<2A쌧AqorV+c 1z 1kDc3 43L<\1"$2 (2hL"Ƞ1"$2 (rh\"ȡq"%r)h`%r)r˵28 th\"ȡq"%r)rh\"( @!HBBK .% &$ C !799799799799799S=}S}S}S}S}SHm!D!IHl X5Kf \ &p)`I`& \ RZJq)k[%o[EoZk[%o[EoZk[%o[EoZkɋ+OcOЯs>n>uyz #]endstream endobj 83 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6966 >> stream xYXT>QQ(5h-F,Kۥ-YzeEQQHbt%jL=r9!XRn+p9Sy{Ya6X[/]/Pq(;SqE;fw$b O?wיAlZ} QAkk%CulCwMxl%-1wާ'L\EX& %, ;b1L|Hl!GVb*N,'; b'I8,b 1H%s +b@|JX‘0'vb71фaD!&8}O0K " baJ|A %È%pb)aFl(D x1[^<*cKc&e% ׃ 8~p!GMM;NZk  oNq@\M qF\\Lsq 19@Cz84"W (f!,MV<73Ɋ&] ZYnCL:(([e2т/@dBcp/WFp.ĉYBF5E{ OSHAn, eP7?jg$*OHH4BL* cmTјUpII-hnMHnbDb@70@~74$w#&)dbtlTbp2][cb BGL0P)A{Z#@rKz).XgJJl"RP ?X)i*j h#WܬYT Bοcs5, S7f`JA=浑E #D/b28ԍS jg;Pp qSs[h0#_-p*3iA 5P{y7\A9&0_);p5'$C8śDo3W+Hm8H2223(Hƈh'ў !q!]W=qEApddd" cy[*4_߮H$~сYes*rnuYgW@F0;0 TR<3 H"#Dԧ<<YRdEBYS ڛ#Zk ?h@=d\ d$ڑEk-"#}0 1V"^(;}xLsW3rr.#kC{ nd()E;nީjo?B3"WÇ*YX-hն>R]6{@|M]Pc ˆ)p$X.4%?5 ZJ :cHpF"ԎT5PY 0rh$|ĕǢ]΃'۠1>oX l+KhSawf-|̎iuOM i2솃 5tqN**)JӪ$OW>CC$oZD)ֺmNk3`k54x3p$ehP89<S)՗t4jes]*^)'e'&?LRZU5rdV0Lkh;:d'[R W*9 [K=|F :r%+4v811Ӽbp߫O actkYh}l+DX3(/?t.lrT3UI'LFcDo|FCch V̲<MFp埮_<Yju)d\}7{=NtATZ})KLԟT*VѨJTm*?`n'+hpcō \D&hk|+ê+krZ7'H'@6 <,1%9DsT2U7l$`I 65-3 "-:" H,|G=|BNJ7*n>#5u;te5 >%2Ig! K8@̀`lި~e3I `xδRF? l= MwGPɌ3W$B#+ +| M4CxYN|LȜ,-pmnVa6VK dq꿅\b@ʳ#mpJ(/ҫJUW={Y櫆ͱAq%l:OwDTq$8G] n[ 6e"nRW XytہZo.^h?Y&{Gy(LywZV|ߢA ;_c :&w0(诚۲+;4p-7or[8)7>} zIFW whq;fGF7C,<GfG".M!8Gk1dBE @А!hJ4(ɔg!No UeGۭ2RQ"|y%w֦Pl:g'vlʮ/o$f$f2uJ)Gh"08Q aPQAG;K[A3>No 68K/ֽy@'Hbq9񸤟w1$JyN'G,ڪgfN}W\SJh wt/ KL=P/nldvp.+ n}S;\z@)ZljFP4NxLk;r>{nlj([Gp꣫F#֜zv|❵|P 2eyBRR f#VJ d,Ef%ʁ0D& ʈ*a> stream x]nP<#Rt7&VU0A,.8c}sY?<,۰q=Ͽm8õ?s6poImOߦ?> xߧG}?42:-}8xlWG\MeA4j>®ipo4S NA3M83؛3N981 &Dl$6oDgA ldIWDș9Q g4 LFAI(h1.f'pW.dv "N{u*Yj2d! 0CM TB] 4j#F!f@h"FB #@Ha$1)$F!Hf@)U` 2 -U]o9ɜh1d~J!h1dɄM(iT(Tl؂\I(X+  r%`A$X,ȕ`Q W, JE\I(Xr7|- .2k_nJ:\6[\O _-0endstream endobj 85 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6834 >> stream xyy\SQ*4Jl{jK]AQ@ְd!d#dJY,uWZEbk{L|~ ?_9s̼jpLSQO8=`p%ք1DžX @ޠ=%7oix@MEua;LYGyg#ʪt< (IA'Ŵ}$4l9|8*FP\*RR]8K}Gp|1bm=4ҦVo0hRZ_Tj^>v~W 4)e^~YNny=+J dD}83L"M|tkC}4U,ИIe %އ:I[:HGoz,1g;؊"3'VX:@JE%|&)yx1_~ ;% tFGl; n@mut:(D եMVS~ ˏ{oƘ+ڀr)\VskEhDƂރ Ny Z52JҀ hӶ{ "]2(O%S>U"uϘI5{ ;Ψk ~C Ec(2U._I(QIf !ĭ8 D IN?fưB84 1muX5YPslu]6\.>~݇\7LOTz~M쐵:ek69\+`qjRyJ$!*?j~uwGܾ$?nMj J &pjMה(5DeL R \U.c50SU<^mn՟Эz@AֻpP|< l#ũɲ48|`1Z5,E.Dҁȹ 9{@ſ,N!(*\hEʤzB &WBHpUA ̧_}&Z.0Thr::,&<ۊOTugVPE]Nl;}7R } PW)s) }=dkL ,_Hªqܠ;h][PWnW`TnRͯ5z- ۅw+:Qk*GeW};Cv_8( =}-}A3h ']m,7}BpB,y@9-I('Q%$%N6`odBB'%3ph6HH";ƘwM&FĘcXw2hȣ /uc#nv 8' c/̖H ceې#N F^+TВ\ +n-E^UE43u \'76'9%=5@Ff퉛@Uh-hX6[T5I <տZW큃YbOIhfXgM`ƒ&b\;.mLv >u ׷oW}-TBżCly$0HZ˟Cl E;5i%okek+|ԕmohƪĆsw'8^әdT[MAH?+W[c&W>(+H;C=m'*֠2FpSy,aNVIލ?lӞN[u}YLZKz %:N+ jk}mv|U28C[>'Ol8O#g9+4O^zoZw,oNk:ZR!dzNOCKbRR L6SW>KAu`'SŘdMʦX*ylBlܮSnmcxSX+h0L2dNW?_q#:zjd}}YϦ}.{Hkit6g90:euoA1wvnN̕_pDQ@k n~ég:H*P1D+[z]ٽgt/XT29SѪ,@bX:؏ʱOi.6~q=pko4C"LcJpg $<ȀzBaN}<]jgG~|0a2 ʻVOw1U`þL襥UC6QUQ=/C'aеV¡,(虅(Q+׫ ?w!-t؄3.&.RW{η %Ai<'p 4B Vpr19l̩)bn,>Cwӧ@>O=$]!z1F vZm=aL8&go*̀tftOi:i2lËf 1m[];7^(()EJYNab=x)&L?QG; W]hD[7&l /<8;MҨT/X;ӏˍ^s?/?ZOa bL\wz㔫UtF(ZP6 0] $;+z_c`c.>7E|s *r V鬼T}JI͢q`u& ޿V/܇`T\-XH`k ,__͑ǧd vq~_{?k؟\ ,a?9H?={8·BA! %N;1\?t\zJ\WZæb!뾽7f}-OQ)Tq:^q~1敜RX% cGs]UC _}(0}pM)+՛R4$l^2"$R ұ,gR&'/y=Tz@5v^EM՞{v~ Ykpl7}[j> r%bE:1%щ{6k(빅<$NFK7bޗj:m | -O0 >{`,ɥZz#@c( .̗;ĕ6bc#4CYm)$1{-*H5&D5kčm֣wH~g` \ r>twRZ&/} cCwI!̕&&LeJi׻M2;vv P}[NY2e9*ÝR$^dc"ݡ B5lo(jŦL!dPS[" H)5PKeCGs6,]OEQ4RΏ($!p1g֢l fE3_q5ެ|otҞm|:'8XMNv[nqspєDT\&K̓ZҺ ؁8{$&]8Yh U*gcoC7|\jPj ~l\K%(_C:,˫rh3\<ȬV74썮w>܆2/m^+nU4`⢍Sy3ԼIGggq-#7~W޿?لr^y:u{???ew?# 0D@KM6̀]>~E1U+Xxl YB3Rdz<3Spfݰkԍj|海^F DIpdwWKe= 0uP;KeUdgχ@7wަ#mp8Lp]?x]opm@,`;8#/실BGqR(O-*=@*R\&dv8(g"~,^yEmiL\}qWq M m.38#`:GGwqZr3&gUnk=LpjIt/}?oOJHP4D";J\_ù^Χ-{R`5&ȔtR ȧªV8c88=¯8++ט.:'SVnLJQ4'Vj@vM[PRKi&**o ^OiSYQ Lٕ@(qTT*F7(6W$h\6bp_N.^mcZjf\zckNpg0n,w݂eTI@P:}]xq}-RZxupE+6_R&[tn9ӳE@uh -* %˪NS0 FKƆVDl0oMeQZgG\wX=+F#WL3 4 L# EBUg0߬GQj PpUւR#hu# E2b({RkEV`\B #{}$.|8 jHuZM1%Zl54\؟aQy6|uP ; hC§zy> stream x]1n@E{N X%kq(JrX€0.r)Rf)Η8yL3y?ݒn})o0f} q}xm86Ϝrߚk*>ۓ6.&Sv N}oY?6WɘpfrgL81ұ2X9cck uGJ~UjL8`tvzoL8hTUj՜}V %"L ''.Bq֎b PVX@\(/./GcGGvvGGp» O;)+JyuyE}RA]AQ_YQPYos |Q| qZr|݆1m<>#/endstream endobj 87 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3424 >> stream xW PTWl/J4r1חdQfԌ2& wD44t74ݬ-ڧ١١i\Xt\&.>/Ib1OUӍHU=s9ǁpv$^ cDfRA۳?7''VV""ć:cbN,&‹XJNp&b!Ηp& 9F8>usezgdLC0LUz^:/a07GP^{t-^H|+!KkUdA5̠Tdc Sr\O*"QmG_7X|9wI4()X?>0:OcQ\@)7{\I6[ Y[aՉ?"hwtzJwW@`/_z?8[R Ø?7WNyО|-آ5EFe%dzm\@b=Z @bz%m|@y݀?.6,YѶY=MΟ0~.=v%[p{dK!weZsFۙ ehvII%)CFm;ID+8XIl%LԩB{gD)ETmvrZ<|\€gȣ-|3Bm.KA@׵q8bcl&WS  P/WA7gXنȽ5)l~kAPQZ[%P$Fw.ei[W[,&+Uk=H,Q"mp{ɜB>@m [nqs/Z42Ǟm; &m(Mwr{-E(O[ZڸUU6~?hRm#[+䦜pvA\jC?MTm`*q8}lvDc)vJ'W܈}{jl^r33cJe"x4ij E[Ԓ@P +&n[Y:B^٬mZ:A6u68i;?;b%i,r&Se6L ViQ^9 d' 3\dkdJ*I+iظ,hLV>Nk{o:u:/IϞ~n7`JUZaPp3Z~"vUWc_I zK%(eіB4? xS*}%&}JϤ8!,s{`?%]w @O1vܫdv1AC]M݌Yu s'ޑ1kwZ܏?y-"r /[\s4!upzVN Pz)b)J+)-NkiȳOC/} WCDV5O>L.OS,e r)H33Z]tkf27q?o[iڲ ;߆4|Fecp+>Ey }q{@~aQ2=7rυEAWq 1{ A*us4VW7NCs}%c-R1Xy]*鬈$g0&w\.E_#KoTl@ =7js@p赩o|'0MI`qE/j[*IA jdG+r[> \_{ 'w0 ΧQvZBS(QmشχEo+}4T%b?Oq!L6$L^9[͖e`0$&̓0hҽfTԽ֛b0x?7DE'+T ⚔,z~~mӏ0%O3+φJa*Vik:Mo6,NT_RԞTsW]? {0:k}1'N;eFpOL]I7o2vֺjpPS~3b>2}dOm~9 \m$8Pۗ+ YKq&S͏!)ΖOEy,-'Ʈvp)͆KC}ya#2Gl0}90tlFН܄Kb('5M &@]~C3az6^!{lyipКS^}\ge9,(^=Ճ,q/@wu_易*زl}61cvs5LOrGBBr8#)ßܺSw/pUt2H1Y&&g>FGN^}ڸNRΖ%k@F`rMVD/fq]h]9e_E}Y*b#fmYr/-@cZZk챤 Y2wF Lm/HϺZEqs!Kkݨ2 4߄]VY.bRR ]WKc6[V/ ;[:RMx DJl6r% xPe8>U:c74$PQ쭙{3lxyvk,p>LCn ɦMVV>i:XxJܒo0ʻ=6 ^N;XL3!⧸ZO<nyʑO ^KӃϾfr1mͽ hePd(O)TH&>|GH֋d\yEy5hmC>E3#; OcWˇf!͚hVF@~qf*JFO<g"J5&Mtaƚ\w3F #ac+ w^6sk Z †KYz"()lwk+z=b߁}L΃,ؙ'oN^&d^?̕]>k YNpwdw eq}],:|<ވ=M2,Gwq}ih͊gdi 3rR-mC-4^p%>Syf苀Pʔ,YjZ fs4A-I_ ,+k@=:-  EϾlH-Wq(;WE=f3pLOZYH\<6Lg(o*psn?endstream endobj 88 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 175 >> stream xcd`ab`ddM,pI-Lu JM/I, 154wisk7s7KBw_`&m}fFF _A|?sO;qOUW $%;ߏe ?Sl|r\3y8yyyq=endstream endobj 89 0 obj << /Filter /FlateDecode /Length 5432 >> stream xzw{ဒ bFN [\\%,O11ɟL%t]c", x_NZaMqo.BIe1b;{4墜ux&h[31:UFwpC3P>#6AMewc 1B''(c2)>ռ0>B$%%1V!fg Lhnv˙{gLU/%`C(uQ &JˬSּ ALq&Aƌh*.F?h?<փV) ^-"" _T0% H}$?Y;A( qf`zpiyJlȖaGՙ`%EeӞ/"D(P-{x2{ bB{$Rbjʿ;tO>S/N;u Ǚ'U7`wN0U9 & &Tg2̫_`0}gXb-{% @؎b,j+ʹOwA }FSD3w> qu1ө'An@8El }ĺ+^姴'\ROɈd<7p8PY Q桜:oZ[_Gk֍#;Upce/y5 nd, HrW>uS̫A74oiBSPnn$ @:;7"7r#[}N(p}tb.c"d1:Y _{0p~p+1I)(a ʆ':alx-!?vRR;$&d D̤V# &EY̋ bn/m9u_<@1ERC[gʎR%CJק#Ъ>QNIU}:v'_vXT~0%iô;WCbmWkoS7AyR9J@H$j  :y|z+hMIN70ɻkA0G{8*0Pw?V"k{<% r}r=;Vc&|-;3+;x8Xm9f[rS,gUT<&KC ~s0@`$sLGF%Ţ\޽ UPk KͺXgP8)o”|e]4jٔ7|Y-!g>RC$-b-1g.+RCVJ2*)cѡ(xP@{!+mF4|],VXJ )^̿zۃYh\YԆذWCQT*3r.u!B`70t:+|A[M Mg1A;JYk J9 ò:e"̖lmO djlE Bش@lִt\ţ+FWK~a/XrSLE1\>i`b:|{Fޫ{彴4DE{p+5\=p'-9@SCryBaB% v,eƈr9^%uL}<]M=ҏ*/cpgO2l3 CC˘S=Zƴ"%r=^WO~W'Yd{odI`k8/Qnn#/=rU(8vu~!_ͳ[w(DFbKo;S EYJO HCS"iv?1sd0YfGqLE ']ҟFx܎.a B~]ƭ~eԘa]Ftڭâ>IMM޶PIw:xl"N\p 7onpv~O4CxzX;pdZcv+K΋2JSaL* w`oB la1(șOD S$FJ (gIk̗rn'`kF}{nƴRnFIl4_]7JFT2+Vٵrs 2_>b֡).ѿC=IɃ:qBvZ&-\2Jo]T)W[f AfO14{ބ`>1!`>]aPMOہ Nt3pNp`el^-7c*&je2{872VXrZ7 TY~ye9oy^1HmUw۔?Hu暤ʍH2iM n6xM.e~ /| oPBbH|<)JV{02?P4@Ӗ1_K@6T  OĶ'  ?Ƭ&U.cr&qϴnekoT!l>Sȷ ;N֢@jrNœ|ZI8@i-( c2WA6mz/m⚹-zBcbeŴ^O{8&4ꧨ5y%pkcHt{ug5)׶[]FS#FcC6 )SLBacr8K?1ww,Q0`)̮l1ͺWv *# [0<;f+@8&|Z-V`n:#x#h!Qoyw߀)嶗>/OBrø d<@-VEGX+ 0&nBY }]=w5]f4EK[ tL܎ˤY2;Pj٢b:l WOkVM;3a^ٍs0x8V2Mp5./^ 4̜pd|؛bۊvD`AXˏj&ת9f&-Lr'pLLĈ[AqĶn0Х8 hNq8hbW]|O]^6\dӛ\k'u>cGپW,gc>x@u|a]^TvT_LcɢC<*Ɓ~qDž@u&@iO,#3Q T2e[ ,d^[wͲ}lW ["LJtW$Jw~^/@ɐL rhp#8ep+N4,ߌmS6z~Xnх+2#Q!<2lP/{UJ9s"0Ms>c埻kvQ}X6 ySt*7w a]bpÕ!)$H.[nuR^PO؃bZW{p^mi퇣1èDU:MfJ_‹^^F60Ơ{ ,pf[`EyMiןYzSb0]?|J*7FncνD$D .g[ !1BAsIŬX_"\LS1ϼ+N`"gk0S|O:us*{bOrɱ,S1&4{GP{Rm 556/~E;%k>-킰G.#=/ :h{wtLaݫ5ex%CdCۡM]zC96g]Y4id^6kOiKj-u8ώ_4a|ɛkA]}Pޮ~b|tR =VH%K%NJLJ^Ă{ޜ̹X473#HڇLGambK͞?E+AgԱǩt,Iu,F|\xg{X=2î ?xL Uw<`'/'m:|w&ќ]ݷǴw!1G2%g90l~?P#<u݇{ ?wcndcY/YaJb{ޏQɟ˻%c K ?Bxq!i-2vbrmqS_g 5o! 8Ya_4!gHN+ݡ/5%endstream endobj 90 0 obj << /Filter /FlateDecode /Length 6395 >> stream x=koFߍBX~w{{dvf `cs#R~^~-KJ6X(_ENM^U3!y@ ^\(*7f 9XTΊ(. 3糿[4{ ~W&E. yn4S|p_̐_ Ÿ%LWqNXAhؚo ;&L fNMრ!X ?ghdc( @Qk#g?ξ}[ u̙d12ע"ITM? y<8Xo_B0g9&^B+1 PP_q s|YU:~62s0y61\T˯#WCe'G8,6L7EDQ  ROX+ $L9V~%0vgr^lZM狧ϋv>-zTN&OvvHVU AOB y [B$D gM+I` 3ITԲFR憒h<$IBo!"{岛qgʹ)@tg W$Wf-<`ŘË$3"LRc̷xgqx as^ToGwwFhY z~x1 &N=}V+A 3b^n;cT_X1ְ x4zwL>Wv,eue[vFsʹZ8﾿t`r Y,Ud:^3ؖ_=x8RP߉|h3|Dj׳)0sܠ:2tbzi]&1̱ ]ԍ8_3ߟue]`up(;P]非xYΘsz7qs'L}q^ eMxW" LQ$^Qj6n>ͦCLnx o'߃QI\0phYss߼ NKU_  . nx8|2)W.~L<&k/VF V+%XSZ!BDQd U"e"즽=Vb/C4FS|Z/gs 7|!VR0sĕ԰eq~(B+ K-հ̜4 $&čȕ=YM]N.$BSTXoDjc1JtTȜD4`ܑr01Pճ<֏-h bp:)0}cJI2.aقBct~&OLT1Xd>K~ExjjPYtW5~@!Y5|MO`0E?qNhA#5P.W!5uQHļb(0NFwi8%LВ Ȁr'j'";H_<\T97# Ml 4NHfvZ |АfXVN9>QhY]Zyюm@f *'I F`[Gh>ΑnjY BXZl3|,AP"x!nkaiI݅3+8usdaY]hڋW?'$g~QBS M pPY?R[8P+v탊t`c/LaژN3D涚Mʶ qX!*4Y{4m9kSsm;{W|3@䌃NBE 6kb"_vm*wci9T a1Tf=u9%/wz*%Y[>D $pcr:%Q/Sj4d2N21Z<_]Wu?|Lm8L,-a\7(E<>4\^ԁ5īlvK҄.tKcL iڇP $!`K'zЫ̕lv}#  +xNaj*7 ģqo&~v`E訍kbNbaTK$C_wV ]K*pC rXj,8Š*.b[PC#xܳuhÄ\ڧfZ?O?lE=c[6^5,6OLhbZvyuy #}2[3,f>I7&j?FTQ䊪t.!rkˎRي%RleJ% HL2p{"Wٸn&SOZ (E&+CtȨ[F{1gE Y\ݘ<,B%#y*a+fEѶƮ+)7Mw>q{4ޕmzU cl:/]g[ȥ&M34K[gPQ\}Ȩ3 TFZ=lzF ?l~W-HŲVYtO]|1u̵us=U$yX>۝θa\ eOF_>i6CbwYS`}H2 Vf9$]jQE8H)V}ƿՒ)S;3,V've$dp[-v4]eTtUT,0_N] $RxgWeEh[3 D1a&l 8M"AA5h5/v48ij#؄;:(㰻dȆHOA BU&U=+?UR_9TF3dr8 /w3(7EHȸފ0f.g` Ɠq+m?npGb6b(;*h&yCgFܶ>d։$+{w$hzlCwoGߗMk{p wH\;sٟ̚./EBh]^ 6bc  Omy_ϗv J#6P_O?}mtH#8Šzj*Ӭf dQkmymxލsdR\-VxEx7(GzDdfܸ0Vvٓ? |'km| ao=Za Xla:",a?J7u&rIعpBAvQ =(Uzq[\U$CvoL@[xUpTק<>_S5| ^~Sؚ 5ɴP=-wє'[./7Lqw!þ!b೴#[‚nНM?~w=֣ۭhKYB~ \3k`+< Bjɵº`]hg0ۆM< u=,ʻ;a'fL8iY^ %IHr 2=8Nul  DL\ebN7Zv TZxK lG'8tqja{oWy%L.y7o$ rn\(軠#|eeR-z=Ê%.H;hHE:1lkMҽ-~>dGB^gzRc_l㰺kVkN;έgE7n}ȋa@7WMkDVa~ϟ&wwk75v5I8w-E = pm>'lOoprp45Bb s&b|5>GFgPoqG#CHjB<,jr7A2AaM9j 3~p<ӵ7iILoݝ5ޣDSPb݀ *VN-u6ޥ3%Y[?>r7s.>}KE\B{z(q %IgL#M? =TxH^%*ħG>g#Pc'!9Nk]ؾ-%>IG[~{R^4b2W܁BU5k-*#R/ֳ3QlJSܹ|tLXŊ0DqpBYw+~#<ȍιb{[ ĺP$ILy8Qr B,]U- "G LX/ƿvbq'vp ܞ'IVz3\(-)|:~vXFtIN.8F;bXC9:c<ϓ0n{0*tla40dTJ`f]"N h[U w͛ႦF^f_Otx6c,vg\n4լCW5;|ڂK QH F*7guletV۲?Q(Gf5(a"8n翩v8c2!B\nXѩ8[=f#A[O{!ޱ 7[>U<\PLd@ۗL ݳj+}^#ss HuBm ,$XN$!LZ1ĊMҮ?OsL71ʸ C:eaU̵Y]4iЇӦT6v75qm3xmKt9yDȦѭRM bυ۰_|6vS+>v-+- h3`o68Y2Q<;Ҽ1+$CWxQh$#)8k9(;W˖ >0XBrCNLcq "Ag&:yDbm!遑Sh*v7?Ӡ"guq]g—"լ_^ڮh'wPGq!B$OUybT|4@<֙P׈z Mcx8cDaz[/Soz8wqZmGպq \GU{;i"l`T!cL&l\xHgdwMk Ͼ9uC.n0\ay~˼O+WSujo ]apF6VnWxPuhp7bqw9CbHKMNUk{d]ST e& nl$?d:Ȭ=k0V }=i lHҗsې88j zei.L 61wH-vֺ3ҶFKK 'e/+욷 > ay?ՍV\b~_l1AJz0AjN=].fi b>6@A']E9Ճqhtuɑb!جjj܋)SHX]gv*v̟X7>һߑZ؆.Xb㓳m{\~=x3"bx>2bn;7ѹ-s֯:(Coj/Ѱ-ѥd*-wn:sy~K5U?fendstream endobj 91 0 obj << /Filter /FlateDecode /Length 5655 >> stream x][sGv#k/Gj7uRZbָR9/=H҃f}9};>e)e?Y|F OsM]dOyJH1.SBG.E*Ҵ,NB˓Np,G:I TfNbdDHYFTdt%\kl6?䫳(!P1}黉6JG*J2H)gw9Rs i&z8 }wuq¾u&OAD Qhuh}Z_WG*jM]h]mh"9Gh垒E&#>zCFpTN0p)'Aߚn;.)?.\R e4I.}ˡ exUiƳ},$Dj$dJFXgiIxC$ɢtF@Mǧ4Y7մXMJw1L.˕UЉJչRR9ԽfQ5߭JEBNL=|]S)`BR TR"|,`4 p}TgDKpˆ Ƣ#VHW#gio!fB3h"肽{Mz2'ǡSwu2򉨿d\ջD9.`z2wZYkZ؋Dk~T8A]sUorK@':wSBpwXr+Yn-mfn9Onz@9ϳqU.슀GYrs'FnuSDfd/*? V3ϥnݯ0-Ժnzwm i70)E=2^͍@t:r7y}wXٻ_]V ȇAZ $;wJ 08u|1վKUE8b]Q`PG`Т-K!hE;I9<~73 fx1doǡ26W I*|'qj0LBőelLm%Ž/liyT؆ [ `w9LHB ֏~YSј8r8JSJe!O%HdWۭ)]9IpۜZ%s֢܎~y?E s7˥4ǜ3rPay+++=J%wd ;dAɼh0jZH\K b+'@ ވy+Qüo d*X0͒w>DZc0/QΑ!Km!Ơ?oq2sSy  2 yua׻W%X?XG\ @0m*[Q *~1>1-#t?Fm-.vW/_[ce>1I^tMZt^nhy.esA!fI*=f*(!uf\lM,Z z$31X..58U=׵!|zl11 t@ ~N U-=& 0 #,뫘7e&/ t~ Z"z0fW]CiUy^= q6l3a{UT|WGR| ?t'ޖ~wd"ݚ C'3yHoʺF8WE1 e78kd T&oW#_ )On>.7 3H# c&Q|?~o> uh'Ȣ#_>nU\zMt1k2O~$!N+ 7%$fQ! Ժ OQ8CpXHog Ά\Nz2(]]EKŀKy}E\]LW JI *oJiN\ g<.eAtCK0թ!Z~Qt{7;+hK`ZI" "O~,eR|$<)? eTMPCxSu;t,*j )77pέ$ }׈Z#jWT6o?S&hzI6smS)æh*2'1WԞڬmYĤT8a ,]o7!}NLn N0TJK05nMŒHM-Er 2~cY(|sfQ;3 Am"dɦNÁ P]퇇/e =C:9V-j Ͷkd׸Ig5!x!Z@ &}pў˜moafLOھ s0vb[->.]p&w{7Lw[9awK;ޡ8сK`^<6 (?TY1 ʥпÛ;j c6k2.pH`X]WFIW+#NVA||ۋ!}xv@O{ u I1ćO {֫\(+%QZ4ȫphLxM瞧}!y 'CXљq :4 'YXKra  5҈aQdQ43`rȩV;hxO. fŕ}3 \M?_oxKF$ܤc$p@B&[tO2,kІʹTY͈e돵 SQL%zǷM|:Id)Y8444>ݤ*W;k(9U4)kd2 *ńW; R EbYEud}E;00nz֦Hb[ K^ۚxUXYQL0`e2ݗѴk߱nzƨp0Jc6L/yWMj+Ml`j1 C6[}S*M?k+Qjr/EQ3;c.óYTҥU2RVun&Gesx؀||E1 ~ [N ^CVxPpCͮ0G;CtsO`+?Xm0^GcT^&e0zQ @?f3<¸ ,i}*/js]XAiISU$Lpy+ BYu@E4I=V]zT>WJ!%\0AYFi!EPpLTk)ʜP#qv6Zc$&;r>> stream x=ksFUd]L<.+q|nI)Dbdв*ソq4H&R& ttO{$$?\5'bN_g BT:y oMRSi4<[GY5?RE0=Z;u؟F)[ZыzOU99-A r3+b͖Ջj]~۵*q:\U\3Q3Ukp;CN'p@J7G'"uDp  U8<ʫڼYlw@S؍n⢺ %yN|`v#װ9dlj`p-R RыeY.oꁙg'>Ne:)b$a@YcJ&u>פB%ֿs 719x@2SR /Jg+&`4aESc*U$Oqʔݬ?ɳlZ=~7ŪRM$@\ĩHRDY$Z$S]60-\2lAO| T'/MnDWM9pi.4zQOdWE^_-5 ,?yC`bUy~!;9U2j̔8ɧo:G#KM gCѪ^^٢yc/""2wc>g?=>x}Ţ_ @ FXɋ7dMj~U\UjI`T!©ݵk1(h,~OI+D 'S v>5Hk i[wb? Li6yΓ$ QB@3*.$|8߾<^dWSd@s{D@VG:R)E9ʞ݂ Kle'ӡFY^;qm54}")G|çNY&UnG9ɎPP`ױH0Tjͷ?|1P,{V̹ `sO3?I?3HEecdh'=ŪM=6Swt2;XR[SJE"Y(/|u﹁Xzcl>~OgQ%V vDOfTy\SkEiYܰ`Xv$t̏Y_6mѮʬγ6:e%8w,O)8wz[(kOOCPHYO<x'׼78 ÏzaqC%| ,)/q֍o%D9;ڔmP6;ET}d3J ub.Pg(ȜG{/o}ˢr 5gQ%q8>>7~#b ߹(ÿN1.|f{EVݺ7-ڽ.XX9oOTFM(̌fEtn XpO}dNoF昦b&q71*Y7qZ/0P`ыKG\18~ss!Yy71!坼y)pR5+%]C{RiN%QTwTG|U.o1ya/ _ԊEpZn(fT",gf/鉤&Aq<jl7 e턈}Pнd,,bvfn丹ZgSpUAnTɘ)5\j1{SހHgΧr$P P:s઼ 2} 5)50}F`%F͉&o h$|T,84=yQ *GKHG%| g- -qЁC <im+є;= %P"F 8Ep"kRD6Cug ~[7Oِ1en: R0Y[,حPLD}Q1O'G4&1AhmKc$@Q / BZo0& U1a n O#W=clJ Rݫw朐o6Fd sYA}fN l&b0qY Dab#U g/R v#f-[vPX9lW}Y=&-;ԛ(M{[Ts ;MᩃECAg##˝HMTrఎf{xtS^Y #QIn$ FCro! KnxT }ɽc9~XHt?ˢ\&9x9jTX:G7{jR ^GfjtR/.ˆb>Q3?vE~Hu5{ Qh1t)~"I`_1(?,M~~t`ñ c\E{>A^3NH!͟_3՟{! D)8,E)b(8>GU щ'U pH @dX сPabzE(Jwh\* Grm sM.a|6FSbU$(҄wͻ a=hM#x2_4a-mcע| mBz,F;3sV[l[/Z߂c| ?t9 Iyq%{?~:h3ja'=+΋v:f߇g{*)0^x1_VM@+XYJ4 ˜j!ُʼn%ȅ !̅ '= { M|rr}>8:Z0TDНHFFt˝naB!S:jI5;T!Pxh &d#Q{%@;,I':=)$@}HϔcpGs!'2>L;3"CPL9=plϔc.K#9&\Δ^'Cԡ=SX*9q|ϔ+LN#1@jfA x|}3`ZY;s,dCQaBD]lQn0$hNLH&Lx/N YҚXSR2D*pܺp#Z X) dAh]D,nX)8G}6'|&օ`!4_7DqU~"k{k֫a~AzUY+X IyUP-lj$Y;¶?4[!0Js{cy۷iA<YU'܊֦YDfr1ovK1:ݡ#6!xN1*6 O{S>Չi-0>%L_r@e)@xUSއx 棇^Q0k"l8z0eq6|q^׫e>u00.i~\/Ӫ}?.Et)tjB`8i_N\4>TT, <N5N{7SP>NERp]їnaq8:siא8wUK?2f1cMf]Dx?RMajVseѿ2MP]b8 Y8΢~Ы\ͨ/4-dv-i̥^u߭뢜Ob? YgC /hn‹`t.":,q4IPz6u5pܘ=20ydizR߅-SwBi9h"y֍뺕暟K0&\Rp%3p {]h%BSy݅mC&#«eԧc*Mg=C"7xXGHER'm';2}PcI0c%D2%z%ԉIˤ4fUMosMo,F[oE"ln-}ͧnFζ e:];#0NEE[Q/mn{Sf, @7WI ~x<3h^ EtSgU1[JI6/XGȇ`s"{R֭羀D?[x,5|zFsל1sF8lwsQs3X 9} .^S=5[]L-cQYmo%X]o{moyGU6e}mҜ!r3#s\mg$Ce¾, #0>܋c#pyJ+~o'vb?s{vQa@ٝj ¶wg5$l[<%<_>+Z7#Uax"x3t@A+> stream x\nF! aݫdL"؞d)nJjl/DbP5k&yp x e4{?hA%Uo;pQm*XY: ,P0r"!PAܧ9rT|/1jU9 ~.LgjdhG4\Í2p#'9uO R \d{dc|UHJPpYHY ʢ~_<2J )5 P༽?2mD{t4`nz4xHxB 3oIHQ;-pc9hpr F+A琕gHB+ 4mG*]CmCI :nW2+Vg{ М|D뫮mQC~'Sn0S19WwS뛶*j4n]A\ܡxzQPG4m݆4#;08#OAI;F ųmPd_ɏ\*9b+2iWiϻj_@ N0įSE'zc5y[>F:[ʑaA~sh#ko\w2Xߪ^_͗=D@dU6]Zx߶DPN+.A&.t| %y!7ՋJϲr }:nal7Bh{UOW<ĄļY>I_/)dI.M̡mfP4oF/z.;4yp\Lt^$˔هW_䎞2|[(j9쓽ɡD {A^F|H:| )2Ac}|A@Og_,j5ʽ:-:{+Qׄ(W^Z! 6 A^k9Fo] Pa'tj X{Z+eRj{JPvQAcG .U@ňMR7׾erM= F|C=y,xN06p8k֫U;ctA3]rli*ʫ@wU]ȳ:KEU C֧!3aXf:T tD\0}xC!,cz:XМ`Kە@1SݾWP-ndiLZ `Z) 0EEXP 0.(=Ǎ;ʏO9RhQ4#$ɾv~qLN!5!UCP_I `*G.`N# 2j E2Au][fi>IU^61~=e?N;xЍ99\ >-~ d@2>:_3g]3;=pw Uၲju({\I{F {3Fd`5<՞F̠`@ D0;üBQSMm1 bYb2AullB02~9,E 6 F tfӦmA@w7@i},pB.2ٓlE3a{oU[a)n0,Hv NK#1u$|9BxwN Bs}$g5측٢*IkZ:jKМʟ~7p Ġ,"+,w nl!6"'6rFFs*r"!.Ѥ>F*#=]\(r(8@&)/Zw2O8SL %dȓE(]`'%[U+t-s-XG&ݏGoG/.tjʬOuq2g„sD0d$?<7 C )!W$A#!bΉLɼuuߧb~4^! waΏ ڡ>-*H!"<izUg5{_%J cfY|J{HXS.~XI;M&и3`dpݯ/d>h,u)ͳƊ@'V{d$cwHs;‹E:df#CH !wAlQ.!77< d)L$D0FUSإL) $\ާ&#?ƨfabu89A F0@pp&  @@oUlJu \i9":>OJIv6Jhnt4CA :gA^mb?|c\[]"ȵ9G6DPb T0uLҢ$ )a/8mAY Fu6B[an#AaɘogϿiч"F)*s[+~c}|[F`o;.Ec7R1-YYeB+tjY|՝fφ CBM$g$PU/Bu߄ sM9q{Ū[6e]܏cP0Ro%q|Qmdߛ4H q+}[Veo{Qiql^ NĆ,t6Llw^ȍ`C`*D춗c!>k\c);9cʼȪt1*Am}_x9V{UaiDouբZ]kAPsV3%q4'=Ǡ<1tMƲWzrބg2Y p a:wL@>}ߺ;}"ė2L݃vxn~pG7%8|ǃ STcʵ*!>+OFlEԶy_oݤv'4pWko}7]?@dvS[;/X>ȩ/\慬N$pڳ3d *Qmw7U]At |_~.v Ո&sp.qߔpڸvW$;Ie?=cw)5Uf7eEi'h*xm'-RSGH'_ۀ F%o FYGN"$ 8G`q%kMG6 LG5q>%7.h.fAK 9D5ܦ\I_}F `EJOD!4p5foR-s6()?~h~c'@o{pOK Cݥ:$k#>8GŢ?) n?= ѳ v~w^O.<~6{jn*C}q'si,K9~([=$p m0|71!90i pg|Dq[;b } 5l./6~?Lx&&U2mRljYHM>owbMfi!soaU9 羚ݓ P߱ NN9sZ܎#0KTNlQiK5Jp4,Tȑ*^->Ļi,Zse?SfH&{ms/෹ *<076!!. # Amb&eE66î{~%/B ;m-Mz"ɖŅed9,(;)?~vza=Xh*0N*|eNd 9 Ajv~G~cn]!6!Q;Re?X=Wq=0˟cjCTeKmjI҂[g+w˸'w/ш2^! ؿA|endstream endobj 94 0 obj << /Filter /FlateDecode /Length 4001 >> stream xZr[7G} Av<OB)&)8%N/2տ8koBckJ:66e 㴮iM|Oo6'uUGtx6k?]ߜDwPZJszu}UJYsqb<ZtիW'?ԧ 145d$p VfX,&z>:SAUFHE|xBk%^fŻb7n(˪VȘ*zzDdf' QSx+T-Q+vU ҨI%\H'ީڊ׫vJ'EZߜ5,_`E&QdL؀'$ƞ%Mh;t s$Kبz[CP7LΌwXd1dRL6[j0;~,gG Xo&m7ݼNS#^7d͝f7wV'ɠ M!M!㰐L<-Es3gslߏ 6K)Iّ`WG1=e6-^v]`ŒųWE-.m٦u'1\]o?݃\aTw1M] pdSdJ<_$o[8Clo7^,|l~2Vͼ_JtyOR ٘Ԯ9֊-6;b2Z.!~!gu7Hg8i\pWG pyA4$plܱ;ag,|gR[ mj_3hEUC}\D&DaA~91 &PQKQ2ERR֠N(Ym((F!>^:f0Qp8 #DQ #X٧'#%qAh3ԇBGqŽ!1Z'Fۢ>B/x@8GL٪`yMλ(PGR:K .QE}!S_(q=jgĉ/tV+˨01`0{$ۈ]K\plz;G-5qX^IsCqr ]Z _Pct`()xErsE)|0AĨu}d5JUζƲ.LK]QP hN(tf϶PqtbR̰R-ҴZCHN,>3:xT @It73]) 27?THϾp<3Wx:`2*swG жbe J%ZɬY,V4j`.ub4dZzԡ0-.!_h.R\dXSᢈkrz@ U,j.pY.\]๥?V]Qn's0$!-\Rp|0 ḛ́ueؐJ:pGev;5 fbuO0l|=kw}=%P6la|DT+# #LO>1bo݆&NyZe$RaJ=#1Ngss{T*b*YN.X/aOYC9uU1 P~efxJuSfN[&ɱAk T@Zu 'ذG?0VBJWEdI6'uTnk}z8֟"VwN;OMأ>Mܗ>[|m/ DzbpC((ũsk`ަjj8#}It3TT1گ ' #S*f?䂞Cb44\!$"A|3)&hj)΅|2:_ Zq/F 4+^v7`)MϞH*6J7wT\KwxkD_R1UjqMlv}+ڌWqPG=$PQ հquWbo~r̗ߦdP-uiK$ eDtC_kba&@Z#YA;ID~y*s*G*!":ѼY&PKmvM[ђ6a~~Y|15y3Cȅq9MH. ]OW#d]GGn%㧩uGz=YYmd^[bNjy7 I"/2jg/P1_ h:hY|>^lM %*KKfBVV1e{ 7(q#"I+#2Uv9FC]f[} 02ݯ 7\?3p(މ#IP]a 5׿X?Q3zO:gL;~Z&:nKY:̮)}/˭ /R(imV+[ ] LhːB4[LBt1hϕ i"R|R9mWep&|OirrӤQJK[h94r-/% Ifab>]Fu߳Q сs:֪Hg9͙%~9{L +EMMx|>⣻0`v[9m{u  DSֳ"M,$Ćpxg鎇Mo`>/k5|d4—$F[vۉ |,b.oؓ冣fU%e6S&jeG$_+ LBL;m T0Nw|-u8ĂV\Wwi|IxVhp7.@T2ٽ;/Tq-/>I keV5ۿ/0.u_QWIWHIGoNF86ʻ#KG˒ҥߨɝνi;%,ZѭA.;Yn|ٺ;(QDJ<>p-> stream xViXS׺!ͶRNK%'m=+Zq@+2( Ce2 YAy HA@Db((CmY;w+[~rm-|`":j/2+XJ`Cg2].j~G6ߚaM7;ae}ग*}×!ƆZcaK"숿 oė‘p"΄!qG'\S3b?aDaIl&[5aC$t]S8Mg_9bNJ-[-u&8"w?Rb*I'HgH D,1_w)K uuuuQu 0(_ÆjeRoBEFI>+zN1 gFLr^3d*,WUA>zQ+BZUÃ/V*OgƧKD{yѕJ Pȩ&NB^sadndp+`GZf&H{QD~? ƀ%v@'揷?"1s3CvyzJ))U3ϸuLxشy=K`ۮ;׹B`߇rfjiim)u^{됉N?1Bᆲ#QW3(\.bh&0 <JE$zG"}VV"&`ɦQ4]@*&UQ @2RQ#׬Rz9FE\׍,";U5EZ邲g$l)iJ;8amJq=axHsESzL,gӌrUHs\kj}L,? n`>cАZ|:7>b%ў@QHsyMԙȬ$;]>a- RhRNB+@^UYiźv4DKS"=eyʜFd FgoSIt:o~Kam{`mpGdSB7܆~^P6WGKl$Xv#KkЎeqKA臡[UEE__hp>rY79DգU6*]ER SEed%C1[y,HX2v/J/IIsD M:ʸ93/eT`kV"%Lo ܳynjڢZ(0)~>y;a=r!*@tuö7Pl؅1&q %uݧ"9,Gu\p"7hGk|YJ8 j jLdkrD3\t/CVKf֑Sj] ~@]QșZJ.&bM2]7tDR<dRʩ<ٵYV[#|J֞/**l-nnGoz7/$`'wr}zr~q7W4tq||%<+Ȍhi3AU ue ]/ m/h75c|S'!U:YP/&`vDM>"KNL`1<dx|lS.i.:3.V͆N)؟LHP3FjPq$)& I*,6h+ G36x'/-O>{5&6M#p+qo0tVu]IcI ><<&*5zGQ ӸSqo/[̳|sg9r,:{%%.#Lxi,F$ubbr@ Lsn ʒ7{fފ:)&Q iх "{Dyı8օ*™FNUKҟ}1nιܬtb 9g ڢ;/8U` 6`4L\ xD6m,YH֗\Ys*-"S4b2uҷw7_Nj { xc+OW@Sq憮ʓqA Yi'iPLs%E1La>M7+VjAaRwZ$5a t -W4Wˡ>zZ&LEuM#Or?zxDxq 7o;:^,٨>o!s P[^cɵ;TpW8c CU-5w@w)gendstream endobj 96 0 obj << /Type /XRef /Length 134 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 97 /ID [<6695dfe6242c49f812bbf230f30eb079><08c42ccfe0cb1ff75db1391732e8a53c>] >> stream xcb&F~0 $8J0g?#R n R Dr]A$ 8 "_IɺD~9"e&H Ri'd"EA 0Dqmϻ endstream endobj startxref 103997 %%EOF RcppGSL/inst/doc/RcppGSL-intro.Rnw0000644000176200001440000000045013552060313016336 0ustar liggesusers\documentclass{article} \usepackage{pdfpages} %\VignetteIndexEntry{RcppGSL} %\VignetteKeywords{R,GSL,Rcpp,data transfer} %\VignettePackage{RcppGSL} %\VignetteDepends{RcppGSL} %\VignetteEncoding{UTF-8} \begin{document} \includepdf[pages=-, fitpaper=true]{RcppGSL-introduction.pdf} \end{document} RcppGSL/inst/include/0000755000176200001440000000000013673662403014136 5ustar liggesusersRcppGSL/inst/include/RcppGSLForward.h0000644000176200001440000002321013673656737017121 0ustar liggesusers // RcppGSLForward.h: Forward Declarations for Seamless R and GSL Integration // // Copyright (C) 2010 - 2020 Romain Francois and Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL 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. // // RcppGSL 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 RcppGSL. If not, see . #ifndef RCPPGSL__RCPPGSLFORWARD_H #define RCPPGSL__RCPPGSLFORWARD_H #include #include #include namespace Rcpp { namespace traits { /* support for gsl_complex */ template<> struct r_sexptype_traits { enum { rtype = CPLXSXP }; }; template<> struct wrap_type_traits { typedef wrap_type_primitive_tag wrap_category; }; template<> struct r_type_traits { typedef r_type_primitive_tag r_category; }; template<> struct r_type_traits< std::pair > { typedef r_type_primitive_tag r_category; }; /* support for gsl_complex_float */ template<> struct r_sexptype_traits { enum { rtype = CPLXSXP }; }; template<> struct wrap_type_traits { typedef wrap_type_primitive_tag wrap_category; }; template<> struct r_type_traits { typedef r_type_primitive_tag r_category; }; template<> struct r_type_traits< std::pair > { typedef r_type_primitive_tag r_category; }; /* support for gsl_complex_long_double */ template<> struct r_sexptype_traits { enum { rtype = CPLXSXP }; }; template<> struct wrap_type_traits { typedef wrap_type_primitive_tag wrap_category; }; template<> struct r_type_traits { typedef r_type_primitive_tag r_category; }; template<> struct r_type_traits< std::pair > { typedef r_type_primitive_tag r_category; }; } namespace internal { template<> inline gsl_complex caster(Rcomplex from) { gsl_complex x; GSL_REAL(x) = from.r; GSL_IMAG(x) = from.i; return x; } template<> inline Rcomplex caster(gsl_complex from) { Rcomplex x; x.r = GSL_REAL(from); x.i = GSL_IMAG(from); return x; } template<> inline gsl_complex_float caster(Rcomplex from) { gsl_complex_float x; GSL_REAL(x) = static_cast(from.r); GSL_IMAG(x) = static_cast(from.i); return x; } template<> inline Rcomplex caster(gsl_complex_float from) { Rcomplex x; x.r = static_cast(GSL_REAL(from)); x.i = static_cast(GSL_IMAG(from)); return x; } template<> inline gsl_complex_long_double caster(Rcomplex from) { gsl_complex_long_double x; GSL_REAL(x) = static_cast(from.r); GSL_IMAG(x) = static_cast(from.i); return x; } template<> inline Rcomplex caster(gsl_complex_long_double from) { Rcomplex x; x.r = static_cast(GSL_REAL(from)); x.i = static_cast(GSL_IMAG(from)); return x; } } } namespace RcppGSL { template class vector; template class matrix; template struct vector_view_type; template struct matrix_view_type; #include "RcppGSL_types.h" _RCPPGSL_SPEC_NOSUFFIX(double , double ) _RCPPGSL_SPEC(float , _float , float ) _RCPPGSL_SPEC(int , _int , int ) //_RCPPGSL_SPEC(long , _long , long ) _RCPPGSL_SPEC(long double , _long_double , long double ) _RCPPGSL_SPEC(short , _short , short ) _RCPPGSL_SPEC(unsigned char , _uchar , unsigned char ) _RCPPGSL_SPEC(unsigned int , _uint , unsigned int ) _RCPPGSL_SPEC(unsigned short , _ushort , unsigned short ) //_RCPPGSL_SPEC(unsigned long , _ulong , unsigned long ) _RCPPGSL_SPEC(char , _char , unsigned char ) _RCPPGSL_SPEC(gsl_complex , _complex , gsl_complex ) _RCPPGSL_SPEC(gsl_complex_float , _complex_float , gsl_complex_float ) _RCPPGSL_SPEC(gsl_complex_long_double , _complex_long_double , gsl_complex_long_double) #undef _RCPPGSL_SPEC #undef _RCPPGSL_SPEC_NOSUFFIX template class vector_view { public: struct internal_view { const gsl_vector vector; inline internal_view(const gsl_vector &v) : vector(v) {} }; typedef typename vector::type type; typedef typename vector::const_iterator const_iterator; typedef typename vector::gsltype gsltype; typedef typename vector_view_type::type view_type; typedef typename vector_view_type::const_type const_view_type; typedef typename vector::ConstProxy ConstProxy; vector_view(view_type v) : view(v.vector) {} vector_view(const_view_type v) : view(v.vector) {} inline ConstProxy operator[](int i) { return ConstProxy(&view.vector, i); } inline const_iterator begin() const { return const_iterator(ConstProxy(&view.vector, 0)); } inline const_iterator end() const { return const_iterator(ConstProxy(&view.vector, view.vector.size)); } inline size_t size() const { return view.vector.size; } inline operator const gsltype*() { return &view.vector; } internal_view view; }; template class matrix_view { public: struct internal_view { const gsl_matrix matrix; inline internal_view(const gsl_matrix &m) : matrix(m) {} }; typedef typename matrix::type type; typedef typename matrix::gsltype gsltype; typedef typename matrix_view_type::type view_type; typedef typename matrix_view_type::const_type const_view_type; typedef typename matrix::ConstProxy ConstProxy; matrix_view(view_type v) : view(v.matrix) {} matrix_view(const_view_type v) : view(v.matrix) {} inline ConstProxy operator()(int row, int col) { return ConstProxy(&view.matrix, row, col); } inline size_t nrow() const { return view.matrix.size1; } inline size_t ncol() const { return view.matrix.size2; } inline size_t size() const { return view.matrix.size1 * view.matrix.size2; } inline operator const gsltype*() { return &view.matrix; } internal_view view; }; } /* forward declarations */ namespace Rcpp { #undef _RCPPGSL_WRAPDEF #define _RCPPGSL_WRAPDEF(__SUFFIX__) \ template<> inline SEXP wrap(const gsl_vector##__SUFFIX__&); \ template<> inline SEXP wrap(const gsl_vector##__SUFFIX__##_view&); \ template<> inline SEXP wrap(const gsl_vector##__SUFFIX__##_const_view&); \ template<> inline SEXP wrap(const gsl_matrix##__SUFFIX__&); \ template<> inline SEXP wrap(const gsl_matrix##__SUFFIX__##_view&); \ template<> inline SEXP wrap(const gsl_matrix##__SUFFIX__##_const_view&); _RCPPGSL_WRAPDEF(_int) _RCPPGSL_WRAPDEF(_float) _RCPPGSL_WRAPDEF(_long) _RCPPGSL_WRAPDEF(_char) _RCPPGSL_WRAPDEF(_complex) _RCPPGSL_WRAPDEF(_complex_float) _RCPPGSL_WRAPDEF(_complex_long_double) _RCPPGSL_WRAPDEF(_long_double) _RCPPGSL_WRAPDEF(_short) _RCPPGSL_WRAPDEF(_uchar) _RCPPGSL_WRAPDEF(_uint) _RCPPGSL_WRAPDEF(_ushort) _RCPPGSL_WRAPDEF(_ulong) template<> inline SEXP wrap(const gsl_vector&); template<> inline SEXP wrap(const gsl_vector_view&); template<> inline SEXP wrap(const gsl_vector_const_view&); template<> inline SEXP wrap(const gsl_matrix&); template<> inline SEXP wrap(const gsl_matrix_view&); template<> inline SEXP wrap(const gsl_matrix_const_view&); template inline SEXP wrap(const ::RcppGSL::vector&); template inline SEXP wrap(const ::RcppGSL::matrix&); template inline SEXP wrap(const ::RcppGSL::vector_view&); template inline SEXP wrap(const ::RcppGSL::matrix_view&); } #endif RcppGSL/inst/include/RcppGSL.h0000644000176200001440000000222512774327533015565 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- // // RcppGSL.h: Seamless R and GSL Integration via Rcpp // // Copyright (C) 2010 - 2015 Romain Francois and Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL 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. // // RcppGSL 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 RcppGSL. If not, see . #ifndef RCPPGSL__RCPPGSL_H #define RCPPGSL__RCPPGSL_H #include #include #include #include #include #include #include #endif RcppGSL/inst/include/RcppGSL_types.h0000644000176200001440000006445113553061757017021 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- // // RcppGSL_types.h: Type macros for Seamless R and GSL Integration // // Copyright (C) 2010 - 2019 Romain Francois and Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL 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. // // RcppGSL 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 RcppGSL. If not, see . #ifndef RCPPGSL_RCPPGSL_SPEC_H #define RCPPGSL_RCPPGSL_SPEC_H #undef _RCPPGSL_SPEC #undef _RCPPGSL_SPEC_NOSUFFIX #define _RCPPGSL_SPEC(__T__,__SUFFIX__,__CAST__) \ template <> struct vector_view_type<__T__> { \ typedef gsl_vector##__SUFFIX__##_view type; \ typedef gsl_vector##__SUFFIX__##_const_view const_type; \ }; \ template <> struct matrix_view_type<__T__> { \ typedef gsl_matrix##__SUFFIX__##_view type; \ typedef gsl_matrix##__SUFFIX__##_const_view const_type; \ }; \ template <> class vector<__T__> { \ public: \ typedef __T__ type; \ typedef __T__* pointer; \ typedef gsl_vector##__SUFFIX__ gsltype; \ gsltype* data; \ class Proxy { \ public: \ Proxy(gsltype* data_, int index_) : \ index(index_), parent(data_) {} \ Proxy& operator=(type x) { \ gsl_vector##__SUFFIX__##_set(parent, index, x); \ return *this; \ } \ inline operator type() { \ return gsl_vector##__SUFFIX__##_get(parent, index); \ } \ inline operator const type() const { \ return gsl_vector##__SUFFIX__##_get(parent, index); \ } \ int index; \ gsltype* parent; \ inline void move(int d) { index += d; } \ }; \ class ConstProxy { \ public: \ ConstProxy(const gsltype* data_, int index_) : \ index(index_), parent(data_) {} \ inline operator type() { \ return gsl_vector##__SUFFIX__##_get(parent, index); \ } \ inline operator const type() const { \ return gsl_vector##__SUFFIX__##_get(parent, index); \ } \ int index; \ const gsltype* parent; \ inline void move(int d) { index += d; } \ }; \ typedef ::Rcpp::internal::Proxy_Iterator iterator; \ typedef ::Rcpp::internal::Proxy_Iterator const_iterator;\ const static int RTYPE = \ ::Rcpp::traits::r_sexptype_traits::rtype; \ vector(SEXP x) : \ data(NULL), allocated(false) { \ SEXP y = ::Rcpp::r_cast(x); \ int size = ::Rf_length(y); \ data = gsl_vector##__SUFFIX__##_calloc(size); \ ::Rcpp::internal::export_range<__CAST__*>(y, \ reinterpret_cast<__CAST__*>(data->data)); \ } \ vector(gsltype* x) : data(x), allocated(false) {} \ vector(int size) : \ data(gsl_vector##__SUFFIX__##_calloc(size)), \ allocated(true) {} \ ~vector() { free(); } \ operator gsltype*() { return data; } \ operator const gsltype*() const { return data; } \ gsltype* operator->() const { return data; } \ gsltype& operator*() const { return *data; } \ vector(const vector& x) : data(x.data), allocated(x.allocated) {} \ vector& operator=(const vector& other) { \ data = other.data; \ allocated = other.allocated; \ return *this; \ } \ inline Proxy operator[](int i) { \ return Proxy(data, i); \ } \ inline ConstProxy operator[](int i) const { \ return ConstProxy(data, i); \ } \ inline iterator begin() { return iterator(Proxy(*this, 0)); } \ inline iterator end() { return iterator(Proxy(*this,data->size)); } \ inline const_iterator begin() const { \ return const_iterator(ConstProxy(*this, 0)); \ } \ inline const_iterator end() const { \ return const_iterator(ConstProxy(*this, data->size)); \ } \ inline size_t size() const { return data->size; } \ inline void free() { \ if (allocated && data) { \ gsl_vector##__SUFFIX__##_free(data); \ allocated = false; \ data = NULL; \ } \ } \ private: \ bool allocated; \ }; \ template <> class matrix<__T__> { \ public: \ typedef __T__ type; \ typedef __T__* pointer; \ typedef gsl_matrix##__SUFFIX__ gsltype; \ gsltype* data; \ const static int RTYPE = \ ::Rcpp::traits::r_sexptype_traits::rtype; \ class Proxy { \ public: \ Proxy(gsltype* data_, int row_, int col_) : \ row(row_), col(col_), parent(data_) {} \ Proxy& operator=(type x) { \ gsl_matrix##__SUFFIX__##_set(parent, row, col, x); \ return *this; \ } \ inline operator type() { \ return gsl_matrix##__SUFFIX__##_get(parent, row, col); \ } \ inline operator const type() const { \ return gsl_matrix##__SUFFIX__##_get(parent, row, col); \ } \ int row; \ int col; \ gsltype* parent; \ }; \ class ConstProxy { \ public: \ ConstProxy(const gsltype* data_, int row_, int col_) : \ row(row_), col(col_), parent(data_) {} \ inline operator type() { \ return gsl_matrix##__SUFFIX__##_get(parent, row, col); \ } \ inline operator const type() const { \ return gsl_matrix##__SUFFIX__##_get(parent, row, col); \ } \ int row; \ int col; \ const gsltype* parent; \ }; \ matrix(SEXP x) : \ data(NULL), allocated(false) { import(x); } \ matrix(gsltype* x) : data(x), allocated(false) {} \ matrix(int nrow, int ncol) : \ data(gsl_matrix##__SUFFIX__##_alloc(nrow, ncol)), \ allocated(true) {} \ ~matrix() { free(); } \ operator gsltype*() { return data; } \ operator const gsltype*() const { return data; } \ gsltype* operator->() const { return data; } \ gsltype& operator*() const { return *data; } \ matrix(const matrix& x) : data(x.data), allocated(x.allocated) {} \ matrix& operator=(const matrix& other) { \ data = other.data; \ allocated = other.allocated; \ return *this; \ } \ inline size_t nrow() const { return data->size1; } \ inline size_t ncol() const { return data->size2; } \ inline size_t size() const { return data->size1 * data->size2; } \ inline Proxy operator()(int row, int col){ \ return Proxy( *this, row, col); \ } \ inline ConstProxy operator()(int row, int col) const { \ return ConstProxy( *this, row, col); \ } \ void free(){ \ if (allocated && data) { \ gsl_matrix##__SUFFIX__##_free(data); \ allocated = false; \ data = NULL; \ } \ } \ private: \ inline void import(SEXP x); \ bool allocated; \ }; \ #define _RCPPGSL_SPEC_NOSUFFIX(__T__,__CAST__) \ template <> struct vector_view_type<__T__> { \ typedef gsl_vector_view type; \ typedef gsl_vector_const_view const_type; \ }; \ template <> struct matrix_view_type<__T__> { \ typedef gsl_matrix_view type; \ typedef gsl_matrix_const_view const_type; \ }; \ template <> class vector<__T__> { \ public: \ typedef __T__ type; \ typedef __T__* pointer; \ typedef gsl_vector gsltype; \ gsltype* data; \ class Proxy { \ public: \ Proxy(gsltype* data_, int index_) : \ index(index_), parent(data_) {} \ Proxy& operator=(type x) { \ gsl_vector_set(parent, index, x); \ return *this; \ } \ inline operator type() { \ return gsl_vector_get(parent, index); \ } \ inline operator const type() const { \ return gsl_vector_get(parent, index); \ } \ int index; \ gsltype* parent; \ inline void move(int d) { index += d; } \ }; \ class ConstProxy { \ public: \ ConstProxy(const gsltype* data_, int index_) : \ index(index_), parent(data_) {} \ inline operator type() { \ return gsl_vector_get(parent, index); \ } \ inline operator const type() const { \ return gsl_vector_get(parent, index); \ } \ int index; \ const gsltype* parent; \ inline void move(int d) { index += d; } \ }; \ typedef ::Rcpp::internal::Proxy_Iterator iterator; \ typedef ::Rcpp::internal::Proxy_Iterator const_iterator; \ const static int RTYPE = \ ::Rcpp::traits::r_sexptype_traits::rtype; \ vector(SEXP x) : \ data(NULL), allocated(false) { \ SEXP y = ::Rcpp::r_cast(x); \ int size = ::Rf_length(y); \ data = gsl_vector_calloc(size); \ ::Rcpp::internal::export_range<__CAST__*>(y, \ reinterpret_cast<__CAST__*>(data->data)); \ } \ vector(gsltype* x) : data(x), allocated(false) {} \ vector(int size) : \ data(gsl_vector_calloc(size)), allocated(true) {} \ ~vector() { free(); } \ operator gsltype*() { return data; } \ operator const gsltype*() const { return data; } \ gsltype* operator->() const { return data; } \ gsltype& operator*() const { return *data; } \ vector(const vector& x) : data(x.data), allocated(x.allocated) {} \ vector& operator=(const vector& other) { \ data = other.data; \ allocated = other.allocated; \ return *this; \ } \ inline Proxy operator[](int i) { \ return Proxy(data, i); \ } \ inline ConstProxy operator[](int i) const { \ return ConstProxy(data, i); \ } \ inline iterator begin() { return iterator(Proxy(*this, 0)); } \ inline iterator end() { return iterator(Proxy(*this, data->size)); } \ inline const_iterator begin() const { \ return const_iterator(ConstProxy(*this, 0)); \ } \ inline const_iterator end() const { \ return const_iterator(ConstProxy(*this, data->size)); \ } \ inline size_t size() const { return data->size; } \ inline void free() { \ if (allocated && data) { \ gsl_vector_free(data); \ allocated = false; \ data = NULL; \ } \ } \ private: \ bool allocated; \ }; \ template <> class matrix<__T__> { \ public: \ typedef __T__ type; \ typedef __T__* pointer; \ typedef gsl_matrix gsltype; \ gsltype* data; \ const static int RTYPE = \ ::Rcpp::traits::r_sexptype_traits::rtype; \ class Proxy { \ public: \ Proxy(gsltype* data_, int row_, int col_) : \ row(row_), col(col_), parent(data_) {} \ Proxy& operator=(type x) { \ gsl_matrix_set(parent, row, col, x); \ return *this; \ } \ inline operator type() { \ return gsl_matrix_get(parent, row, col); \ } \ inline operator const type() const { \ return gsl_matrix_get(parent, row, col); \ } \ int row; \ int col; \ gsltype* parent; \ }; \ class ConstProxy { \ public: \ ConstProxy(const gsltype* data_, int row_, int col_) : \ row(row_), col(col_), parent(data_) {} \ inline operator type() { \ return gsl_matrix_get(parent, row, col); \ } \ inline operator const type() const { \ return gsl_matrix_get(parent, row, col); \ } \ int row; \ int col; \ const gsltype* parent; \ }; \ matrix(SEXP x) : \ data(NULL), allocated(false) { import(x); } \ matrix(gsltype* x) : data(x), allocated(false) {} \ matrix(int nrow, int ncol) : \ data(gsl_matrix_alloc(nrow, ncol)), allocated(true) {} \ ~matrix() { free(); } \ operator gsltype*() { return data; } \ operator const gsltype*() const { return data; } \ gsltype* operator->() const { return data; } \ gsltype& operator*() const { return *data; } \ matrix(const matrix& x) : data(x.data), allocated(x.allocated) {} \ matrix& operator=(const matrix& other) { \ data = other.data; \ allocated = other.allocated; \ return *this; \ } \ inline size_t nrow() const { return data->size1; } \ inline size_t ncol() const { return data->size2; } \ inline size_t size() const { return data->size1 * data->size2; } \ inline Proxy operator()(int row, int col) { \ return Proxy(*this, row, col); \ } \ inline ConstProxy operator()(int row, int col) const { \ return ConstProxy(*this, row, col); \ } \ void free() { \ if (allocated && data) { \ gsl_matrix_free(data); \ allocated = false; \ data = NULL; \ } \ } \ private: \ inline void import(SEXP x); \ bool allocated; \ }; \ #endif RcppGSL/inst/include/RcppGSL_matrix.h0000644000176200001440000002260413673662344017155 0ustar liggesusers // RcppGSL_matrix.h: Matrix class for Seamless R and GSL Integration // // Copyright (C) 2010 - 2020 Romain Francois and Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL 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. // // RcppGSL 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 RcppGSL. If not, see . #ifndef RCPPGSL__RCPPGSL_MATRIX_H #define RCPPGSL__RCPPGSL_MATRIX_H #include #include namespace RcppGSL { template class gslmatrix_importer { public: typedef T r_import_type; /* this is important */ private: r_import_type* ptr; int size1; int size2; int tda; public: gslmatrix_importer(r_import_type* ptr_, int size1_, int size2_, int tda_) : ptr(ptr_), size1(size1_), size2(size2_), tda(tda_) {}; inline int size() const { return size1 * size2; }; r_import_type get(int i) const { int col = (int)(i / size1); int row = i - col * size1; return ptr[ row * tda + col ]; } }; } namespace Rcpp { #define RCPPGSL_WRAP(__TYPE__,__DATA__) \ template <> inline SEXP wrap(const __TYPE__& x) { \ SEXP res = PROTECT(wrap(RcppGSL::gslmatrix_importer<__DATA__>( \ x.data, x.size1, x.size2, x.tda))); \ SEXP dims = PROTECT(::Rf_allocVector(INTSXP, 2)); \ INTEGER(dims)[0] = x.size1; \ INTEGER(dims)[1] = x.size2; \ ::Rf_setAttrib(res, R_DimSymbol, dims); \ UNPROTECT(2); \ return res; \ } #define RCPPGSL_WRAP_CAST(__TYPE__,__DATA__) \ template <> inline SEXP wrap(const __TYPE__& x) { \ SEXP res = PROTECT(wrap(RcppGSL::gslmatrix_importer<__DATA__>( \ reinterpret_cast<__DATA__*>(x.data), \ x.size1, x.size2, x.tda))); \ SEXP dims = PROTECT(::Rf_allocVector(INTSXP, 2)); \ INTEGER(dims)[0] = x.size1; \ INTEGER(dims)[1] = x.size2; \ ::Rf_setAttrib(res, R_DimSymbol, dims); \ UNPROTECT(2); \ return res; \ } RCPPGSL_WRAP(gsl_matrix , double) RCPPGSL_WRAP(gsl_matrix_float , float) RCPPGSL_WRAP(gsl_matrix_int , int) RCPPGSL_WRAP(gsl_matrix_long , long) RCPPGSL_WRAP(gsl_matrix_long_double , long double) RCPPGSL_WRAP(gsl_matrix_short , short) RCPPGSL_WRAP(gsl_matrix_uchar , unsigned char) RCPPGSL_WRAP(gsl_matrix_uint , unsigned int) RCPPGSL_WRAP(gsl_matrix_ushort , unsigned short) RCPPGSL_WRAP(gsl_matrix_ulong , unsigned long) RCPPGSL_WRAP_CAST(gsl_matrix_char ,Rbyte ) RCPPGSL_WRAP_CAST(gsl_matrix_complex ,gsl_complex ) RCPPGSL_WRAP_CAST(gsl_matrix_complex_float ,gsl_complex_float ) RCPPGSL_WRAP_CAST(gsl_matrix_complex_long_double,gsl_complex_long_double) #undef RCPPGSL_WRAP #undef RCPPGSL_WRAP_CAST } namespace RcppGSL { #undef _RCPPGSL_DEF #define _RCPPGSL_DEF(__T__,__SUFFIX__) \ inline void matrix<__T__>::import(SEXP x) { \ Rcpp::Matrix mat(x); \ int nc = mat.ncol(); \ int nr = mat.nrow(); \ int i = 0, j = 0; \ data = gsl_matrix##__SUFFIX__##_alloc(nr, nc); \ Rcpp::Matrix::iterator it = mat.begin(); \ for (; j::import(SEXP x) { \ Rcpp::Matrix mat(x); \ int nc = mat.ncol(); \ int nr = mat.nrow(); \ int i = 0, j = 0; \ data = gsl_matrix##__SUFFIX__##_alloc(nr, nc); \ Rcpp::Matrix::iterator it = mat.begin(); \ typedef Rcpp::traits::storage_type::type STORAGE; \ for (; j(*it)); \ } \ } \ } inline void matrix::import(SEXP x) { Rcpp::Matrix mat(x); int nc = mat.ncol(); int nr = mat.nrow(); int i = 0, j = 0; data = gsl_matrix_alloc(nr, nc); Rcpp::Matrix::iterator it = mat.begin(); for (; j::import(SEXP x) { Rcpp::Matrix mat(x); int nc = mat.ncol(); int nr = mat.nrow(); int i = 0, j = 0; data = gsl_matrix_char_alloc(nr, nc); Rcpp::Matrix::iterator it = mat.begin(); for (; j(*it)); } } } #undef _RCPPGSL_DEF #undef _RCPPGSL_DEF_CAST } namespace Rcpp { template inline SEXP wrap(const ::RcppGSL::matrix& x) { return wrap(*(x.data)); } } #endif RcppGSL/inst/include/RcppGSL_vector_view.h0000644000176200001440000000443713673660700020203 0ustar liggesusers // RcppGSL_vector_view.h: Vector view class for Seamless R and GSL Integration // // Copyright (C) 2010 - 2020 Romain Francois and Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL 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. // // RcppGSL 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 RcppGSL. If not, see . #ifndef RCPPGSL__RCPPGSL_VECTOR_VIEW_H #define RCPPGSL__RCPPGSL_VECTOR_VIEW_H #include #include namespace Rcpp{ #define RCPPGSL_VIEW(SUFFIX) \ template <> inline SEXP wrap(const gsl_vector##SUFFIX##_view& x) { \ return wrap(x.vector); \ } \ template <> inline SEXP wrap(const gsl_vector##SUFFIX##_const_view& x) { \ return wrap(x.vector); \ } RCPPGSL_VIEW(_int) RCPPGSL_VIEW(_float) RCPPGSL_VIEW(_long) RCPPGSL_VIEW(_char) RCPPGSL_VIEW(_complex) RCPPGSL_VIEW(_complex_float) RCPPGSL_VIEW(_complex_long_double) RCPPGSL_VIEW(_long_double) RCPPGSL_VIEW(_short) RCPPGSL_VIEW(_uchar) RCPPGSL_VIEW(_uint) RCPPGSL_VIEW(_ushort) RCPPGSL_VIEW(_ulong) #undef RCPPGSL_VIEW template <> inline SEXP wrap(const gsl_vector_view& x){ return wrap(x.vector) ; } template <> inline SEXP wrap(const gsl_vector_const_view& x ){ return wrap(x.vector) ; } template inline SEXP wrap(const ::RcppGSL::vector_view& x){ return wrap( x.view.vector ) ; } } #endif RcppGSL/inst/include/RcppGSL_matrix_view.h0000644000176200001440000000452213673662356020211 0ustar liggesusers // RcppGSL_matrix_view.h: Matrix view class for Seamless R and GSL Integration // // Copyright (C) 2010 - 2020 Romain Francois and Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL 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. // // RcppGSL 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 RcppGSL. If not, see . #ifndef RCPPGSL__RCPPGSL_MATRIX_VIEW_H #define RCPPGSL__RCPPGSL_MATRIX_VIEW_H #include #include namespace Rcpp{ #define RCPPGSL_VIEW(SUFFIX) \ template <> inline SEXP wrap(const gsl_matrix##SUFFIX##_view& x) { \ return wrap(x.matrix); \ } \ template <> inline SEXP wrap( const gsl_matrix##SUFFIX##_const_view& x ){ \ return wrap(x.matrix) ; \ } RCPPGSL_VIEW(_int) RCPPGSL_VIEW(_float) RCPPGSL_VIEW(_long) RCPPGSL_VIEW(_char) RCPPGSL_VIEW(_complex) RCPPGSL_VIEW(_complex_float) RCPPGSL_VIEW(_complex_long_double) RCPPGSL_VIEW(_long_double) RCPPGSL_VIEW(_short) RCPPGSL_VIEW(_uchar) RCPPGSL_VIEW(_uint) RCPPGSL_VIEW(_ushort) RCPPGSL_VIEW(_ulong) #undef RCPPGSL_VIEW #define RCPPGSL_VIEW(SUFFIX) template <> inline SEXP wrap(const gsl_matrix_view& x) { return wrap(x.matrix); } template <> inline SEXP wrap(const gsl_matrix_const_view& x) { return wrap(x.matrix); } template inline SEXP wrap(const ::RcppGSL::matrix_view& x) { return wrap(x.view.matrix); } } #endif RcppGSL/inst/include/RcppGSL_typedef.h0000644000176200001440000000245312774327533017310 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- // // RcppGSL_typedef.h: Shorthand Definitions for Seamless R and GSL Integration // // Copyright (C) 2015 Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL 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. // // RcppGSL 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 RcppGSL. If not, see . #ifndef RCPPGSL__TYPEDEF_H #define RCPPGSL__TYPEDEF_H namespace RcppGSL { typedef matrix Matrix; typedef vector Vector; typedef matrix_view MatrixView; typedef vector_view VectorView; typedef matrix IntMatrix; typedef vector IntVector; typedef matrix_view IntMatrixView; typedef vector_view IntVectorView; } #endif RcppGSL/inst/include/RcppGSL_vector.h0000644000176200001440000000622313673662403017146 0ustar liggesusers // RcppGSL_vector.h: Vector class for Seamless R and GSL Integration // // Copyright (C) 2010 - 2020 Romain Francois and Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL 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. // // RcppGSL 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 RcppGSL. If not, see . #ifndef RCPPGSL__RCPPGSL_VECTOR_H #define RCPPGSL__RCPPGSL_VECTOR_H #include #include namespace RcppGSL { template class gslvector_importer { public: typedef T r_import_type; /* this is important */ private: r_import_type* data; int stride; int n; public: gslvector_importer(T* data_, int stride_, int n_) : data(data_), stride(stride_), n(n_) {} inline r_import_type get(int i) const { return data[ i * stride ]; } inline int size() const { return n; } }; } namespace Rcpp { #define RCPPGSL_WRAP(__TYPE__,__DATA__) \ template <> inline SEXP wrap(const __TYPE__& x) { \ return wrap(RcppGSL::gslvector_importer<__DATA__>(x.data, x.stride, x.size ) ); \ } #define RCPPGSL_WRAP_CAST(__TYPE__,__DATA__,__CAST__) \ template <> inline SEXP wrap(const __TYPE__& x) { \ return wrap(RcppGSL::gslvector_importer<__DATA__>(reinterpret_cast<__CAST__>(x.data), x.stride, x.size ) ); \ } RCPPGSL_WRAP(gsl_vector ,double) RCPPGSL_WRAP(gsl_vector_float ,float) RCPPGSL_WRAP(gsl_vector_int ,int) RCPPGSL_WRAP(gsl_vector_long ,long) RCPPGSL_WRAP(gsl_vector_long_double ,long double) RCPPGSL_WRAP(gsl_vector_short ,short) RCPPGSL_WRAP(gsl_vector_uchar ,unsigned char) RCPPGSL_WRAP(gsl_vector_uint ,unsigned int) RCPPGSL_WRAP(gsl_vector_ushort ,unsigned short) RCPPGSL_WRAP(gsl_vector_ulong ,unsigned long) RCPPGSL_WRAP_CAST(gsl_vector_char ,unsigned char ,Rbyte* const) RCPPGSL_WRAP_CAST(gsl_vector_complex ,gsl_complex ,gsl_complex*) RCPPGSL_WRAP_CAST(gsl_vector_complex_float ,gsl_complex_float ,gsl_complex_float*) RCPPGSL_WRAP_CAST(gsl_vector_complex_long_double,gsl_complex_long_double,gsl_complex_long_double*) template inline SEXP wrap(const ::RcppGSL::vector& x) { return wrap(*(x.data)); } #undef RCPPGSL_WRAP_CAST #undef RCPPGSL_WRAP } #endif RcppGSL/inst/tinytest/0000755000176200001440000000000014065132450014364 5ustar liggesusersRcppGSL/inst/tinytest/cpp/0000755000176200001440000000000013552570517015160 5ustar liggesusersRcppGSL/inst/tinytest/cpp/gsl.cpp0000644000176200001440000003154413552570517016460 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- // // gsl.cpp: RcppGSL R integration of GSL via Rcpp -- unit tests // // Copyright (C) 2010 - 2018 Romain Francois and Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL 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. // // RcppGSL 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 RcppGSL. If not, see . #include namespace local { // Solaris has issues with ::sqrt; and std::sqrt does not have const signature double sqrt(const double &x) { return std::sqrt(x); } } using namespace Rcpp; // [[Rcpp::depends(RcppGSL)]] // [[Rcpp::export]] List test_gsl_vector_wrapper() { RcppGSL::vector x_double( 10 ); RcppGSL::vector x_float( 10 ); RcppGSL::vector x_int( 10 ); //RcppGSL::vector x_long( 10 ); RcppGSL::vector x_char( 10 ); RcppGSL::vector x_long_double( 10 ); RcppGSL::vector x_short( 10 ); RcppGSL::vector x_uchar( 10 ); RcppGSL::vector x_uint( 10 ); RcppGSL::vector x_ushort( 10 ); //RcppGSL::vector x_ulong( 10 ); RcppGSL::vector x_complex( 10 ); RcppGSL::vector x_complex_float( 10 ); RcppGSL::vector x_complex_long_double( 10 ); List res = List::create(_["gsl_vector"] = x_double, _["gsl_vector_float"] = x_float, _["gsl_vector_int"] = x_int, //_["gsl_vector_long"] = x_long, _["gsl_vector_char"] = x_char, _["gsl_vector_complex"] = x_complex, _["gsl_vector_complex_float"] = x_complex_float, _["gsl_vector_complex_long_double"] = x_complex_long_double, _["gsl_vector_long_double"] = x_long_double, _["gsl_vector_short"] = x_short, _["gsl_vector_uchar"] = x_uchar, _["gsl_vector_uint"] = x_uint, _["gsl_vector_ushort"] = x_ushort //,_["gsl_vector_ulong"] = x_ulong ); x_double.free(); x_float.free(); x_int.free(); //x_long.free(); x_char.free(); x_long_double.free(); x_short.free(); x_uchar.free(); x_uint.free(); x_ushort.free(); //x_ulong.free(); x_complex.free(); x_complex_float.free(); x_complex_long_double.free(); return res; } // [[Rcpp::export]] List test_gsl_vector() { gsl_vector * x_double = gsl_vector_calloc (10); gsl_vector_float * x_float = gsl_vector_float_calloc(10); gsl_vector_int * x_int = gsl_vector_int_calloc(10); //gsl_vector_long * x_long = gsl_vector_long_calloc(10); gsl_vector_char * x_char = gsl_vector_char_calloc(10); gsl_vector_complex * x_complex = gsl_vector_complex_calloc(10); gsl_vector_complex_float * x_complex_float = gsl_vector_complex_float_calloc(10); gsl_vector_complex_long_double * x_complex_long_double = gsl_vector_complex_long_double_calloc(10); gsl_vector_long_double * x_long_double = gsl_vector_long_double_calloc(10); gsl_vector_short * x_short = gsl_vector_short_calloc(10); gsl_vector_uchar * x_uchar = gsl_vector_uchar_calloc(10); gsl_vector_uint * x_uint = gsl_vector_uint_calloc(10); gsl_vector_ushort * x_ushort = gsl_vector_ushort_calloc(10); //gsl_vector_ulong * x_ulong = gsl_vector_ulong_calloc(10); /* create an R list containing copies of gsl data */ List res = List::create(_["gsl_vector"] = *x_double, _["gsl_vector_float"] = *x_float, _["gsl_vector_int"] = *x_int, //_["gsl_vector_long"] = *x_long, _["gsl_vector_char"] = *x_char, _["gsl_vector_complex"] = *x_complex, _["gsl_vector_complex_float"] = *x_complex_float, _["gsl_vector_complex_long_double"] = *x_complex_long_double, _["gsl_vector_long_double"] = *x_long_double, _["gsl_vector_short"] = *x_short, _["gsl_vector_uchar"] = *x_uchar, _["gsl_vector_uint"] = *x_uint, _["gsl_vector_ushort"] = *x_ushort //,_["gsl_vector_ulong"] = *x_ulong ); /* cleanup gsl data */ gsl_vector_free(x_double); gsl_vector_float_free( x_float); gsl_vector_int_free( x_int ); //gsl_vector_long_free( x_long ); gsl_vector_char_free( x_char ); gsl_vector_complex_free( x_complex ); gsl_vector_complex_float_free( x_complex_float ); gsl_vector_complex_long_double_free( x_complex_long_double ); gsl_vector_long_double_free( x_long_double ); gsl_vector_short_free( x_short ); gsl_vector_uchar_free( x_uchar ); gsl_vector_uint_free( x_uint ); gsl_vector_ushort_free( x_ushort ); //gsl_vector_ulong_free( x_ulong ); return res; } // [[Rcpp::export]] List test_gsl_matrix() { gsl_matrix * x_double = gsl_matrix_alloc(5, 2); gsl_matrix_set_identity( x_double ); gsl_matrix_float * x_float = gsl_matrix_float_alloc(5,2); gsl_matrix_float_set_identity( x_float ); gsl_matrix_int * x_int = gsl_matrix_int_alloc(5,2); gsl_matrix_int_set_identity( x_int ); //gsl_matrix_long * x_long = gsl_matrix_long_alloc(5,2); //gsl_matrix_long_set_identity( x_long ); gsl_matrix_char * x_char = gsl_matrix_char_alloc(5,2); gsl_matrix_char_set_identity( x_char ); gsl_matrix_complex * x_complex = gsl_matrix_complex_alloc(5,2); gsl_matrix_complex_set_identity( x_complex ); gsl_matrix_complex_float * x_complex_float = gsl_matrix_complex_float_alloc(5,2); gsl_matrix_complex_float_set_identity( x_complex_float ); gsl_matrix_complex_long_double * x_complex_long_double = gsl_matrix_complex_long_double_alloc(5,2); gsl_matrix_complex_long_double_set_identity( x_complex_long_double ); gsl_matrix_long_double * x_long_double = gsl_matrix_long_double_alloc(5,2); gsl_matrix_long_double_set_identity( x_long_double ); gsl_matrix_short * x_short = gsl_matrix_short_alloc(5,2); gsl_matrix_short_set_identity( x_short ); gsl_matrix_uchar * x_uchar = gsl_matrix_uchar_alloc(5,2); gsl_matrix_uchar_set_identity( x_uchar ); gsl_matrix_uint * x_uint = gsl_matrix_uint_alloc(5,2); gsl_matrix_uint_set_identity( x_uint); gsl_matrix_ushort * x_ushort = gsl_matrix_ushort_alloc(5,2); gsl_matrix_ushort_set_identity( x_ushort ); //gsl_matrix_ulong * x_ulong = gsl_matrix_ulong_alloc(5,2); //gsl_matrix_ulong_set_identity( x_ulong ); List res = List::create(_["gsl_matrix"] = *x_double , _["gsl_matrix_float"] = *x_float, _["gsl_matrix_int"] = *x_int, //_["gsl_matrix_long"] = *x_long, _["gsl_matrix_char"] = *x_char, _["gsl_matrix_complex"] = *x_complex, _["gsl_matrix_complex_float"] = *x_complex_float, _["gsl_matrix_complex_long_double"] = *x_complex_long_double, _["gsl_matrix_long_double"] = *x_long_double, _["gsl_matrix_short"] = *x_short, _["gsl_matrix_uchar"] = *x_uchar, _["gsl_matrix_uint"] = *x_uint, _["gsl_matrix_ushort"] = *x_ushort //,_["gsl_matrix_ulong"] = *x_ulong ); gsl_matrix_free( x_double ); gsl_matrix_float_free( x_float); gsl_matrix_int_free( x_int ); //gsl_matrix_long_free( x_long ); gsl_matrix_char_free( x_char ); gsl_matrix_complex_free( x_complex ); gsl_matrix_complex_float_free( x_complex_float ); gsl_matrix_complex_long_double_free( x_complex_long_double ); gsl_matrix_long_double_free( x_long_double ); gsl_matrix_short_free( x_short ); gsl_matrix_uchar_free( x_uchar ); gsl_matrix_uint_free( x_uint ); gsl_matrix_ushort_free( x_ushort ); //gsl_matrix_ulong_free( x_ulong ); return res; } // [[Rcpp::export]] List test_gsl_vector_view() { int n = 10; gsl_vector *v = gsl_vector_calloc (n); for( int i=0; i vec = as< RcppGSL::vector >(vec_); int n = vec->size; double res = 0.0; for( int i=0; i mat = as< RcppGSL::matrix >( mat_); int nr = mat->size1; double res = 0.0; for( int i=0; i vec(10); for( int i=0; i<10; i++){ gsl_vector_int_set( vec, i, i ); } Rcpp::IntegerVector x; x = vec; return x; } // [[Rcpp::export]] NumericVector test_gsl_vector_indexing(NumericVector vec_) { RcppGSL::vector vec = as< RcppGSL::vector >(vec_); for( size_t i=0; i< vec.size(); i++){ vec[i] = vec[i] + 1.0; } NumericVector res = Rcpp::wrap( vec ); vec.free(); return res; } // [[Rcpp::export]] double test_gsl_vector_iterating(NumericVector vec_) { RcppGSL::vector vec = as< RcppGSL::vector >(vec_); double res= std::accumulate( vec.begin(), vec.end(), 0.0 ); vec.free(); return res; } // [[Rcpp::export]] NumericVector test_gsl_vector_iterator_transform(NumericVector vec_) { RcppGSL::vector vec = as< RcppGSL::vector >(vec_); NumericVector res(vec.size()); std::transform(vec.begin(), vec.end(), res.begin(), local::sqrt); vec.free(); return res; } // [[Rcpp::export]] NumericMatrix test_gsl_matrix_indexing(NumericMatrix mat_) { RcppGSL::matrix mat= as< RcppGSL::matrix >( mat_ ); for( size_t i=0; i< mat.nrow(); i++){ for( size_t j=0; j< mat.ncol(); j++){ mat(i,j) = mat(i,j) + 1.0; } } Rcpp::NumericMatrix res = Rcpp::wrap(mat); mat.free(); return res; } // [[Rcpp::export]] List test_gsl_vector_view_wrapper() { int n = 10; RcppGSL::vector vec( 10 ); for( int i=0; i v_even = gsl_vector_const_subvector_with_stride(vec, 0, 2, n/2); RcppGSL::vector_view v_odd = gsl_vector_const_subvector_with_stride(vec, 1, 2, n/2); List res = List::create(_["even"] = v_even, _["odd" ] = v_odd); vec.free(); return res; } // [[Rcpp::export]] List test_gsl_matrix_view_wrapper() { int nrow = 4; int ncol = 6; RcppGSL::matrix m(nrow, ncol); int k =0; for( int i=0; i x = gsl_matrix_const_submatrix(m, 2, 2, 2, 2 ); List res = List::create(_["full"] = m, _["view"] = x); m.free(); return res; } // [[Rcpp::export]] double test_gsl_vector_view_iterating(NumericVector vec_) { RcppGSL::vector vec = as< RcppGSL::vector >(vec_); int n = vec.size(); RcppGSL::vector_view v_even = gsl_vector_const_subvector_with_stride(vec, 0, 2, n/2); double res = std::accumulate( v_even.begin(), v_even.end(), 0.0 ); return res; } // [[Rcpp::export]] double test_gsl_matrix_view_indexing() { int nr = 10; int nc = 10; RcppGSL::matrix mat( nr, nc ); int k = 0; for( size_t i=0; i< mat.nrow(); i++){ for( size_t j=0; j< mat.ncol(); j++, k++){ mat(i,j) = k; } } RcppGSL::matrix_view x = gsl_matrix_const_submatrix(mat, 2, 2, 2, 2 ); double res = 0.0; for( size_t i=0; i. library(RcppGSL) #test.fastLm <- function() { data(trees, package="datasets") flm <- fastLmPure(cbind(1, log(trees$Girth)), log(trees$Volume)) fit <- lm(log(Volume) ~ log(Girth), data=trees) expect_equal(as.numeric(flm$coef), as.numeric(coef(fit)), info="fastLm.coef") expect_equal(as.numeric(flm$stderr), as.numeric(coef(summary(fit))[,2]), info="fastLm.stderr") expect_equal(as.numeric(flm$df.residual), as.numeric(fit$df.residual), info="fastLm.df.residual") #test.fastLm.default <- function() { data(trees, package="datasets") flm <- RcppGSL:::fastLm.default(cbind(1, log(trees$Girth)), log(trees$Volume)) fit <- lm(log(Volume) ~ log(Girth), data=trees) expect_equal(as.numeric(flm$coefficients), as.numeric(coef(fit)), info="fastLm.default.coef") expect_equal(as.numeric(flm$stderr), as.numeric(coef(summary(fit))[,2]), info="fastLm.default.stderr") expect_equal(as.numeric(flm$df.residual), as.numeric(fit$df.residual), info="fastLm.default.df.residual") expect_equal(as.numeric(flm$residuals), as.numeric(fit$residuals), info="fastLm.default.residuals") expect_equal(as.numeric(flm$fitted.values), as.numeric(fit$fitted.values), info="fastLm.default.fitted.values") #test.summary.fastLm <- function() { data(trees, package="datasets") sflm <- summary(fastLm(log(Volume) ~ log(Girth), data=trees)) sfit <- summary(lm(log(Volume) ~ log(Girth), data=trees)) expect_equal(as.numeric(coef(sflm)), as.numeric(coef(sfit)), info="summary.fastLm.coef") expect_equal(sflm$r.squared, sfit$r.squared, info="summary.fastLm.r.squared") expect_equal(sflm$adj.r.squared, sfit$adj.r.squared, info="summary.fastLm.r.squared") expect_equal(sflm$sigma, sfit$sigma, info="summary.fastLm.sigma") ## no intercept case sflm <- summary(fastLm(log(Volume) ~ log(Girth) - 1, data=trees)) sfit <- summary(lm(log(Volume) ~ log(Girth) - 1, data=trees)) expect_equal(as.numeric(coef(sflm)), as.numeric(coef(sfit)), info="summary.fastLm.coef.noint") expect_equal(sflm$r.squared, sfit$r.squared, info="summary.fastLm.r.squared.noint") expect_equal(sflm$adj.r.squared, sfit$adj.r.squared, info="summary.fastLm.r.squared.noint") expect_equal(sflm$sigma, sfit$sigma, info="summary.fastLm.sigma.noint") ## non-formula use sflm <- summary(fastLm(log(trees$Girth), log(trees$Volume))) sfit <- summary(lm(log(Volume) ~ log(Girth) - 1, data=trees)) expect_equal(as.numeric(coef(sflm)), as.numeric(coef(sfit)), info="summary.fastLm.coef.nonform") expect_equal(sflm$r.squared, sfit$r.squared, info="summary.fastLm.r.squared.nonform") expect_equal(sflm$adj.r.squared, sfit$adj.r.squared, info="summary.fastLm.r.squared.nonform") expect_equal(sflm$sigma, sfit$sigma, info="summary.fastLm.sigma.nonform") #test.fastLm.formula <- function() { data(trees, package="datasets") flm <- fastLm(log(Volume) ~ log(Girth), data=trees) fit <- lm(log(Volume) ~ log(Girth), data=trees) expect_equal(flm$coefficients, coef(fit), info="fastLm.formula.coef") expect_equal(as.numeric(flm$stderr), as.numeric(coef(summary(fit))[,2]), info="fastLm.formula.stderr") expect_equal(as.numeric(flm$df.residual), as.numeric(fit$df.residual), info="fastLm.formula.df.residual") expect_equal(as.numeric(flm$residuals), as.numeric(fit$residuals), info="fastLm.formula.residuals") expect_equal(as.numeric(flm$fitted.values), as.numeric(fit$fitted.values), info="fastLm.formula.fitted.values") RcppGSL/inst/tinytest/test_gsl.R0000644000176200001440000001402413552570517016346 0ustar liggesusers#!/usr/bin/r -t # Emacs make this -*- mode: R; tab-width: 4 -*- # # Copyright (C) 2010 - 2019 Romain Francois and Dirk Eddelbuettel # Copyright (C) 2019 Dirk Eddelbuettel # # This file is part of RcppGSL. # # RcppGSL 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. # # RcppGSL 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 RcppGSL. If not, see . library(RcppGSL) Rcpp::sourceCpp("cpp/gsl.cpp") #test.gsl.vector.wrappers <- function(){ fx <- test_gsl_vector_wrapper res <- fx() expect_equal(res, list("gsl_vector" = numeric(10), "gsl_vector_float" = numeric(10), "gsl_vector_int" = integer(10), ##"gsl_vector_long" = numeric(10), "gsl_vector_char" = raw(10), "gsl_vector_complex" = complex(10), "gsl_vector_complex_float" = complex(10), "gsl_vector_complex_long_double" = complex(10), "gsl_vector_long_double" = numeric(10), "gsl_vector_short" = integer(10), "gsl_vector_uchar" = raw(10), "gsl_vector_uint" = integer(10), "gsl_vector_ushort" = integer(10) ##,"gsl_vector_ulong" = numeric(10) ), info = "wrap( gsl_vector )" ) #test.gsl.vector <- function(){ fx <- test_gsl_vector res <- fx() expect_equal(res, list("gsl_vector" = numeric(10), "gsl_vector_float" = numeric(10), "gsl_vector_int" = integer(10), ##"gsl_vector_long" = numeric(10), "gsl_vector_char" = raw(10), "gsl_vector_complex" = complex(10), "gsl_vector_complex_float" = complex(10), "gsl_vector_complex_long_double" = complex(10), "gsl_vector_long_double" = numeric(10), "gsl_vector_short" = integer(10), "gsl_vector_uchar" = raw(10), "gsl_vector_uint" = integer(10), "gsl_vector_ushort" = integer(10) ##,"gsl_vector_ulong" = numeric(10) ), info = "wrap( gsl_vector )" ) #test.gsl.matrix <- function(){ helper <- function(what){ as.what <- get( paste( "as.", deparse(substitute(what)), sep = "" ) ) x <- what(10) x[1] <- as.what(1) x[7] <- as.what(1) dim( x ) <- c(5,2) x } fx <- test_gsl_matrix res <- fx() expect_equal(res, list("gsl_matrix" = helper( numeric ), "gsl_matrix_float" = helper( numeric ), "gsl_matrix_int" = helper( integer ), ##"gsl_matrix_long" = helper( numeric ), "gsl_matrix_char" = helper( raw ), "gsl_matrix_complex" = helper( complex ), "gsl_matrix_complex_float" = helper( complex ), "gsl_matrix_complex_long_double" = helper( complex ), "gsl_matrix_long_double" = helper( numeric ), "gsl_matrix_short" = helper( integer ), "gsl_matrix_uchar" = helper( raw ), "gsl_matrix_uint" = helper( integer ), "gsl_matrix_ushort" = helper( integer ) ##,"gsl_matrix_ulong" = helper( numeric ) ), info = "wrap( gsl_matrix )" ) # test.gsl.vector.view <- function(){ fx <- test_gsl_vector_view res <- fx() expect_equal(res, list( even = 2.0 * 0:4, odd = 2.0 * 0:4 + 1.0 ), info = "wrap( gsl.vector.view )" ) fx <- test_gsl_vector_view_wrapper res <- fx() expect_equal( res, list( even = 2.0 * 0:4, odd = 2.0 * 0:4 + 1.0 ), info = "wrap( gsl.vector.view.wrapper )" ) #test.gsl.matrix.view <- function(){ fx <- test_gsl_matrix_view res <- fx() expect_equal( res$full[3:4, 3:4], res$view, info = "wrap(gsl.matrix.view)" ) fx <- test_gsl_matrix_view_wrapper res <- fx() expect_equal( res$full[3:4, 3:4], res$view, info = "wrap(gsl.matrix.view.wrapper)" ) #test.gsl.vector.input.SEXP <- function(){ x <- rnorm( 10 ) fx <- test_gsl_vector_input res <- fx(x) expect_equal( res, sum(x), info = "RcppGSL::vector(SEXP)" ) #test.gsl.matrix.input.SEXP <- function(){ x <- matrix( rnorm(20), nc = 4 ) fx <- test_gsl_matrix_input res <- fx( x) expect_equal( res, sum(x[,1]), info = "RcppGSL::matrix(SEXP)" ) #test.gsl.RcppGSL.vector <- function(){ fx <- test_gsl_vector_conv res <- fx() expect_equal( res, 0:9, info = "RcppGSL::vector -> IntegerVector" ) #test.gsl.RcppGSL.vector.indexing <- function(){ fx <- test_gsl_vector_indexing res <- fx( seq(0.5, 10.5) ) expect_equal( res, seq( 1.5, 11.5 ) ) #test.gsl.RcppGSL.vector.iterating <- function(){ x <- seq(0.5, 10.5) fx <- test_gsl_vector_iterating res <- fx(x) expect_equal( res, sum(x) ) #test.gsl.RcppGSL.vector.iterator.transform <- function() { x <- seq(0.5, 10.5) fx <- test_gsl_vector_iterator_transform res <- fx(x) expect_equal(res, sqrt(x)) #test.gsl.RcppGSL.matrix.indexing <- function(){ m <- matrix( 1:16+.5, nr = 4 ) fx <- test_gsl_matrix_indexing res <- fx(m) expect_equal( res, m+1 ) #test.gsl.RcppGSL.vector.view.iterating <- function(){ x <- seq(1.5, 10.5) fx <- test_gsl_vector_view_iterating res <- fx(x) expect_equal( res, sum( x[ seq(1, length(x), by = 2 ) ] ) ) #test.gsl.RcppGSL.matrix.view.indexing <- function(){ fx <- test_gsl_matrix_view_indexing res <- fx() expect_equal( res, 110.0 ) RcppGSL/inst/tinytest/test_client_package.R0000644000176200001440000000364514065132450020507 0ustar liggesusers#!/usr/bin/r -t # # Copyright (C) 2010 Romain Francois and Dirk Eddelbuettel # Copyright (C) 2014 - 2021 Dirk Eddelbuettel # # This file is part of RcppGSL. # # RcppGSL 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. # # RcppGSL 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 RcppGSL. If not, see . ## On Windows we skip this test. We could add tools/winlibs.R and adjust ## src/Makevars.win accordingly but it might not be worth it isWindows <- Sys.info()[["sysname"]] == "Windows" missingEnvVar <- Sys.getenv("LIB_GSL") == "" if (isWindows && missingEnvVar) exit_file("Skip client package test on Windows without LIB_GSL") #test.client.package <- function(){ pkg <- "RcppGSLExample" cwd <- getwd() td <- tempfile() dir.create(td) file.copy(system.file("examples", pkg, package = "RcppGSL"), td, recursive = TRUE) Sys.chmod(file.path(td, "RcppGSLExample", "configure"), "0755") setwd(td) R <- file.path(R.home(component = "bin" ), "R") cmd <- paste("CMD build", pkg) system2(R, cmd, stdout=FALSE, stderr=FALSE) dir.create("templib") cmd <- paste("CMD INSTALL -l templib", paste0(pkg, "_0.0.3.tar.gz")) system2(R, cmd, stdout=FALSE, stderr=FALSE) suppressMessages({ require(Rcpp) require(pkg, "templib", character.only = TRUE) }) m <- matrix(1:16, nc = 4) res <- colNorm(m) val <- apply(m, 2, function(x) sqrt(sum(x^2))) expect_equal(res, val, info = "colNorm in client package") unlink("templib", recursive = TRUE) setwd(cwd) unlink(td, recursive = TRUE) RcppGSL/inst/NEWS.Rd0000644000176200001440000002212114360114734013545 0ustar liggesusers\name{NEWS} \title{News for Package \pkg{RcppGSL}} \newcommand{\ghpr}{\href{https://github.com/eddelbuettel/rcppgsl/pull/#1}{##1}} \newcommand{\ghit}{\href{https://github.com/eddelbuettel/rcppgsl/issues/#1}{##1}} \section{Changes in version 0.3.13 (2023-01-12)}{ \itemize{ \item Remove 'AC_PROG_CC' from 'configure.ac' per CRAN wish } } \section{Changes in version 0.3.12 (2022-10-30)}{ \itemize{ \item Two function prototypes were updated for \code{clang-15}. \item GitHub Actions were updated to checkout version 3. } } \section{Changes in version 0.3.11 (2022-03-12)}{ \itemize{ \item The UCRT Makefile was updated \item Minor edits to README.md were made } } \section{Changes in version 0.3.10 (2021-10-07)}{ \itemize{ \item Tests of the client package now skip if no LIB_GSL is set \item The \code{configure} files were updated to the standard of version 2.69 following a CRAN request } } \section{Changes in version 0.3.9 (2021-06-23)}{ \itemize{ \item The pdf vignette was extended by a small subsection (Dirk). \item The CI setup was updated to use \code{run.sh} from \href{https://eddelbuettel.github.io/r-ci/}{r-ci} (Dirk). \item The windows build was updated to GSL 2.7, and UCRT support was added (Jeroen in \ghpr{28}). } } \section{Changes in version 0.3.8 (2020-06-21)}{ \itemize{ \item A few missing \code{inline} statements were added to the headers fixing a (genuine) error that was seen only on Solaris (Dirk). \item The nice \code{colNorm} example is now in a file by itself, the previous versions are off in a new file \code{colNorm_old.cpp} (Dirk). \item The README.me now sports two new badges (Dirk). \item Travis CI was updated to 'bionic' and R 4.0 (Dirk). } } \section{Changes in version 0.3.7 (2019-10-20)}{ \itemize{ \item A logic error was corrected in the wrapper class, vector and matrix memory is now properly free()'ed (Dirk in \ghpr{22} fixing \ghpr{20}). \item The introductory vignettes is now premade (Dirk in \ghpr{23}), and was updated lightly in its bibliography handling. \item The unit tests are now run by \pkg{tinytest} (Dirk in \ghpr{24}). } } \section{Changes in version 0.3.6 (2018-06-10)}{ \itemize{ \item The vignette was updated to accomodate pandoc 2* [CRAN request]. } } \section{Changes in version 0.3.5 (2018-05-19)}{ \itemize{ \item Update package manual page using references to \code{DESCRIPTION} file [CRAN request]. } } \section{Changes in version 0.3.4 (2018-05-06)}{ \itemize{ \item Windows builds were updated (Jeroen Ooms in \ghpr{16}). \item Remove dynamic exception specifications which are deprecated with C++11 or later (Dirk in \ghpr{17}). \item Accomodate Solaris by being more explicit about \code{sqrt}. } } \section{Changes in version 0.3.3 (2017-09-24)}{ \itemize{ \item We also check for \code{gsl-config} at package load. \item The vignette now uses the pinp package in two-column mode. \item Minor other fixes to package and testing infrastructure. } } \section{Changes in version 0.3.2 (2017-03-04)}{ \itemize{ \item In the \code{fastLm} function, \code{.Call} now uses the correct \code{PACKAGE=} argument \item Added file \code{init.c} with calls to \code{R_registerRoutines()} \code{and R_useDynamicSymbols()}; also use \code{.registration=TRUE} in \code{useDynLib} in \code{NAMESPACE} \item The skeleton configuration for created packages was updated. } } \section{Changes in version 0.3.1 (2016-10-02)}{ \itemize{ \item The unit test driver was updated and simplified, (by request of CRAN) no longer leaves files in `/tmp`, and removes two unexported (and unused) test helper functions (PR \ghpr{10}) \item Switched to \code{run.sh} for Travis (PR \ghpr{11}) \item Use canonical CRAN URLs in README.md \item Restored 'boxed' display of code in vignette (PR \ghpr{12}) } } \section{Changes in version 0.3.0 (2015-08-30)}{ \itemize{ \item The RcppGSL matrix and vector class now keep track of object allocation and can therefore automatically free allocated object in the destructor. Explicit \code{x.free()} use is still supported. \item The matrix and vector classes now support const reference semantics in the interfaces (thanks to PR #7 by Dan Dillon) \item The matrix_view and vector_view classes are reorganized to better support const arguments (thanks to PR #8 and #9 by Dan Dillon) \item Shorthand forms such as \code{Rcpp::Matrix} have been added for \code{double} and \code{int} vectors and matrices including views. \item Examples such as \code{fastLm} can now be written in a much cleaner and shorter way as GSL objects can appear in the function signature and without requiring explicit \code{.free()} calls at the end. \item The included examples, as well as the introductory vignette, have been updated accordingly. } } \section{Changes in version 0.2.5 (2015-07-05)}{ \itemize{ \item The \code{colnorm} function in the included example package was rewritten to use Rcpp Attributes, the example package was updated and its version number increased to 0.0.3. \item The unit tests also use the updated version of the example package. \item The package, and the included example package, were updated throughout to conform to the current \code{R CMD check} standards. \item The RcppGSL-intro vignette was updated throughout. \item The Travis CI integration now uses r-cran-* packages which leads to faster tests. } } \section{Changes in version 0.2.4 (2015-01-24)}{ \itemize{ \item Two new helper function to turn the default GSL error handler off (and to restore it) were added. The default handler is now turned off when the package is attached so that GSL will no longer abort an R session on error. Users will have to check the error code. \item The \code{RcppGSL-intro.Rnw} vignette was expanded with a short section on the GSL error handler (thanks to Qiang Kou). } } \section{Changes in version 0.2.3 (2015-01-10)}{ \itemize{ \item The \code{src/Makevars.in} was pruned of GNU make features at the request of the CRAN Maintainers. \item \code{configure.ac} and \code{configure} were updated, and shortened. \item The \code{RcppGSL-intro.Rnw} vignette was updated for its look and feel. } } \section{Changes in version 0.2.2 (2014-05-31)}{ \itemize{ \item A subtle bug (tickled only by clang on some OS versions) in vector and matrix view initialization was corrected by Kevin Ushey } } \section{Changes in version 0.2.1 (2014-05-26)}{ \itemize{ \item Added new example based on B-splines example in GSL manual illustrating simple GSL use via Rcpp attributes \item Vignette compilation has been reverted to using \pkg{highlight} since version 0.4.2 or greater can be used as a vignette engine (with R 3.0.* or later). \item Vignette compilation is now being done by \code{R CMD build} as R 3.0.0 supports different vignette engines, so the vignette build process has been simplified. A convenience helper script has also been added for command-line builds. \item Unit tests now use \code{sourceCpp()} instead of \code{cxxfunction()} from the \pkg{inline} package \item The \code{DESCRIPTION} file now uses \code{Suggests: Rcpp} (instead of \code{Depends: Rcpp}) to permit building of the vignette \item The package now takes advantage of the simplified build process available with Rcpp (>= 0.11.0) \item Similar updates to the build process were made for the example package included with RcppGSL } } \section{Changes in version 0.2.0 (2012-07-22)}{ \itemize{ \item{summary() for fastLm() now displays more information} \item{fastLmPure() now uses same argument order as R's lm.fit()} \item{Added more unit tests for fastLm() and related functions} \item{Export and document S3 methods in NAMESPACE and manual page as such} \item{Vignettes have been moved to the \code{vignettes/} directory} \item{Main vignette renamed to \code{RcppGSL-intro.pdf} to use a filename different from the package reference manual} \item{NEWS file converted to .Rd format} \item{inline plugin support function no longer uses assignInNamespace but deploys a small package-global enviornment} } } \section{Changes in version 0.1.1 (2011-04-05)}{ \itemize{ \item{Unit tests produce a summary vignette as for some of the other packages} \item{The documentation Makefile now uses the $R_HOME environment variable} \item{The documentation Makefile no longer calls clean in the all target} } } \section{Changes in version 0.1.0 (2010-11-30)}{ \itemize{ \item{Initial CRAN release with basic functionality for vectors and matrices} \item{A vignette provides an introduction and documentation about the package} \item{An example package RcppGSLExample provides a complete stanza for creating your own package using RcppGSL (and the GSL and Rcpp)} } } RcppGSL/inst/skeleton/0000755000176200001440000000000012774327533014342 5ustar liggesusersRcppGSL/inst/skeleton/Makevars.win0000644000176200001440000000014013036762740016620 0ustar liggesusersPKG_CPPFLAGS=-I$(LIB_GSL)/include -I../inst/include PKG_LIBS=-L$(LIB_GSL)/lib -lgsl -lgslcblas RcppGSL/inst/skeleton/configure.win0000644000176200001440000000041613036762553017040 0ustar liggesusersGSL_CFLAGS=`${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e "RcppGSL:::CFlags()"` GSL_LIBS=`${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e "RcppGSL:::LdFlags()"` sed -e "s|@GSL_LIBS@|${GSL_LIBS}|" \ -e "s|@GSL_CFLAGS@|${GSL_CFLAGS}|" \ src/Makevars.in > src/Makevars.win RcppGSL/inst/skeleton/Makevars.in0000644000176200001440000000025013036762600016426 0ustar liggesusers GSL_CFLAGS = @GSL_CFLAGS@ GSL_LIBS = @GSL_LIBS@ # combine with standard arguments for R PKG_CPPFLAGS = -W $(GSL_CFLAGS) -I../inst/include PKG_LIBS += $(GSL_LIBS) RcppGSL/inst/skeleton/configure0000755000176200001440000000036214360114762016241 0ustar liggesusers#!/bin/sh GSL_CFLAGS=`${R_HOME}/bin/Rscript -e "RcppGSL:::CFlags()"` GSL_LIBS=`${R_HOME}/bin/Rscript -e "RcppGSL:::LdFlags()"` sed -e "s|@GSL_LIBS@|${GSL_LIBS}|" \ -e "s|@GSL_CFLAGS@|${GSL_CFLAGS}|" \ src/Makevars.in > src/Makevars RcppGSL/cleanup0000755000176200001440000000110514360114762013102 0ustar liggesusers#!/bin/sh rm -f config.log config.status confdefs.h \ src/*.o src/*.so src/Makevars src/symbols.rds \ inst/doc/*.blg inst/doc/*.bbl \ */*~ *~ rm -rf autom4te.cache inst/doc/*/auto (cd inst/examples/RcppGSLExample; \ rm -f config.log config.status \ src/*.o src/*.so src/Makevars \ */*~ *~ ; \ rm -rf autom4te.cache) (cd vignettes/rmd && \ rm -rf RcppGSL*.log RcppGSL*.aux RcppGSL*.out RcppGSL*.tex RcppGSL*.pdf *.blg *.bbl \ *.xwm jss.bst pinp.cls \ auto ../auto unitTests-results/ jss/auto/ ) RcppGSL/configure0000755000176200001440000025057414360114762013454 0ustar liggesusers#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.71 for RcppGSL 0.3.13. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, # Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="as_nop=: if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else \$as_nop case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ) then : else \$as_nop exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 blah=\$(echo \$(echo blah)) test x\"\$blah\" = xblah || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null then : as_have_required=yes else $as_nop as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null then : else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$as_shell as_have_required=yes if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null then : break 2 fi fi done;; esac as_found=false done IFS=$as_save_IFS if $as_found then : else $as_nop if { test -f "$SHELL" || test -f "$SHELL.exe"; } && as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$SHELL as_have_required=yes fi fi if test "x$CONFIG_SHELL" != x then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno then : printf "%s\n" "$0: This script requires a shell more modern than all" printf "%s\n" "$0: the shells that I found on your system." if test ${ZSH_VERSION+y} ; then printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and edd@debian.org $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='RcppGSL' PACKAGE_TARNAME='rcppgsl' PACKAGE_VERSION='0.3.13' PACKAGE_STRING='RcppGSL 0.3.13' PACKAGE_BUGREPORT='edd@debian.org' PACKAGE_URL='' ac_subst_vars='LTLIBOBJS LIBOBJS GSL_LIBS GSL_CFLAGS GSL_CONFIG target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir runstatedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking ' ac_precious_vars='build_alias host_alias target_alias' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -runstatedir | --runstatedir | --runstatedi | --runstated \ | --runstate | --runstat | --runsta | --runst | --runs \ | --run | --ru | --r) ac_prev=runstatedir ;; -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ | --run=* | --ru=* | --r=*) runstatedir=$ac_optarg ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # 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 RcppGSL 0.3.13 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/rcppgsl] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of RcppGSL 0.3.13:";; esac cat <<\_ACEOF Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for configure.gnu first; this name is used for a wrapper for # Metaconfig's "Configure" on case-insensitive file systems. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF RcppGSL configure 0.3.13 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## ac_configure_args_raw= for ac_arg do case $ac_arg in *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append ac_configure_args_raw " '$ac_arg'" done case $ac_configure_args_raw in *$as_nl*) ac_safe_unquote= ;; *) ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. ac_unsafe_a="$ac_unsafe_z#~" ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; esac cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by RcppGSL $as_me 0.3.13, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac printf "%s\n" "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Sanitize IFS. IFS=" "" $as_nl" # Save into config.log some information that might help in debugging. { echo printf "%s\n" "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo printf "%s\n" "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then printf "%s\n" "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then printf "%s\n" "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && printf "%s\n" "$as_me: caught signal $ac_signal" printf "%s\n" "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h printf "%s\n" "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then ac_site_files="$CONFIG_SITE" elif test "x$prefix" != xNONE; then ac_site_files="$prefix/share/config.site $prefix/etc/config.site" else ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi for ac_site_file in $ac_site_files do case $ac_site_file in #( */*) : ;; #( *) : ac_site_file=./$ac_site_file ;; esac if test -f "$ac_site_file" && test -r "$ac_site_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 printf "%s\n" "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 printf "%s\n" "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## 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 ## Use gsl-config to find arguments for compiler and linker flags ## ## Check for non-standard programs: gsl-config(1) # Extract the first word of "gsl-config", so it can be a program name with args. set dummy gsl-config; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_GSL_CONFIG+y} then : printf %s "(cached) " >&6 else $as_nop case $GSL_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_GSL_CONFIG="$GSL_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 case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac 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_GSL_CONFIG="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GSL_CONFIG=$ac_cv_path_GSL_CONFIG if test -n "$GSL_CONFIG"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GSL_CONFIG" >&5 printf "%s\n" "$GSL_CONFIG" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi ## If gsl-config was found, let's use it if test "${GSL_CONFIG}" != ""; then # Use gsl-config for header and linker arguments GSL_CFLAGS=`${GSL_CONFIG} --cflags` GSL_LIBS=`${GSL_CONFIG} --libs` else as_fn_error $? "gsl-config not found, is GSL installed?" "$LINENO" 5 fi # Now substitute these variables in src/Makevars.in to create src/Makevars ac_config_files="$ac_config_files src/Makevars" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by RcppGSL $as_me 0.3.13, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to ." _ACEOF ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ RcppGSL config.status 0.3.13 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) printf "%s\n" "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX printf "%s\n" "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "src/Makevars") CONFIG_FILES="$CONFIG_FILES src/Makevars" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 printf "%s\n" "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi